← Commit history

v0.1.8: sweep orphaned 'Adom is driving' badges on bridge startup (in-memory idle timers are lost on restart, so a pre-restart badge would linger forever)

John Lauer ·3d2b81d5dd ·3mo ago ·parent f9585c0
5 files changed +21−7
bridge/BRIDGE_VERSION+1−1
@@ -1 +1 @@-0.1.7+0.1.8
bridge/bridge.json+1−1
@@ -2,7 +2,7 @@   "manifest_version": 1,   "name": "native-browser",   "displayName": "Adom Native Browser (Chrome + Edge)",-  "version": "0.1.7",+  "version": "0.1.8",   "expectedExtensionVersion": "0.1.2",   "description": "Drives the user's REAL signed-in Chrome/Edge via an installed extension (native-messaging transport). Mirrors the puppeteer bridge's verb surface as nbrowser_* but runs inside the actual logged-in profile, so cookies/SSO/saved-logins/captcha human-trust all work. The bridge binds an ephemeral loopback port (PORTS.md compliant) and writes a discovery file; the native-messaging host pumps stdio <-> this bridge; the extension never touches a TCP port.",   "homepage": "https://wiki.adom.inc/adom/adom-browser-extension",
bridge/package.json+1−1
@@ -1,6 +1,6 @@ {   "name": "adom-native-browser-bridge",-  "version": "0.1.7",+  "version": "0.1.8",   "private": true,   "description": "adom-desktop bridge for the Adom native-browser extension (Chrome + Edge)",   "main": "server.js",
bridge/server.js+14
@@ -1545,3 +1545,17 @@ function startHttp(p) {   }); } startHttp(argPort());++// On startup, clear any ORPHANED "Adom is driving" overlays a PREVIOUS bridge instance left on Chrome+// windows. The badge idle-expiry timers are in-memory, so a bridge restart (redeploy/crash) LOSES them+// while the OS overlay persists — so without this sweep, a badge applied before a restart would linger+// forever (exactly the "personal profile still badged, nothing driving it" bug). Active driving re-applies+// the badge on its next verb (touchBadge), so the only cost is a brief gap on a currently-driven window.+async function sweepBadgesOnStartup(attempt = 0) {+  try {+    const list = await chromeWindowsDetailed();+    if (list && list.length) { for (const w of list) taskbar(w.hwnd, { overlay: { badge: 'none' } }).catch(() => {}); return; }+  } catch {}+  if (attempt < 4) setTimeout(() => sweepBadgesOnStartup(attempt + 1), 3000); // AD connection may not be ready at boot+}+setTimeout(() => sweepBadgesOnStartup(), 4000);
native-browser-bridge-manifest.json+4−4
@@ -1,8 +1,8 @@ {   "manifest_version": 1,-  "version": "0.1.7",-  "url": "https://wiki.adom.inc/download/adom/adom-browser-extension/0.1.7/native-browser-bridge-v0.1.7.bin",-  "sha256": "807e82f9886b4168b99b408573c8567077059de367ac0a2cab8d815609247954",-  "size": 56780,+  "version": "0.1.8",+  "url": "https://wiki.adom.inc/download/adom/adom-browser-extension/0.1.8/native-browser-bridge-v0.1.8.bin",+  "sha256": "1ed081a1136b767e6136ec478fdcc0df5a4bc1c1916e46af631cd0d68b6f3350",+  "size": 57125,   "released_at": "2026-07-14T00:00:00Z" }\ No newline at end of file