Files
ARCADIA-Studio/harness/experiments/scenario-comparators-gui-b10b28c-20260913/spacing/README.md
T

63 lines
6.7 KiB
Markdown

# Spacing saved-source oracle: runtime-bound recipe prepared from 8bf
Prepared only. No compiler, oracle or native workflow has run from this directory. `oracle/main.rs` and `incident-workspace.arcadia` are byte-identical copies of the original spacing oracle and fixture. Their nesting preserves the Rust `include_str!("../incident-workspace.arcadia")` unchanged. The original preparation directory and its scripts remain untouched.
This retains the same complete parsed Project comparison: `same`, `repair-c`, `lane`, `message`, and `self-check`. Repair C predicts only the existing message override's `send_y` change from 300 to 424. Lane/message modes permit only one independently specified existing override coordinate; all other IDs, Steps, aliases and views remain exact. The comparator has no renderer, runtime/editor/history inspection, or native acceptance claim.
## Bounded correction
The new builder requires an explicit reviewed 40-hex `SourcePin`, completed five-stage `Gate`, matching core/serde rlibs, native import directory, frozen `NativeVerifier`, `RuntimeDll`, and fresh `Output`. The native verifier must match the separately supplied reviewed `NativeVerifierSha256`. The preparation reference was `91b29e336b861d0c59c1c310556d737330871bc54aaed6d5e509bd33dce07945`; a revised verifier needs a new frozen recipe path and explicit review. Its existing list/focused/full/combined-desktop-server-strict/GUI-build admission is retained, including the bounded focused-batch contract. A partial current gate cannot admit this build.
The accepted GUI binary must still identify one production Cargo fingerprint and its desktop -> core -> serde dependency edges. Compiler/linker paths, versions, dependency/native search inputs and actual gate files are captured before and after compilation. Gate `.md` files are now included alongside `.json`, `.ps1` and `.log`, preserving receipt-bound recovery instructions. This is the existing local standalone-rustc approach; no Cargo resolution, package cleaning or new cache is introduced.
The required source DLL is exactly 190,464 bytes with SHA-256 `aa282fa47bb2c4e210cea5e470cdbdca58568f0be0bc73e404d86ab9cd95ef6a`. It is captured before/after compilation and copied beside a successfully linked EXE. The new `scenario_spacing_oracle_build_v2` receipt records both source and copied runtime paths, sizes and hashes. A missing or mismatched copy cannot produce an accepted build.
The checker requires the reviewed build-receipt hash, its successful v2 status matching the separately required checker `SourcePin`, matching supplied EXE/path/size/hash, unchanged build proof files, compiled local source records, and the actual adjacent `libunwind.dll` record. It checks the DLL and all recorded run inputs before and after each invocation, preserves source snapshots, request, logs and receipt, and refuses a failed/legacy/unbound receipt. The source DLL is historical build provenance; the adjacent copy is the runtime checked at execution. No arbitrary DLL is copied by the checker.
## Preparation checks
From this directory, these commands parse scripts and exercise pure metadata guards only:
```powershell
./oracle/build.ps1 -ValidateOnly
./oracle/check.ps1 -ValidateOnly
```
The builder uses one canonical five-path source array for capture and receipt creation, and refuses missing or duplicate records before any compiler invocation. The build guards test little-endian unsigned Cargo fingerprint decoding, missing/ambiguous/wrong dependency edges, and the actual fixture-membership failure shape: omitted, unnormalized `oracle/../incident-workspace.arcadia`, or duplicated fixture records. Checker guards exercise accepted synthetic receipts for two explicitly supplied source pins and rejection of failed compile, changed inputs, postflight failure, wrong source/schema, EXE path/size/hash mismatch, missing/nonadjacent/wrong runtime and current-runtime path/size/hash mutations. These do not admit a gate, inspect a real loaded module, or execute an oracle. Rust self-checks remain unrun.
## Later build and checks
The 8bf strict stage failed, so no 8bf GUI build is admitted. This directory name records preparation ancestry only. Parent must supply the revised reviewed source/verifier and authorize the compiler slot after all five matching revised gates close successfully. Example from this directory; all dependency variables must name the actual matching gated files, not guessed hashes:
```powershell
$root = 'C:/Users/User/Documents/Git/ARCADIA-Studio'
$gate = $ReviewedRevisedGate
$verifier = $ReviewedRevisedVerifier
$verifierSha = $ReviewedRevisedVerifierSha256
$pin = $ReviewedRevisedSourcePin
$dll = "$root/.local/toolchain/llvm-mingw-20260908-ucrt-x86_64/bin/libunwind.dll"
./oracle/build.ps1 -SourcePin $pin `
-Gate $gate -NativeVerifier $verifier -NativeVerifierSha256 $verifierSha -RuntimeDll $dll `
-CoreRlib $VerifiedCoreRlib -SerdeJsonRlib $VerifiedSerdeJsonRlib `
-WindowsImportLibDirectory $VerifiedWindowsImportLibDirectory -Output $FreshBuildDirectory
```
After reviewing that build's actual EXE and receipt hashes:
```powershell
$bound = @{ SourcePin=$pin; OracleExe=$VerifiedExe; OracleSha256=$VerifiedExeHash; BuildReceipt=$VerifiedBuildReceipt; BuildReceiptSha256=$VerifiedBuildReceiptHash }
./oracle/check.ps1 @bound -Mode self-check -Baseline ./incident-workspace.arcadia -Output $FreshSelfCheck
./oracle/check.ps1 @bound -Mode same -Baseline $ImmutableBaseline -Actual $SavedCheckpoint -Output $FreshSameCheck
./oracle/check.ps1 @bound -Mode repair-c -Baseline $OriginalBaseline -Actual $SavedRepairCheckpoint -Output $FreshRepairCheck
./oracle/check.ps1 @bound -Mode message -Baseline $BeforeMessage -Actual $AfterMessage `
-View '70200000-0000-4000-8000-000000000040' -Target '70200000-0000-4000-8000-000000000021' `
-Coordinate $IndependentlyExpectedSendY -Output $FreshMessageCheck
./oracle/check.ps1 @bound -Mode lane -Baseline $BeforeLane -Actual $AfterLane `
-View '70200000-0000-4000-8000-000000000040' -Target '70200000-0000-4000-8000-000000000012' `
-Coordinate $IndependentlyExpectedLaneX -Output $FreshLaneCheck
```
Coordinates must be predetermined from captured logical pointer positions, frozen display scale and the starting coordinate. Do not infer them from the saved output; exact 272 requires independently verified 20-world-unit displacement from 252. Use `same` for zero motion, cancellation, Undo, or reopen against the appropriate immutable checkpoint. Native Save/history/camera observations remain separate evidence.
This is a host-specific guarded recipe, not a binary package. Portable handoffs must include the exact scripts/fixture and referenced frozen verifier; peers resolve their own matching toolchain and gate evidence. Existing output directories are never overwritten.