☰
0.9.348: Focus guardian identity survives hwnd reuse; editors spawn without activation (pre-promotion run findings)
0.9.318: Wiki #48: the 20 s idle healer measured window reachability against the primary monitor only and pulled window…
v0.9.185: background the project manager too (a spawned window that appears after the verb returned is still ours, for…
v0.9.184: REMOVE the machine-wide input hooks added in 0.9.182. They degraded the user's cursor and cost him four reboo…
v0.9.183 URGENT: 0.9.182's low-level mouse hook did window lookups and SetWindowLongPtr INSIDE the system input path, w…
v0.9.182: deterministic user-intent detection (WH_MOUSE_LL + WH_KEYBOARD_LL - a taskbar click or alt-tab can no longer…
v0.9.181: backgrounding is now ONE SetWindowPos to the bottom, once per window, only if that window took the foreground…
v0.9.180: NEVER blip. Remove the minimize-bounce and off-screen parking entirely - both are visible frames by construct…
v0.9.179: fixes wiki issue #33 - the focus GUARDIAN demoted a self-raising window on every 100ms tick with no debounce…
v0.9.175: STOP FIGHTING KiCad's geometry - after 3 rounds concede the position and just keep the window behind and unfo…
v0.9.172: THE IDLE RULE - never bounce a KiCad foreground when no verb or guard is running, so a taskbar click always w…
v0.9.165 HOTFIX: boot maintenance ran BEFORE the port bind and SetWindowLongPtr blocks forever against a hung KiCad, so…
v0.9.164: heal window usability by INSPECTION - a window suppressed by an earlier bridge process was unknown to the new…
v0.9.161: THE 'weird' root cause - the park baseline excluded bridge-created windows, so an already-open KiCad got re-p…
v0.9.160: THE taskbar-icon root cause - WS_EX_NOACTIVATE removes a window from the taskbar by design, so backgrounded w…
v0.9.157: session sanitize - bridge projects are scrubbed from KiCad restore-on-launch (kicad.json system.open_projects…
v0.9.156: geometry-poison prevention (unpark before close verbs, atexit unpark, boot heal of off-screen-stranded window…
v0.9.155 EMERGENCY: ownership ledger - the bridge only parks/bounces/badges windows from process trees it spawned; user…
v0.9.152: Adom overlay badges on bridge-driven KiCad taskbar buttons (ITaskbarList3, pup pattern) + kicad_get_settings/…
v0.9.151: taskbar icon repair - minimize-parking froze windows into the taskbar before KiCad assigned their icon (blank…
v0.9.150: park = minimize-no-activate from first sighting (hwnd churn during eeschema load reset the fight threshold an…
v0.9.149: fight escalation - a window reasserting its geometry (eeschema mid-load) gets minimized-no-activate after 4 r…
v0.9.148: guardian arms without an hwnd (the vestigial not-hwnd early-return silently disabled ALL post-verb guards whe…
v0.9.146: parking instrumentation (attempts, last error, sweep ticks, bridge-window count in focusDebug)
v0.9.145: bridge-created windows stay bridge-created across verbs (rebaselining adopted the previous verb's window as t…
v0.9.144: focusDebug introspection in kicad_state (sweep/hook/sentinel liveness, inflight/guard counters, parked/baseli…
v0.9.143: SetWindowPlacement-based parking - SetWindowPos cannot move a MAXIMIZED window (the silent no-op); park demot…
v0.9.142: re-park - KiCad applies saved geometry late in init and moved itself back on-screen after the early park; the…
v0.9.141: 50ms parking sweep (deterministic) - baselines existing windows at verb start, parks anything newer off-scree…
v0.9.140: hook diagnostics (armed + per-event stderr) + SetWinEventHook restype
v0.9.139: parking engages DURING handlers - windows are created before guards arm, so the dispatcher now marks GUI-verb…
v0.9.138: off-screen parking (John's design) - the SHOW hook teleports new KiCad windows to -32000,-32000 before first…
v0.9.137: event-driven focus enforcement (SetWinEventHook on SHOW/FOREGROUND) - during bridge work a KiCad window is su…
v0.9.131: John's foreground contract - NO foreground without foregroundReason (refused otherwise), every sanctioned for…
v0.9.115: sentinel bless test fixed - 'recent input' wrongly blessed self-raises while the user typed in ANOTHER app (c…
v0.9.114: sentinel exemption for sanctioned foregrounds (bring_to_user / announce_foreground set expect_foreground so t…
v0.9.113: always-on focus sentinel (John saw late self-raises land in the foreground after per-verb guards expired) - b…
v0.9.105: every forced foreground announces itself first — ab notify_user caption (attributed to the calling thread) fi…
v0.9.104 FINAL background design (John): guardian touches ONLY KiCad windows — minimize-bounce the offender (OS returns…
v0.9.103: end-of-verb restore is KiCad-conditional — never re-raise the start-of-verb snapshot over a window the user h…
v0.9.102: guardian pre-suppresses ALL visible KiCad windows (0.5s sweep) — closes the free-first-steal hole the 0.9.101…
v0.9.101: PREVENTION guardian — WS_EX_NOACTIVATE on misbehaving KiCad windows (no more fg flashes/churn), cleared on gu…
v0.9.97: background-first hard rule — keystroke fallbacks gated behind allowFocusSteal (were leaking keys to the user's…
v0.9.79: KiCad-aware focus guardian (never fights the user, demotes thief below, 45s guard for async self-raises), laun…