Files
ARCADIA-Studio/harness/experiments/text-navigation-native-20260911/repair-save-native-v4/preparation-README.md
T

6.1 KiB

Repair/save native-v4 preparation — no launch performed

Owner: Codex-9e8r6t /root/release_audit. Root operates the GUI and owns acceptance. helper.py is an adaptation of the reviewed native_v3 helper, with fail-closed gate/source admission and separate snapshot versus saved-oracle actions. No helper action, application, oracle, compiler or recovery operation was run during preparation. Only fixture copies/static checks and Python AST parsing were performed. Existing v3 data and packaging adapters were untouched.

The new source commit is 33c6d83e9ba9a5b1310b1b627d7c40affcbcf15c. Its 500 raw inputs must match .local/text-repair-save-20260911/inputs1.json and ZIP SHA256 213fdb39ea7c3601b4baac674c3ab3ecc863ac44db1b092d922d3e24f26887b7. Future launch requires all five exact successful gate commands/results, their stdout/stderr hashes, complete.json and the actual 755/0/1 full-suite log. The manifest's captured precommit HEAD remains eeeaa126; the launch commit is the committed byte-equivalent correction above.

The GUI hash is read from successful gui-build-result.json, never copied from old v3. The helper uses root's preserved .local/text-repair-save-20260911/gui-repair.exe, verifies its size/hash against the actual binary record and copies it exclusively to trial/bin. Current receipt identifies B183EF31…B168848, 113,206,272 bytes, but this abbreviation is documentation only; executable admission uses the full actual receipt. F456 DLL and oracle967 hashes remain explicitly pinned.

Paths and future commands

Base preparation directory already exists. trial/ does not: launch refuses to overwrite it. Trial models, private profile/Desktop/APPDATA/TEMP, bin and checkpoints are created only on an explicitly authorized launch. The child environment has Windows-only PATH plus standard SystemRoot/SystemDrive/ProgramData/ALLUSERSPROFILE/PUBLIC values; no arbitrary parent credential/proxy environment is inherited. Python stdout/stderr are configured UTF-8 to avoid the earlier cp1252 print failure.

Use C:/Users/User/.cache/codex-runtimes/codex-primary-runtime/dependencies/python/python.exe from repository cwd. Examples below are not executed:

python .local/text-repair-save-native-20260911/helper.py launch --source-commit 33c6d83e9ba9a5b1310b1b627d7c40affcbcf15c
python .local/text-repair-save-native-20260911/helper.py snapshot --model missing-include --label missing-before-apply
python .local/text-repair-save-native-20260911/helper.py snapshot --model missing-include --label missing-after-apply-before-save
python .local/text-repair-save-native-20260911/helper.py check --model missing-include --label missing-final-saved --after-visible-save
python .local/text-repair-save-native-20260911/helper.py closed --observed-absent

Replace python with that full bundled executable. Available models: valid, release1, ambiguous, missing-include, recovery. A unique lowercase/hyphen label is required for every snapshot/check. Snapshot creates an exact disk copy and hash/journal receipt only, with no oracle or accepted-model claim. Check additionally requires root's explicit confirmation that a successful Save was observed, then invokes the pinned complete same oracle; valid/repaired ambiguity/repaired missing cases compare with exact valid four-file baseline, engineering with its release1 baseline, recovery with expected AFTER. Oracle stdout/stderr/status are retained even on failure. It refuses remaining save-journal files in a final acceptance checkpoint.

closed --observed-absent is allowed only after root independently observes the relevant process/window absent. It records binary readback, not its own process observation or exit code. The helper never closes or kills an application.

Frozen fixtures and optional recovery sequence

fixtures/ has 64 files / 300,070 bytes. fixture-manifest.json SHA256 is 7bccf622c8e2ff42f9e71ac8e5d08ea27b3493c9ebc689ce5f7fbac9aa63f851. The four ordinary model groups are byte-exact copies from the original pinned fixture manifest edd4157f…ecc1ed: valid (four files), ambiguous (four), missing include (four), release1 (37 total including 30 Arcadia). There are no profile/executable copies in the prepared fixtures.

Recovery adds three small directories:

  • recovery-expected-after: exact valid four-file baseline; project title Navigation — 救援.
  • recovery-expected-before: only the entry project-title string changes to Before interrupted save — 救援; IDs, alias, includes, descriptions and the other three files are byte-identical.
  • recovery: disk initially equals AFTER, plus .arcadia-save-project.arcadia.journal/{journal.json,0.before,0.after}. The v1 journal has exactly one entry with path project.arcadia, before=true and write=true. The stage files are exact BEFORE/AFTER. This mirrors the accepted v1 contract in source_files.rs and repair_save_state_tests.rs; no core recovery was run in preparation.

Entry BEFORE SHA256: 6e9abf4ecf24175b9f04a8db11fe182146581059628eb8769e869597401f262e. AFTER SHA256: 79e26836c048a35aaf98b21ff006ae8ac931160abd9913b9e67b542303215414.

Optional native evaluator: first open the valid AFTER project; then open trial/recovery/project.arcadia. Inspect the interrupted-save banner and snapshot the disk/journal. Explicitly Apply the displayed AFTER source as in the headless regression, then invoke actual Recover. Recovery should remove the journal and restore BEFORE on disk while retaining the accepted AFTER graph/source. Snapshot immediately: this is not saved acceptance. Verify visible Unsaved changes and the close/cancel guard without discarding; explicitly Save the retained AFTER model. Only then run check --model recovery --label recovery-final-saved --after-visible-save, whose oracle expects exact AFTER. Do not call the helper to perform Recover or fabricate the post-Recover state.

No native first-save deletion fixture is included; the headless tests cover it. The helper does not validate arbitrary alternate GUI builds or later source edits: any changed freeze needs a separately reviewed new helper/trial. Old navigation packaging adapters remain historical and must not be executed for this repaired candidate.