3.4 KiB
Ordinary default omission: reviewed follow-up
This branch-specific follow-up is based on production checkpoint adffd19bbcf55c7cbfbf7a3937629db4c593e387. It changes insertion storage and two language-test expectations. It is not compiled, runtime-verified, integrated, or release-ready. Previous runtime results in the production report apply only to their captured inputs.
Changes and independent review
crates/oa-core/src/source_project.rs now stores compact insertion spans and one borrowed source string instead of copying each value's substring. Keys still identify complete-after value starts; spans originate from parsing that exact compact string. Record/list matching, omitted-field decisions, fallback values, and final edit construction are unchanged. This removes repeated containing-payload copies by construction; no performance or memory benchmark is claimed.
The independent static critic checked parser-derived UTF-8 boundaries, source ownership, covariance and local borrow lifetimes. The compact string owner outlives each insertion/update operation, and copied spans do not borrow temporary syntax trees. No blocking static finding was reported. Rust type checking remains required.
crates/oa-core/tests/language.rs now expects canonical omission of External transition kind and MixedLegacy viewpoint. Existing whole-model, identity, legacy-default and round-trip checks remain. The invalid transition-kind test explicitly inserts Unsupported at a unique retained trigger-list anchor and checks the diagnostic. Every changed mutation checks that its anchor occurs exactly once and that the resulting source differs, preventing a silently ineffective replacement of an omitted field.
The independent critic reviewed both frozen files and found no blocking oracle defect. The parent inspected the actual diff and confirmed the reviewed hashes:
| File | SHA-256 |
|---|---|
crates/oa-core/src/source_project.rs |
ee925b142c3072e2ad800922f43b6569a5c8537a037a6c0cd7533d9b9edefa6b |
crates/oa-core/tests/language.rs |
9ad8bd0d3804e75e1aefedb93895053e1ef27647c6169bc38a33a7d5950d7801 |
Verification boundary
On Windows with the existing Rust 1.98.1 GNU LLVM toolchain, these checks passed for the two files above:
rustfmt --edition 2024 --config skip_children=true --check crates/oa-core/src/source_project.rs crates/oa-core/tests/language.rs
git diff --check
No Cargo build or runtime gate was started for this follow-up. After the user reported cleanup, C: still reported approximately 4 MB free and the named retired build artifacts remained present. That observation does not establish which earlier cleanup commands ran. The user was asked for the latest manual script's output; the agent did not retry rejected deletion.
Required next execution is the changed language tests, source-update/preservation regressions, corrected port-anchor test including re-add behavior, and private policy/parser tests, followed by the full core suite and strict production Clippy. Retain the existing exact-input capture workflow and preserve failed results. GUI/public-consumer and combined source8 verification remain separate acceptance requirements. Linux remains user-paused.
Live ownership, blockers and handoffs remain in Gitea issue 11; the source8 partition remains in issue 7. This note records the changed artifact and evidence boundary rather than a replacement task ledger.