← Commit history

plan: 1.0.0 candidate gated

John Lauer ·62025bc4aa ·27d ago ·parent e468650
1 file changed +1
docs/rust-port-plan.md+1
@@ -19,6 +19,7 @@ Written 2026-09-11 from a full audit of the 0.9.350 source, the Adom Bridge (ab) | 2026-09-11 | Phase 4 landed and is live on ConfRoomROG: the etiquette loop runs inside the binary (a 120 ms sentinel thread and a WinEventHook thread on EVENT_SYSTEM_FOREGROUND and EVENT_OBJECT_SHOW feeding one tested decision table; the once-per-window ledger; the owned-pid ledger with the parent-chain walk, persisted in the Python's file format; the 60 s spawn watch; sanctioned foregrounds; user-click and alt-tab detection; the idle rule; the 20 s and 60 s heals). Two judgement calls recorded in the code: WS_EX_NOACTIVATE is never set (John's 0.9.181 rule), and the idle rule ranks below the guards so an unattended run still bounces self-raises. First boot on the box: both hooks armed, the launched project manager registered and pushed back exactly once. The tour input primitives (SendInput mouse, wheel, key; MCI audio) exist behind the trait and refuse unless the target window is the measured foreground. | | 2026-09-11 | Gate with the loop running, ConfRoomROG: 73 pass, 2 fail, 15 skip. The two: `kicad_demo` (phase 5, in progress) and one foreground note on `open_board`. The loop's own event log shows exactly what happened there: the new PCB editor frame took the foreground and was bounced once by the hook within milliseconds, its "Load PCB" progress dialog took it and was bounced once, and the frame's load-complete self-raise a moment later was left alone under the "background once, then hands off" rule, which is the Python's rule and the Python's behaviour on this box. Kept as is. | | 2026-09-11 | Phase 5 landed and ran on ConfRoomROG: the six-beat tour on the native bridge, twice, background job with the panel, captions and narration, every beat opened and five of six verified on the second run in 187 s. Three fixes came out of the first run: the ab client no longer skips stop and cleanup calls during its backoff and no longer starts a backoff on a timeout; the tour input tolerates a sub-second foreground flicker before refusing a gesture; a beat whose editor sits on an unpainted canvas gets a zoom-to-fit through the native View menu before it is judged (the footprint beat then painted and animated). The one unverified beat on run two was the board: a Chrome window from another session took the foreground during it and the tour, by rule, raises each beat exactly once. Recording: ab's native recorder drops any 4K take longer than about a minute (stop times out, 0-byte file), reproduced from the CLI with no bridge involved and filed as [adom/adom-bridge#189](https://wiki.adom.inc/adom/adom-bridge/issues/189); short takes finalise. 96 verbs, 199 tests. |+| 2026-09-11 | 1.0.0 release candidate built from the exact zip the packager produces (96 verbs, 3.0 MB with the demo audio, no runtime) and gated on ConfRoomROG: 71 pass, 4 fail, 15 skip, `kicad_demo` passing for the first time. The four: three foreground notes whose "before" window was a Chrome window another session was opening and closing on the same box during the run (the two earlier gates today had one and zero such notes), and the runner's own cleanup step, which found two folders held open by KiCad windows still up; the same cleanup ran clean once KiCad was closed. Waiting on John for the insiders flip. |  ## The goal in one sentence