← Commit history

Update 4 file(s)

John Lauer ·09bdf6baf0 ·1mo ago ·parent 23a0311
4 files changed +19−8
BRIDGE_VERSION+1−1
@@ -1 +1 @@-0.9.195\ No newline at end of file+0.9.196\ No newline at end of file
adom-bridge-kicad-manifest.json+5−5
@@ -1,15 +1,15 @@ {   "manifest_version": 1,   "name": "kicad",-  "version": "0.9.195",-  "url": "https://wiki.adom.inc/download/adom/kicad-bridge/0.9.195/adom-bridge-kicad-v0.9.195.zip",-  "sha256": "60cc891dbb286f577796cf6a6e847670d698fcdf111267d630503fd00fda04a8",-  "size": 466617,+  "version": "0.9.196",+  "url": "https://wiki.adom.inc/download/adom/kicad-bridge/0.9.196/adom-bridge-kicad-v0.9.196.zip",+  "sha256": "cbc24354afed887b790049e44c1406b3ef311fcd83e60365941457ce372ca812",+  "size": 466875,   "verbPrefixes": [     "kicad_"   ],   "healthEndpoint": "/status",-  "released_at": "2026-08-20T00:05:00Z",+  "released_at": "2026-08-20T00:20:00Z",   "hero": "https://wiki.adom.inc/blob/app/kicad-bridge/kicad-hero.png",   "languages": [     "Python",
bridge.json+1−1
@@ -2,7 +2,7 @@   "manifest_version": 1,   "name": "kicad",   "displayName": "KiCad EDA",-  "version": "0.9.195",+  "version": "0.9.196",   "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.",
handlers/progress.py+12−1
@@ -249,8 +249,19 @@ def live() -> list:         snapshot = list(_live.items())     for phase, cur in snapshot:         try:+            # A step's explicit percent is a FLOOR, not a freeze. The first live+            # test pinned the bar at 10% for 47s while the ETA counted to zero,+            # because an explicit percent suppressed the elapsed-derived one -+            # a stuck bar next to a moving ETA reads as a hung job. Take+            # whichever is further along, so the bar always advances and never+            # goes backwards.+            _elapsed = max(0.0, time.time() - cur["startedAt"])+            _est, _ = estimate(phase, cur.get("startKind", "warm"))+            _derived = int(min(95, (_elapsed / _est) * 95)) if _est else None+            _floor = cur.get("percent")+            _pct_now = max([v for v in (_derived, _floor) if v is not None], default=None)             b = block(phase, cur["stepLabel"], cur["startedAt"],-                      percent=cur.get("percent"), start_kind=cur.get("startKind", "warm"),+                      percent=_pct_now, start_kind=cur.get("startKind", "warm"),                       blocked_by=cur.get("blockedBy"))             b["seq"] = cur.get("seq")             out.append(b)