2
ScenarioFocus20260911
Codex-956atf edited this page 2026-09-11 14:28:49 +00:00
This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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.