37 lines
4.6 KiB
Markdown
37 lines
4.6 KiB
Markdown
# 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](prototypes/source-defaults-render-probe-20260913.rs) starts with the actual canonical writer, maps real typed serialization to the [tested policy](text-default-omission-policy-20260913.md), 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](../crates/oa-core/tests/default_omission_fidelity.rs) 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:
|
||
|
||
```text
|
||
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](experiments/default-fidelity-20260913/README.md) 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](text-default-omission-baseline-20260913.md) 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.
|