39 lines
6.1 KiB
Markdown
39 lines
6.1 KiB
Markdown
# Combined Saved Scenario spacing gate preparation
|
|
|
|
Attempt2 is prepared for the fetched user instruction update. The candidate commit awaits finalization; no source enumeration, baseline capture, finalization, compiler, test execution, cleanup, or native launch has been performed here. The parent owns final source review and dispatch.
|
|
|
|
This recipe adapts the reviewed `scenario-workspace-gates-attempt3-20260913` runner for the separate `scenario-spacing-ytr83r-20260913` worktree. It retains the shared root `target` and dependency cache with the established jobs=1/incremental=0 environment. The scripts never clean packages. Any separately required package clearance belongs to the parent.
|
|
|
|
## Expected membership
|
|
|
|
The previous actual desktop listing has 1,045 names. Source adds 36 ordinary tests: nine primitive-hit tests, nine pure spacing tests, five controller tests, seven App adapter tests, and six mounted spacing tests. One additional ignored large-scene timing diagnostic brings the predicted full listing to **1,082**, including four normally ignored cases.
|
|
|
|
The exact focused set is **288**: the previous corrected 224 plus all five `app::transition_context_tests`, all 23 `behavior::contextual_source_tests`, and all 36 new ordinary tests. A successful focused run should report 288 passed, zero failed/ignored, and 794 filtered. The timing diagnostic is excluded. `selection-provenance.json` records the initial source-only derivation and hashes; it is not a final source binding or execution result. If review changes names or test membership, update this preparation before finalization. The actual executable listing must match every full and focused expected name before execution continues.
|
|
|
|
## Dispatch after the reviewed candidate is committed
|
|
|
|
1. Run `finalize.ps1 -SourceCommit <full reviewed SHA>`. It requires a clean exact checkout, independently enumerates Git and on-disk input membership, captures every input and external configuration, and creates the single baseline capture. Input count is derived afresh, not inherited from the 601-input UI gate.
|
|
2. Parent runs `run.ps1 -Stage list`, then `focused`, `all`, `clippy`, and `build`, sequentially and only after each prior receipt passes.
|
|
|
|
The listing binds the actual test executable reported by Cargo. Later stages verify that exact binary before and after execution; focused/full output must name the same executable. Exact per-test results, counts, ignored cases, source hashes, script/config hashes, prior receipts, and raw logs are checked. The GUI build receives a separate path/size/hash/time binding after successful build.
|
|
|
|
Strict lint remains `cargo clippy -p oa-desktop -p oa-server --all-targets --locked --offline -- -D warnings`. The prior unchanged core/server evidence is reused only while the finalizer confirms those paths and manifests have not changed from the verified 37 source. Server tests do not substitute for server strict lint. No separate server test repetition is planned.
|
|
|
|
## Prior failure and preparation checks
|
|
|
|
The closed cb5 gate is preserved unchanged: listing 1,045 and focused 224 passed; the full run had 1,040 passed, two failed, and three ignored, with 601 inputs unchanged. Its failed transition-context and contextual-source evaluators are included in this focused set. Strict lint and GUI build did not run. Finalization records hashes of the original logs, receipts, and input bindings; the previous gate is not combined-source acceptance.
|
|
|
|
The preparation syntax check covers the original seven PowerShell scripts plus the optional diagnostic runner. The parser evaluator extracts the runner's actual parsing block and checks nine synthetic cases (valid/invalid exact focused selection and full listing). The earlier preparation receipt is retained; `parser-preparation-verification-timing.json` covers the revised recipe. These checks execute no Cargo or product tests. Finalization reruns the parser check with the finalized recipe in a separate receipt.
|
|
|
|
## Optional timing diagnostic
|
|
|
|
After the full stage succeeds, the parent may run `diagnostic.ps1`. It directly invokes the exact listed test executable with `--exact behavior::scenario::spacing::controller::timing_tests::saved_spacing_capture_prepare_20_lanes_1000_messages_3_views --ignored --nocapture --test-threads=1`. It never runs Cargo or rebuilds. Clippy does not depend on this optional receipt.
|
|
|
|
The runner verifies the prior successful full receipt and its transitive recipe/input hashes, source/config before and after, and exact executable before and after. It requires one named test, one passing summary (1 passed, 0 failed/ignored, 1,081 filtered), and one `SPACING_TIMING_JSON=` payload with schema `scenario_spacing_timing_v1` and `invariant_status: "passed"`. The child receives `SCENARIO_SPACING_SOURCE_PIN`; its reported pin, 20 lanes/1,000 messages/3 views, and 28 samples with the expected phase counts are checked. The caller's previous source-pin environment value is restored. Timing samples are recorded without a speed threshold. The debug-profile diagnostic measures this fixture on this host; it establishes no native responsiveness or release performance guarantee. Existing diagnostic logs and captures cannot be overwritten.
|
|
|
|
## Instruction-only retry
|
|
|
|
This gate supersedes the preparation-only finalization at `07e611fb9432b5164e43c326f3e3c7e75e1e6567`; that directory remains unchanged, and no Cargo ran there. The only admitted Git change is `AGENTS.md`, with fetched blob `767be18f086c04b7a688b107808e97ac98881356`. `instruction-update-template.json` binds the exact instruction bytes and the original610-input capture. Before making the new baseline capture, finalization requires the same610 paths, lengths and hashes and saves `instruction-update-provenance.json`. No prior generated result is copied as new evidence.
|
|
|
|
Independent Gitea peers run on separate machines. These local recipes and captures are available only on this host; the parent owns publication of portable evidence. This host's established local subagent target/cache sharing does not imply shared files, processes or resource constraints with Gitea peers.
|