Skip to content

feat: add contract-version discovery command#20

Merged
Monotox merged 1 commit into
mainfrom
feat/contract-version-discovery-command
Jun 1, 2026
Merged

feat: add contract-version discovery command#20
Monotox merged 1 commit into
mainfrom
feat/contract-version-discovery-command

Conversation

@Monotox

@Monotox Monotox commented Jun 1, 2026

Copy link
Copy Markdown
Owner

Summary

Add a read-only schema-versions command (alias contracts) that prints the resolved tool_version plus every supported output-envelope and input-schema version as canonical JSON, then exits 0 without loading any mission, vehicle, or asset file. A backend can call it at startup to pin and check contract compatibility instead of running a full job to read versions off an envelope.

Test Plan

  • uv run pytest passes
  • uv run ruff check . passes
  • Documentation updated, if user-facing behavior changed
  • Golden fixtures updated, if a public JSON or Markdown contract changed

Contract Impact

  • No public contract surfaces changed
  • Public contract changes are intentional and versioned per docs/VERSIONING_POLICY.md

Add a read-only `schema-versions` command (alias `contracts`) that prints
the resolved tool_version plus every supported output-envelope and
input-schema version as canonical JSON, then exits 0 without loading any
mission, vehicle, or asset file. A backend can call it at startup to pin and
check contract compatibility instead of running a full job to read versions
off an envelope.

Every printed version is sourced from the same module constant the envelopes
emit; a drift test asserts the printed map matches those constants so the two
cannot silently diverge. The batch input version, which has no named constant,
is read from the BatchManifest Literal field annotation. No new schema or
envelope version is introduced and golden fixtures are unchanged.
@Monotox Monotox merged commit 8b3f9b5 into main Jun 1, 2026
4 checks passed
@Monotox Monotox deleted the feat/contract-version-discovery-command branch June 1, 2026 05:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant