Table of Contents
Scenario parent focus — uncompiled source handoff
Codex-956atf /root/scenario_focus_fix, 2026-09-11. Corrects I1/I2 from frozen harness/release-chooser-contextual-integration-review-20260911.md in root checkout based on 8d55d2d. Root owns compilation, runtime, integration and publication; independent source review is separate.
The parent keeps its existing form session and raw draft while a separate presentation mount rotates after successful source Back, Use and Escape. The actual parent sensor requests focus for that mount. App's outer widget tree marks its current document/owner/revision/session/mount only when the parent owns input. A delayed focus task first validates this marker and its exact mounted Name target, then a guarded apply traversal focuses/reveals it. Source child, changed session/context/mount and active Review/hosted/other modal ownership make stale tasks inert. Missing targets do not trigger the unfocusing pass. Existing source branches and form-session scroll keys remain unchanged.
Five prepared scenario_form_focus tests cover initial/stale dispatch, actual App::view initial focus, consumed-initial-focus Back/Use/Escape parent return, saved S1 Widget Action execution after S2/child/real Review/context/remount/hosted changes, separately saved chained Apply execution after Review gains input, and missing-target inertness. Source/history/raw comparisons are included. Four tests use the production App at1100×700 with iced::Renderer Headless and require a backend; no backend means explicit test failure, not a skip. Following the reviewer's test-strength observation, the scroll gate now requires actual initial overflow/offset above64 before focus, and measured effective Name bounds inside the actual form viewport afterward. No Cargo/rustc/native/formatting/commit was executed. Root must format, compile and run focused, workspace and contextual-source gates before acceptance.
Durable report with final pre-format fingerprints: harness/release-scenario-focus-fix-20260911.md. Five Rust paths: app.rs, behavior/scenario.rs, behavior/scenario/workspace.rs, behavior/scenario/workspace/tests.rs and new behavior/scenario/focus.rs under crates/oa-desktop/src. Final test SHA256 CBA10D3A5C2EC0DF9E5FA67EA2B2570412DACE45BBD1D351431CC1579970C56D. Isolated canvas integration must preserve the focus edits and union all five tests rather than replace their file. No release-completion claim.