← Commit history

v0.9.147: guardian arms for EVERY spawn verb (was gated on a captured user foreground that can be None) - closes the unguarded gap where late-created windows were adopted by rebaselining

John Lauer ·bcc3614fb1 ·1mo ago ·parent cf1ed59
5 files changed +13−8
BRIDGE_VERSION+1−1
@@ -1 +1 @@-0.9.146+0.9.147
adom-bridge-kicad-manifest.json+5−5
@@ -1,15 +1,15 @@ {   "manifest_version": 1,   "name": "kicad",-  "version": "0.9.146",-  "url": "https://wiki.adom.inc/download/adom/kicad-bridge/0.9.146/adom-bridge-kicad-v0.9.146.zip",-  "sha256": "af208f574376000f07a75b58794d97b77d250f1f1b330fc5bd62268b3be3f15a",-  "size": 419050,+  "version": "0.9.147",+  "url": "https://wiki.adom.inc/download/adom/kicad-bridge/0.9.147/adom-bridge-kicad-v0.9.147.zip",+  "sha256": "527e7f27a30724c00955686b2f98c45e883fdc8855db06b4e84aad3b58f635c5",+  "size": 419197,   "verbPrefixes": [     "kicad_"   ],   "healthEndpoint": "/status",-  "released_at": "2026-08-17T14:33:29Z",+  "released_at": "2026-08-17T14:35:29Z",   "hero": "https://wiki.adom.inc/blob/app/kicad-bridge/kicad-hero.png",   "languages": [     "Python",
adom-bridge-kicad-v0.9.147.zipadded
⋯ 1 unchanged line ⋯
bridge.json+1−1
@@ -2,7 +2,7 @@   "manifest_version": 1,   "name": "kicad",   "displayName": "KiCad EDA",-  "version": "0.9.146",+  "version": "0.9.147",   "description": "Reverse bridge for KiCad \u2014 board/schematic introspection, lint via kicad-cli, plugin install, multi-instance probe, in-process DRC.",   "homepage": "https://wiki.adom.inc/adom/adom-bridge",   "author": "Adom Inc.",
server.py+6−1
@@ -851,7 +851,12 @@ def dispatch_command(command: str, args: dict) -> dict:     except Exception:         pass -    if _user_fg is not None:+    if _user_fg is not None or command in _SPAWNS_WINDOW:+        # 2026-08-17: the guard arm was gated on a captured user foreground —+        # when capture returned None (seen live), NO guard armed after spawn+        # verbs, so late-created windows appeared in an unguarded gap and the+        # parking rebaseline adopted them as the user's. The guardian only+        # touches KiCad windows now, so arm it for EVERY spawn verb.         try:             from handlers import win_focus             # v0.9.104: NO user-window restore — the guardian handles KiCad