← Commit history
v0.16.13 (insiders): chrome_status.notifications finds ab's notifications block by shape (the direct /status nests it differently from the relay view), so urgentAllowed is read for real.
6 files changed
+17−6
bin/nb-dashboard+1−1@@ -20,7 +20,7 @@ const { execFile, spawn } = require('child_process'); const fs = require('fs'); const crypto = require('crypto'); -const VERSION = '0.16.12'; // keep in lockstep with package.json (pkg version)+const VERSION = '0.16.13'; // keep in lockstep with package.json (pkg version) // SEND TO AI IS UN-PARKED (John: "yeah, we are re-enabling the send to ai. it seems to be good now"). // The ah build thread certified the crash family dead on the gate-fixed build and the delivery leg is // proven end to end. The park const is DELETED rather than flipped, so no dead branch can resurrect it.
bridge/BRIDGE_VERSION+1−1@@ -1 +1 @@-0.16.12+0.16.13
bridge/bridge.json+1−1@@ -2,7 +2,7 @@ "manifest_version": 1, "name": "native-browser", "displayName": "Adom Native Browser",- "version": "0.16.12",+ "version": "0.16.13", "expectedExtensionVersion": "0.2.10", "description": "Drives the user's REAL signed-in Chrome/Edge, in two layers. Layer 1 (nb) needs NOTHING installed and works on any machine: nbrowser_open_os_window (open a URL in the user's real profile, background+flashing, the OAuth/consent path), nbrowser_os_windows, nbrowser_profiles, nbrowser_wake_profile, nbrowser_force_close. Layer 2 (nbe, the Adom Native Browser Extension) unlocks the rest: CDP driving (navigate/click/read/screenshot) inside their logged-in profile. The bridge binds an ephemeral loopback port and the native-messaging host pumps stdio <-> bridge.", "homepage": "https://wiki.adom.inc/adom/nb-bridge",
bridge/package.json+1−1@@ -1,6 +1,6 @@ { "name": "adom-native-browser-bridge",- "version": "0.16.12",+ "version": "0.16.13", "private": true, "description": "Native-browser bridge for Bridge (ab): layer 1 (nb) plus layer 2 via nbe, the Adom Native Browser Extension (Chrome + Edge).", "main": "server.js",
bridge/server.js+12−1@@ -1279,7 +1279,18 @@ async function notificationSwitches() { // itself does not expose the live DND state, so "may be hidden" is the honest word. let ab = null; // ab's /status is a plain GET on its direct API (the CLI's `status`), not a command verb.- const pick = (out) => (out && out.desktop && out.desktop.permissions && out.desktop.permissions.notifications) || (out && out.data && out.data.desktop && out.data.desktop.permissions && out.data.desktop.permissions.notifications) || null;+ // The block's nesting differs between the relay CLI view and the direct /status, so find it by shape:+ // the object under a "notifications" key that carries urgentAllowed / bannersEnabled.+ const pick = (out) => {+ const seen = new Set();+ const walk = (o, depth) => {+ if (!o || typeof o !== 'object' || depth > 6 || seen.has(o)) return null; seen.add(o);+ if (o.notifications && typeof o.notifications === 'object' && ('urgentAllowed' in o.notifications || 'bannersEnabled' in o.notifications)) return o.notifications;+ for (const k of Object.keys(o)) { const r = walk(o[k], depth + 1); if (r) return r; }+ return null;+ };+ return walk(out, 0);+ }; const diag = { tried: [] }; const getJson = (url) => new Promise((resolve) => { try {
package.json+1−1@@ -1,6 +1,6 @@ { "slug": "nb-bridge",- "version": "0.16.12",+ "version": "0.16.13", "type": "app", "title": "NB - Native Browser Bridge", "description": "This package installs the SKILLS into your container so your AI knows how to drive your real signed-in Chrome and Edge; Bridge loads the bridge runtime itself from the release zip.",