Files
ARCADIA-Studio/harness/release-analysis-checked-save-20260913.md
T

26 lines
4.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Analysis847: actual public checked-save failure
The existing checked-save regression **failed at public decode after successful `.arcadia` saves**, confirming the [previous source-derived prediction](release-analysis-next-acceptance-20260913.md). Source `847b1caa7e75bb82f6ce5193c45bcfc45973ad1a` remains isolated, clean and unmodified. This does not establish a defect in the private JSON depth codec or acceptance of the candidate.
Actual command:
```text
cargo test --locked -p oa-core --test review_regressions checked_save_returns_exact_bytes_and_accepts_unchanged_external_content -- --exact --test-threads=1 --nocapture
```
Windows GNU/LLVM Rust/Cargo1.98.1, LLVM-MinGW23.1.1, one build job, fresh isolated target `.local/analysis-checked-save-target-20260913`. Compilation completed in15m33s using the unoptimized test profile. Cargo exit101; **0 passed,1 failed,14 filtered out**, test duration0.08s. The direct compiled executable listing returned exactly one selected test. All512 raw committed input comparisons, HEAD and worktree status were unchanged. Compiler/test lease closed and was released; no further gate was run.
At `review_regressions.rs:464`, public decode returned `Unsupported schema version: expected arcadia 3, 4, 5, 6 or 7.` The preceding two save calls and disk/returned-byte equality assertions succeeded. The first `.arcadia` iteration then failed; its repeat save and subsequent `.oa.json` iteration did not execute. The test's temporary file was not retained after panic; the failed executable, complete logs and source evidence are preserved and hash-bound.
Cause in this candidate: `model.rs:9` sets schema8; `language.rs:577` writes it; `language.rs:1408` admits only3–7. `persistence.rs:952–979` takes `.arcadia` through the formatter and replaces the destination without validating public decode equality first. Source declaration formatting also omits the analysis definition catalog, and `language.rs:1653` rejects analysis records pending source8 authoring. Merely accepting the header would not establish complete source preservation.
The [portable archive](experiments/analysis-checked-save-windows-20260913/README.md) retains exact inputs, runner, command, logs, result and executable/runtime bindings. The result's auxiliary `log_test_failed: false` is intentionally unchanged: nocapture panic text interrupted its narrow contiguous-string match. Actual exit/counts/named failure/panic/listing establish the failure. No false success classification is adopted.
## Next smallest repair boundary — recommendation only
Keep private JSON depth admission and source persistence separate; do not enable DEPTH_128_VALIDATED or rewrite this test to pass. The smallest safety correction is to make `.arcadia` checked-save validate its generated source through the public decoder and require complete Project equality **before replacing any existing destination**. That prevents successful writes that cannot reopen, but is containment, not completion: this regression would then fail at save until source8 round-trip support is implemented.
The next bounded complete source repair must reconcile schema8 admission, definition-catalog declaration formatting and parsing, and existing analysis-record rejection together, preserving IDs/aliases, all authored fields and compatible older-source handling. Establish empty/ordinary OA/SA plus a meaningful populated definition/analysis example as round-trip evaluators; a whitelist-only patch or silently omitted records is insufficient. Continue with the existing public checked-save tests and frozen migrations/API persistence checks identified in the prior plan after the corrected source boundary is independently reviewed. No production/test edit, new test or broader acceptance execution is part of this archival task.
Full analysis/source8/REST parity, optimized memory calibration and Linux remain outside this result; Linux remains user-deferred. Root owns issue7 and subsequent decisions. This report records evidence and a source-level recommendation, not a live task ledger or candidate promotion.