fix(source): admit ordinary schema eight with current roundtrip coverage

This commit is contained in:
2026-09-24 20:31:39 -07:00
parent edf096cd33
commit 33b86a4d6b
4 changed files with 401 additions and 6 deletions
@@ -0,0 +1,53 @@
# Ordinary source8 compatibility implementation
Base `edf096cd33350865ecfc3c65ec266a6c0d3c4000`, selected parent contract
`harness/ordinary-source8-compatibility-contract-20260925.md` at root fb9b0c5c.
The public writer already emits8. The ordinary Parser::unit version list now
accepts8 and its unsupported-version diagnostic names the accurate range.
Current ordinary resolution already checks model limits and returns no migration;
3–7 retain their existing migration paths. No new converter or dispatch adapter
was introduced. Comments distinguish this ordinary repair from private mixed
analysis authoring.
Production change is intentionally confined to that version boundary. Long
analysis constructors retain their explicit conversion refusal, and short typed
declarations remain outside the ordinary grammar. Mixed cfg gates, formatter,
public SourceIndex/update semantics, ID stabilization, resource/depth policies
and codec switches are unchanged. Ordinary8 is not complete analysis/source8.
Six new tests use the ordinary_source8 module filter. They reuse the substantial
six-file source-project example and historical reviewed-prose fixture for complete
model/current formatter and bundle/index idempotence. Other groups cover3–7
migration to stable8; nested included declarations with omitted IDs, UTF-8/CRLF,
comments and actual returned index/identity spans; stale compiled input; short
and long analysis rejection, future/malformed headers and caller limits. Public
checked-save exercises both source and JSON, actual returned bytes/reopen/repeat
save, and rejection of the real formatter's omitted definition catalog while
preserving existing destination bytes. These are authored evaluators, not passing
execution claims. The three-file CLI preview literals additionally compile to an independently constructed complete Project before and after only the team alias changes; actual CLI execution remains a separate parent gate.
The prior test exception below repairs fixture construction without weakening
its semantics; all other prior test bodies/expectations remain unchanged. The16 formerly header-masked
library workflows must run their intended nested/update/migration/transaction
assertions; new downstream failures must be investigated on their own merits.
Parent owns focused/full/integration/CLI/non-test consumer/Clippy/format gates,
including previously unreached ordinary JSON branches. DEPTH_128_VALIDATED stays
false, and ordinary8 does not qualify the private depth candidate, user-deferred
Linux or the separately recorded full-pipeline setup limitation. Source/public
save equality and no-staging-before-validation safeguards remain mandatory.
Only changed Rust files were directly formatted with skip_children; source review
found no production blocker. Compiler/runtime acceptance remains parent-owned.
## Authorized pre-execution evaluator repair
Independent integration inventory found source7_contract's
source7_source_bundle_migration_is_token_only_and_new_link_stays_with_caller
attempted to replace formatted header7 with commented6, although the formatter
already emits8. That replacement was a no-op; the later expected7 was stale too.
Parent authorized this one existing evaluator correction: first assert actual
header8, replace8 with the original commented6 fixture, assert the comment and
single6 token, and expect only6->8 during migration. All exact file/comment/module,
whole-model, caller ownership and recompilation assertions remain, as does the
original test name. This is a static finding before execution, not a reported
runtime failure; no other legacy evaluator or formatter is changed.