# Scenario parent focus — local execution gate Codex-956atf `/root`, Windows, 2026-09-11. The corrected root source passes **all five `scenario_form_focus` regressions**, zero failures or ignored tests. This is the working patch over8d55d2d, not a claim that the unchanged base commit contains these corrections. Four tests mount the actual App root at1100×700 through the headless WGPU renderer; missing backend support fails explicitly. The [implementation handoff](release-scenario-focus-fix-20260911.md) records I1 parent rearming after source Back/Use/Escape and I2 delayed-operation ownership. The [independent source review](release-scenario-focus-review-20260911.md) has no unresolved material findings. Root preserved its strengthened overflow assertion: initial parent offset must exceed64 and the focused Name must become visible. ## Actual integration and execution The first desktop compile exited101 with12 installed-Iced API/test integration errors. Root corrected owned dynamic widget IDs to `Id::from(String)`; added the chooser's `Send + 'static` task bound; supplied the existing test Observer's `reveal: None`; disambiguated Iced Element and core TransitionDirection imports; and constructed the editor Cursor explicitly. The source-child and parent-focus contracts were retained. No dependency or public model schema changed. Scoped rustfmt and `git diff --check` passed. The second command was: ```text cargo test --locked -p oa-desktop --bin arcadia-studio scenario_form_focus -- --test-threads=1 ``` Exit0, warning-free compilation7m55s, test execution9.61s. Exactly5 passed; 715 other tests were filtered out. The current binary contains720 tests, but a full720-suite result has not yet been established by this focused command. Root selected the existing Rust/Cargo1.98.1 Windows GNU/LLVM toolchain and one Cargo job. No test stack or renderer skip setting was added. ## Preserved evidence and limits Immutable private directory `.local/scenario-focus-gate-20260911/` contains the test executable, verified runtime DLL, failed and successful logs, and a275-input manifest of actual source/build files, including the new untracked focus module. The manifest explicitly identifies working-source provenance rather than claiming all inputs were identical to base HEAD. The correction is now committed as `8895dd2e0f87c0f16085bf4b478b8c0fbed38685`, pushed and exact readback verified. Root independently compared all275 manifest inputs with that commit's Git archive; there were zero mismatches. `commit-readback.json` preserves the comparison. | Artifact | SHA256 | | --- | --- | | 135,520,256-byte test executable | `C9C4210EA36854F20C0DC9F38137CEFE5C3BC9CD19E10E1AD41DCB410CC92D04` | | 190,464-byte libunwind.dll | `AA282FA47BB2C4E210CEA5E470CDBDCA58568F0BE0BC73E404D86AB9CD95EF6A` | | First failed compile log | `D6552F4FB6A325E312241BF9035CD7F71877C2852D60D6FD7F425CB4394F1C27` | | Passing focused log | `03DC0F104F1E4ADC7B26E25191ED9936A194EDBDF170182CAE02B4114B4E018D` | | Input/artifact manifest | `C2D26460AF67D668F8159E1B2461C07110A0B2FD61938E410016FEADA7FB2D34` | Full current desktop regression, current desktop Clippy, matching native GUI focus timing/visual behavior and Linux desktop acceptance remain separate gates. The isolated shared canvas candidate is not part of this binary; its future union must preserve the exact parent marker, session/mount split, Name identity, sensor and all five regressions. Prior676-suite/native80cf197 evidence remains historical. ## Subsequent full-suite failure and corrective work Root ran the preserved executable with `--test-threads=1` and captured the complete 720-test run: exit101,716 passed/4 failed, no ignored tests,377.91s. All five parent focus tests pass within this run. The saved full log SHA256 is `4A765FFAD4B08EC0B9D6B8399CF841E3C776051EA07B4433BB47C8E6BDC4C67F`. Three failures concern chooser fixtures/scrolling; the separately [recorded diagnosis](release-chooser-full-gate-diagnosis-20260911.md) preserves exact panic lines and values. The fourth is the existing `new_scenario_form_resets_only_its_scroll_and_recovery_gets_a_fresh_session`: after Cancel→Start without a closed render, the new form retained700px instead of zero. Installed Iced0.14.2 keyed-column diff does not replace same-length child state merely because its key changed. Root introduced a small explicit editing session wrapper which replaces only its child tree on identity change and retains same-session field state. The original complete canvas/source/history assertions are unchanged. The wrapper is reusable for the isolated process editor's invocation. Root also applies the chooser's zero-reveal-axis correction to the parent focus collector's identical fractional-capacity calculation. Corrected source is not yet covered by this saved binary; a new focused/full gate is required. No fixture tolerance, disabled test, stack override or renderer skip was introduced.