# Chooser and editing-session corrections — Windows gate Codex-956atf `/root`, 2026-09-11. The corrected source passes **chooser14/14** and **scenario-workspace18/18**, including all four previously failing cases and all five parent-focus I1/I2 regressions. The full rerun at committed `80f2588` finished **720 passed, 0 failed, 0 ignored**, exit0 in330.42s. The first strict desktop Clippy then failed on three lint findings. The later source correction `3c9e6ee` passes strict desktop Clippy and its own **720/720** full-suite rerun, with0 failures/ignored. The two passing executables and logs remain separately identified. The [first full run](release-scenario-focus-gate-20260911.md#subsequent-full-suite-failure-and-corrective-work) finished716 passed/4 failed. Its evidence is preserved. The [chooser diagnosis](release-chooser-full-gate-diagnosis-20260911.md) records why an already-visible anchor drifted by1px and why the rationale/attachment fixtures stopped before their intended interaction. Exact assertions were retained. Root replaced the one-child keyed-column assumption with a small generic `behavior/form_session.rs` widget. It forwards layout/input/drawing/operations, retains child state for the same editing identity, and creates a fresh child tree when a different session replaces it without an intervening closed render. The existing test now verifies zero new-form scroll while preserving the canvas's actual137×850 offset, same-session700px scroll, raw recovery and source/history. The helper is shared with the future isolated process-editor union. The chooser and parent focus collectors now preserve zero requested reveal on each axis. Rounded drawing offsets no longer create a spurious delta from a fractional scroll capacity. The exact pointer-versus-keyboard anchor assertion now passes. The corrected operation fixture explicitly selects and resolves its actual interface operation; the paired-attachment fixture establishes real child correspondence through public events before selecting its facet. Neither change relaxes production ownership/write guards. ## Actual commands and evidence Root used Rust/Cargo1.98.1 Windows GNU/LLVM, one Cargo job and ordinary test-stack settings. Standalone scoped rustfmt and `git diff --check` pass. | Command | Result | | --- | --- | | `cargo test --locked -p oa-desktop --bin arcadia-studio app::reference_authoring::tests:: -- --test-threads=1` | Exit0; warning-free compile2m01s;14 passed,706 filtered;64.11s. | | Same prefix with `behavior::scenario::workspace::tests::` | Exit0;18 passed,702 filtered;4.89s. | | Immutable corrected executable `--test-threads=1` | Exit0;720 passed,0 failed/ignored/filtered;330.42s. | | `cargo clippy --locked -p oa-desktop --all-targets -- -D warnings` at80f2588 | Exit101: one useless conversion, unnecessary unwrap and large workflow-event variant. Subsequent correction/gates are separate. | Immutable `.local/chooser-correction-gate-20260911/` contains the corrected executable, verified runtime DLL and exact focused logs. Its512-input manifest includes Rust/Cargo inputs plus shared Windows build resources, docs, examples and harness fixtures. The earlier275-input manifest remains a narrower preserved source inventory for the earlier executable, not this corrected gate. | Artifact | SHA256 | | --- | --- | | 135,405,568-byte corrected test executable | `05811E18E4FF3495EECFD585947234906F27F7709B7E583F0362477EF1A943C3` | | 190,464-byte libunwind.dll | `AA282FA47BB2C4E210CEA5E470CDBDCA58568F0BE0BC73E404D86AB9CD95EF6A` | | Chooser14 log | `EFA48AE5C66C8D839635F61DE2F9C798DF809FA686B3F173FE112B28558AAAF4` | | Scenario18 log | `10B7EF829A7AF0D741571701EC257D88B71A0D5EF7BB53A2022AE000B5FF1CEE` | | Working-input/artifact manifest | `985C06A3B9926C9096F97D59DDE57CE3494F2FE06008BB9F46FBD5578126B4BB` | | Full720 log | `C6D62D6E872748F277399E0058887C55340AD3D6958D556C9DA09D275B76BA09` | | Full Git source archive80f2588 | `D25EE71824163504474398A39E35D446A1659931566FB8C9C8A449FB4F5680B4` | All512 recorded inputs were independently compared with the complete Git archive of `80f25882143d977ca4984691740c3a7ffd45aedd`: zero mismatches. Both this commit and parent8895dd2 were pushed and exact remote readback verified. The archive has 14,632,960 bytes; private `commit-readback.json` records the comparison. Independent follow-up review of root's session wrapper and parent reveal correction completed with no material new finding; see the dated appendix in [the review](release-scenario-focus-review-20260911.md). That source/log review preceded full720 completion and did not execute tests. Its appended report SHA256 is `214F9F1F445209B26C50A5CF6E1F81D2D8F2A76C00ADA212378267B7582DBB8A`. Matching native Windows GUI focus/visual acceptance remains open. The isolated shared canvas and schema8 codec changes are outside this build. Further Linux builds/checks are deferred by the user's15:28 UTC instruction until the user reports networking resolved. ## Subsequent strict lint correction Commit `3c9e6eeb64ce3efc03b29890b82199a42c21f335` replaces the large semantic workflow-event payload with ordinary Box ownership and a typed constructor. All event routing, row addressing and exact test payload assertions are retained. The chooser now binds its optional callback directly; the test modal drops a redundant conversion. No lint suppression was added. The first correction attempt emitted21 type errors because a case-insensitive PowerShell comparison skipped constructor names changed only in case. The actual source was then corrected using a case-sensitive comparison and explicit boxed patterns. `cargo clippy --locked -p oa-desktop --all-targets -- -D warnings` passes with exit0 in2m52s; scoped rustfmt and whitespace checks pass. The log SHA256 is `54FEC59B7E89EF322EE4DF152EEC461526B82A3D0C1B01A988A025846FE2D645`. The fresh full720 rerun finished with exit0,720 passed,0 failed/ignored/filtered in339.37s, after a warning-free4m09s build. Its matching GUI subsequently built warning-free in7m00s and passed the scoped SA creation/history/reopen workflow; see [native evidence](release-scenario-native-3c9e6ee-20260911.md). No concurrent production-source edits occurred. [Durable exact logs](experiments/chooser-correction-20260911/README.md) preserve nine original payloads/302,410 bytes, including the earlier failures, corrected focused/full results and strict lint pass. Archive manifest SHA256 `F79E6124985362F62327F54A6B9F7F72762CE26A8A9B17B7369CEF8DDEEF208E`. The final test stage is `.local/chooser-lint-gate-20260911/`. All513 recorded inputs (now also including the tracked `rust-toolchain.toml`) match Git3c9e6ee exactly. The [final manifest](experiments/chooser-lint-gate-20260911/manifest.json) and both exact logs are durable; manifest SHA256 `CA8EA64B2E9F737C282D99DC5A59BDDD3EFD24A8118B7A779DB5CE3DABD98A34`. | Final3c9e6ee artifact | SHA256 | | --- | --- | | Test executable135,412,736 bytes | `1D7B681FDD08DD473983789C8153943A73E345114F012C9237BF7C9AD44EDDBE` | | Full720 log82,369 bytes | `41247CE9261BDABD086FEDC40A7C723D7B47C2C4E0728E7042B3F941389FB14A` | | Strict Clippy log157 bytes | `54FEC59B7E89EF322EE4DF152EEC461526B82A3D0C1B01A988A025846FE2D645` |