Combined Scenario renderer Windows gates — attempt2
Prepared only at 37be41092b, worktree .local/scenario-renderer-bridge-ytr83r-20260913. No Cargo, toolchain version query, cleanup or application execution was performed during preparation. Parent owns all sequential stage dispatch.
Run with PowerShell7: pwsh -NoProfile -File .local/scenario-renderer-gates-attempt2-20260913/run.ps1 -Stage list, followed individually by focused, all, server, clippy, build. There is no redundant check stage. Each later stage requires the exact successful previous receipt, unchanged recipe/source/config bindings and preserved prior raw log.
Before first dispatch, parent supplies current-pin package-clearance.json with base, cargoExitCode0, target equal absolute root/target, dependenciesRetained true; existing successful zero-removal cleaning is allowed. Preparation never clears outputs.
Source scope was freshly enumerated from Git and independently from rg, with exact membership equality and a clean frozen worktree:591 files. This uses the prior crates/docs/examples/build/harness-fixtures/textual-authoring-fixture scope plus rust-toolchain.toml, Cargo.toml and Cargo.lock. enumeration.json records the exact scope; expected-inputs.json pins every raw byte count/SHA256. The one initial inputs-complete-before.json capture has already completed and independently matched all591 hashes. Do not run before again or replace evidence. Every stage captures and verifies591 inputs before and after; a changed scope is failure, not an automatic new count.
External input provenance is explicitly separate from version-controlled source. external-inputs.json binds .local/toolchain/env.ps1 and the presence/absence of config/config.toml at root, root/.local, the worktree and configured CARGO_HOME. All eight Cargo config candidates were absent at preparation; newly appearing files fail capture. First list stage records cargo/rustc/clippy/clang version output, paths, statuses and selected environment once, without rebuilding merely for versions. That receipt and the external env script hash remain bound in every stage receipt. No registry-wide hashing is claimed.
Focused membership is exactly87 unique tests: previous12 Scenario dispatch/SVG/rename regressions,53 typed activation/lifecycle/direct/atomic tests and22 resolver tests. expected-tests.json records groups, exact fully qualified names and current source module hash checks. The actual desktop list must contain each87 once; focused executes each once with no ignores; full desktop must match the complete listed multiset, pass all87 and retain ignored tests/result totals.
Server stage runs cargo test -p oa-server --all-targets --locked --offline -- --test-threads=1. No server full-test total is assumed: receipts preserve every parsed test/result summary and verify totals agree. scenario_layout::saved_scenario_positions_roundtrip_through_http_without_partial_or_noop_writes must pass exactly once; failure, absence, duplication or ignored status rejects the gate. Source namespace verified in tests/http.rs23–24 and tests/http/scenario_layout.rs176–177.
Clippy includes both oa-desktop and oa-server, all targets, locked/offline, -D warnings. Final GUI build records root/target/debug/arcadia-studio.exe path, bytes, SHA256 and timestamp. All runs use the pinned worktree and shared root target sequentially. Every receipt includes command arguments, source pin, timing, raw-log hash, capture hashes, recipe/config bindings, membership decision and postflight status.
Scripts were parsed with the PowerShell parser, without executing run.ps1. verify-parser.ps1 exercises the actual runner parser block on synthetic87-test, multi-binary server, duplicate-required, wrong-total and missing-required logs; parser-verification.json is script verification only, not product test evidence.
Do not edit source or gate recipes after dispatch. Failed/retried stages need a new gate directory, preserving this evidence.
Attempt2 preserves the previous gate directory unchanged. Parent reported the68a81c3 attempt closed after list1010 and focused86 passed/1 failed, with591 inputs unchanged. This new source differs only in scenario_layout.rs and its tests.rs. Parent clearance is limited to oa-desktop package outputs; unchanged core/server package artifacts and third-party dependencies are retained. The runner requires the new current-pin successful clearance receipt, not the previous receipt. No product gate result is copied forward as an attempt2 result.