4.6 KiB
Default omission: real model fidelity (2026-09-13)
Branch evidence for issue 11, based on published 6f2aae0f76708e0d4ace1cd66ea019c07d3299df plus the two new files captured below. Nine tests pass and targeted strict Clippy passes on Windows. No production formatter or editor behavior changed in this checkpoint.
The test-only bridge starts with the actual canonical writer, maps real typed serialization to the tested policy, and deletes only selected field spans. It never regenerates retained strings, references, historical identity atoms or numeric spellings. Assertions require field deletion only, unchanged arrays and scalar values (including zero signs), complete identity coverage, matching retained syntax and nonoverlapping edits. This avoids a competing value renderer while testing policy composition with admitted models.
The independently authored tests parse five frozen original fixtures, establish explicit feature preconditions, compare the whole model after canonical and compact parsing and single-file source-project compilation, preserve the exact compiled source bundle and check repeat determinism. Four typed mutations check negative-zero coordinate bits through all decoded paths, present-empty DataField default with unbounded maximum, present-empty artifact strings, and selected versus unresolved present operation intent. Ordinary Project equality alone would miss the zero-sign case.
| Original corpus | Canonical bytes | Compact bytes | Fields removed |
|---|---|---|---|
| Coastal rescue, source 3 OA/SA, views, ports, artifacts/traces | 35,523 | 28,465 | 209 |
| Semantic keyed source 5, scenarios/data and historical facets | 15,564 | 12,066 | 145 |
| State actions source 5, state-machine projection and bounds | 8,764 | 6,673 | 78 |
| Dense forty-exchange source 6 model | 28,947 | 19,342 | 336 |
| Source 6 boundary ports, interfaces and operation calls | 4,771 | 3,660 | 46 |
These models shrink about 20–33% without a persistent-model change. The activity/count oracle does not prove every eligible field was pruned; the independent literal map tests remain the bounded policy-completeness evidence. Five fixtures are not exhaustive constructor coverage, and parsing is not complete engineering validation.
Verification and review
fidelity-1 ran 10:33:50–10:33:56 UTC: 9 passed, 0 failed, 0 ignored. fidelity-clippy-1 ran 10:34:20–10:34:23 UTC: passed with -D warnings. Both captured the same 610 unchanged inputs, including both compiled prototypes. Input manifest SHA-256: 2450cacc79841a16128674ed335023bab4aa31b499e7f107009e0ffc17183f36; ZIP SHA-256: 996965a962a522c29bc70caefca04424e9c96f65a2bcfc0d37eaa103e69698f6 (2,470,233 bytes).
Environment: Windows, Rust/Cargo 1.98.1, stable-x86_64-pc-windows-gnullvm, configured LLVM-MinGW toolchain, one build job, incremental compilation disabled, locked offline dependencies. Commands from the repository root after toolchain setup:
cargo test --locked --offline -p oa-core --test default_omission_fidelity --message-format=json -- --nocapture
cargo clippy --locked --offline -p oa-core --test default_omission_fidelity --message-format=json -- -D warnings
The portable archive includes exact source captures, original runner, raw output/receipts and fresh independent static review. The reviewer found no blocking adapter or oracle defect; only rustfmt changes followed review. Parent ran the tests and checked results. Its read-only verifier checks hashes, ZIP membership and recorded outcomes; staged Git blobs are checked against executed inputs before publication.
Integration implications
The ordinary formatter/update ownership partition was confirmed in Gitea issue 7 comment 949 and acknowledged in comment 951. Production implementation can now share the source-default contract with parser construction and separate complete comparison from compact emitted fragments. Source8 analysis dispatch remains the peer's contribution and has no public wiring commit at this checkpoint.
This canonical-only bridge does not exercise authored-source editing or generated modular output. The three source-erasure regressions remain unfixed here. Production formatting, lossless transformations, legacy/version admission, native workflows and public consumers still require their own verification. No GUI/API, release or Linux acceptance is claimed; Linux checks remain user-paused.