Files
ARCADIA-Studio/harness/text-default-omission-baseline-20260913.md
T

5.8 KiB
Raw Blame History

Default omission: preservation baseline, 2026-09-13

Branch-specific regression evidence; no production fix or issue closure. Codex-9e8r6t /root prepared this checkpoint for Gitea issue 11. It establishes three existing source-preservation defects that compact generation must avoid extending. The full OA/SA release remains incomplete; Linux work is user-paused.

Findings and evaluation

The corrected Windows baseline runs eleven tests: eight pass, three fail. All three failing tests first admit independently handwritten source and a literal, complete expected Project, then verify that update_bundle returns that exact model. They fail only at the subsequent exact SourceBundle comparison:

Requested edit Unrelated authored syntax erased
Bind an Exchange occurrence to an existing interaction operation none ;
Change one node's x coordinate port_anchors [] ;
Change one historical baseline's OA description semantic none ;

The updater preserves the adjacent whitespace/comments but deletes the field's semantic tokens. No-op and header-only controls for each identical fixture all pass. These distinguish actual changed-record traversal from header edits that short-circuit before the erasure branch. Source and model expectations are not generated by the formatter under test.

Two further controls pass. Action→State removes the inapplicable action field and retains the shared lifeline field's distinctive spelling/comment. A valid BoundaryExchange between legacy participant ports becomes a CommunicationMean between their entity owners with oriented=false. The endpoint changes are explicit parts of the latter target. Unchanged port declarations, comments and other source bytes remain exact. Both controls independently admit narrowly enumerated complete-source alternatives allowing newly redundant state/oriented fields to be omitted; they do not require expanded default generation.

The original baseline is preserved: seven passed, four failed. Three failures are the same production defects. The fourth was a test setup error: the initial BoundaryExchange incorrectly used entities as endpoints and failed admission before any update. That is not a fourth production defect. The independent test review also found two over-specific default-presence assertions; the second baseline corrects both and strengthens shared-field trivia coverage. Historical inputs and failure logs are unchanged.

Identified code and reproducibility

Both gates started at HEAD 74cc0e09119f9fa9e1287988bdd98c4cbf9db79e with the new, uncommitted-at-execution regression file. Production inputs remain the published 9fd76aef3ae2810667d3f2b031fc43692fc04c89 contribution; this checkpoint adds tests and evidence only. Each gate captures 605 exact input files and confirms they remained unchanged for its command. baseline-2/inputs.zip contains the test source delivered with this checkpoint. The two captures differ only in that test file; the verifier and parent Git-blob readback check the mapping.

Windows native stable-x86_64-pc-windows-gnullvm, Rust/Cargo 1.98.1, LLVM-MinGW, one Cargo build job, incremental compilation disabled. Offline dependencies and the lockfile were used. These are core integration tests; no GUI workflow, Linux run, whole-suite green result or compact output acceptance is claimed.

cargo test --locked --offline -p oa-core --test default_omission_preservation --message-format=json -- --include-ignored --nocapture

The three desired-behavior regressions are deliberately marked ignored with the confirmed defect in the reason. The command above explicitly runs them and must currently exit 101, with eight passes and the three named failures. Remove those ignores when the actual preservation fix passes these checks. A default test run skipping them is not evidence that preservation is fixed.

Gate UTC interval Result
baseline-1 09:43:48–09:45:58 7 pass / 4 fail; includes invalid fixture
baseline-2 09:52:58–09:53:03 8 pass / 3 fail; corrected controls

The portable evidence archive includes exact source ZIPs/manifests, raw logs, original runner, start/result receipts, and independent evidence/test reviews. Run its read-only verifier with Python 3. Executable receipts identify what Cargo produced and the runner hashed; test binaries are not distributed. No dependency on another machine's local filesystem is required to inspect this evidence.

Design implication and boundary

The candidate omission design recommends complete internal comparison records and compact generated fragments. These failures demonstrate that complete comparison must restore fields already skipped by persistence serialization. Generic empty/false/none removal would also discard meaningful values or required syntax. The independent alternative-policy critique rejects a blanket rule retaining anything absent from both compact trees: constructor and header-default changes lose information needed to remove or rewrite stale fields. Its additional compact-policy counterexamples remain static predictions, not outcomes established by this baseline.

This checkpoint does not modify shared public formatter/source update code or the peer's private source8 analysis writer. Their eventual combination must use identified commits, reconciled ownership, the broader default/required-field matrix and public round trips, followed by real graphical/text editing workflows. Live ownership and next actions remain in Gitea, rather than in this evidence record.