4.0 KiB
Source-bundle capture supplement, declared before model edits
The native trial at source 17f1f89fef has successfully imported JSON and saved working/traceability-trial.arcadia. Save As generated seven included .arcadia modules. No semantic checkpoint or placement has occurred according to the parent operator. The frozen check.py copies only the entry before evaluating it; alone that copy would lack its included modules. This supplement changes actual-evidence capture only. It leaves the frozen recipes, B/P expected Projects, first-placement UUID/position rules and immutable manifest unchanged.
After independent review and parent acceptance, invoke (from any cwd):
python NATIVE_ROOT/supplement-source-bundle/capture_bundle.py --expected B --checkpoint 00-baseline
python NATIVE_ROOT/supplement-source-bundle/capture_bundle.py --expected P --checkpoint 01-place --calibration PRE_INPUT_CALIBRATION.json
Each invocation requires a new checkpoint directory under this supplement. It inventories every .arcadia file in working, checks the bounded generated fixture's complete include closure, and copies the original entry and all included source files with their relative paths unchanged. This fixture uses only direct entry includes; nested include syntax is conservatively refused rather than reimplemented. Links, junctions, outside paths, unknown source files and state.arcadia collisions are refused. Original JSON import is not part of the saved source bundle.
The unchanged checker receives --actual ORIGINAL_WORKING_ENTRY and --output-prefix NEW_DIRECTORY/state. Thus its new state.arcadia is beside the copied includes and its evaluator resolves the snapshot, not live includes. The wrapper checks original and copied complete source inventories before the checker, then both again afterward. It requires the checker exit and complete-Project equality to pass. The receipt binds wrapper, this plan, frozen manifest/checker, source inventories, inner receipt, and existing/new binding hashes.
An inner success alone is insufficient. Only bundle-receipt.json with accepted=true accepts a checkpoint. Any outer failure after capture begins permanently writes UNACCEPTED.json at supplement level: stop the trial, retain all files and any inner-created binding, and never delete/relearn/reuse that binding. Subsequent wrapper invocations reject this marker; existing bindings also require the first checkpoint's successful outer receipt and matching hashes. Manual direct check.py invocation cannot substitute for this acceptance rule.
This plan does not claim atomic filesystem snapshots. Exact pre/post hashes bound a quiet saved checkpoint; transient changes that restore identical bytes are not detected. Do not save or edit during capture. The launch/capture/normal-close recipes record only the default entry hash; they do not attest to all included module bytes. This supplement's complete source inventories and full-Project comparisons supply that checkpoint evidence. GUI observations, close behavior and input timing remain separately documented native evidence. Existing frozen artifacts and prior failed attempts remain untouched.
Preparation only: independent review and parent readback are required before invocation. No compiler, evaluator, checkpoint, staging or GUI operation was run to author this supplement.
UNACCEPTED PROPOSAL — DO NOT EXECUTE
Independent review found a blocking evaluator incompatibility before execution. The frozen attachment_snapshot uses persistence::load, which reads one file and parses it without include resolution; language.rs rejects include statements on that path. Copying modules beside state.arcadia does not repair that contract. This wrapper has never been run and is not an accepted checkpoint method. Retain it as rejected preparation; do not invoke it or interpret its prepared receipt scheme as evidence. Ancestor containment also needs strengthening before any future reuse. See .local/traceability-view-bundle-supplement-review-20260923.md.