85 lines
5.5 KiB
Markdown
85 lines
5.5 KiB
Markdown
# 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.
|
||
|
||
## Focused fixture repair after initial execution
|
||
|
||
Parent's focused run at 33b86a4d completed five tests and failed one: the example
|
||
bundle has no trace records, contrary to the new fixture's nonempty assertion.
|
||
The repair explicitly authors a Participant trace from fixed OA rescue-team UUID
|
||
102 to fixed SA system UUID301, checks endpoint kinds and the complete trace,
|
||
and includes it in the unchanged whole-model source/bundle roundtrip assertions.
|
||
Historical reviewed-prose trace/baseline coverage remains. Independent source
|
||
review also identified the actual short case spellings oa_analysis/sa_analysis;
|
||
both now appear in the ordinary refusal table alongside the invalid case aliases.
|
||
Production and the other evaluators are unchanged. These corrections are not a
|
||
runtime pass claim; the initial five-pass/one-failure record remains preserved.
|
||
## Obsolete private header assertions after full execution
|
||
|
||
Parent's full run at 520e50ce completed 298 tests: 294 passed and four failed.
|
||
All 16 previously header-masked ordinary workflows passed. The four failures
|
||
were private analysis tests that still expected an empty ordinary schema8
|
||
project to be rejected. The scoped repair accepts ordinary8 with no migration,
|
||
compares complete ordinary OA/SA projects where the existing fixed-ID fixtures
|
||
provide that oracle, and explicitly embeds actual typed source or canonical
|
||
text in schema8 to preserve public typed refusal. Declaration refusal coverage
|
||
now includes versions3 through8. Existing numeric/lowering/model assertions stay.
|
||
Only these evaluator names change:
|
||
|
||
- inherited_version_root_and_short_word_contracts_do_not_enable_public8 ->
|
||
inherited_version_root_and_short_word_contracts_do_not_enable_public_typed8
|
||
- public_source_headers_and_existing_numeric_token_controls_are_unchanged ->
|
||
public_ordinary_source8_preserves_typed_refusal_and_numeric_controls
|
||
|
||
Production is unchanged. The initial 294-pass/four-failure evidence remains;
|
||
repaired outcomes require the parent's next runtime gate. |