← Commit history

Publish 2.0.512

John Lauer ·13072bfedd ·1mo ago ·parent 8211d2e
2 files changed +4−4
package.json+2−2
@@ -1,6 +1,6 @@ {   "slug": "pup-bridge",-  "version": "2.0.511",+  "version": "2.0.512",   "type": "app",   "description": "The pup SKILL PACK \u2014 the AI skills that teach a cloud/container AI how to drive the Adom Desktop Puppeteer (pup) bridge (browser_* verbs): the everyday `pup` skill plus focused sub-skills for windows/sessions/tabs, screenshots+recording, browsers+Chrome install, and driving the Adom wiki. Installs into ~/.claude/skills + ~/.codex/skills. DOCS ONLY \u2014 this is NOT the bridge runtime. The bridge itself (the Node program that drives the browser) runs on the DESKTOP: Adom Desktop bundles it and auto-installs/updates it, and it's published separately on the Releases tab as adom-bridge-puppeteer-v<ver>.zip. The pkg version is kept in lockstep with the Release version so the page's max version row always carries BOTH a pkg tarball (skills) and a runtime zip (bridge) \u2014 a skills-only or runtime-only bump on the top row breaks constraint installs. TL;DR: pkg install = the skills for your AI; the bridge = the Release zip, which Adom Desktop manages for you.",   "keywords": [@@ -147,5 +147,5 @@       "prompt": "Download the puppeteer-bridge zip from the wiki and walk me through server.js"     }   ],-  "changelog": "Fix the poisoned port.json memo that made the extension lane permanently silent. packagedPort() memoized on 'if (_pkgPort !== null)' while its catch set _pkgPort = 0, so ONE failed first read (it races service-worker startup, and sweepBadges can trigger it before the drive loop) locked the memo forever: 0 is !== null so it never retried, and _pkgLane stayed empty, which pupExtPoll treats as 'not the drive browser' and returns. Measured on AdomLapper: the lane window launched, loaded all three toolbar extensions, was stamped and sized correctly, and lastPollMsAgo was never set. Only a SUCCESSFUL read is memoized now; a failure leaves the memo unset so the next tick retries. Also correcting the record from 2.0.510's note: pup_ext_diag attaches over CDP to the adom-you browser by design and never talks to the lane, so the 2.0.506 worker it reported was not cross-talk."+  "changelog": "Make the extension lane observable. It deliberately runs with NO CDP debug port, which is the whole point of the lane and also means that when its extension goes quiet there is no way to look inside: today the window launched, loaded all three toolbar extensions, sized and stamped correctly, and the control channel stayed silent with nothing anywhere saying why, so I was reduced to guessing. The extension now POSTs /exthello on every poll attempt BEFORE the lane gate, carrying the lane token it actually holds plus whether its port.json read succeeded, and pup logs it throttled to one line per distinct lane per 30s, saying plainly whether that browser may take work. A token mismatch is now a log line instead of silence." }
page.json+2−2
@@ -4,7 +4,7 @@   "slug": "pup-bridge",   "title": "Pup - Puppeteer Bridge",   "brief": "pup is the AI's own browser: a real, full Chrome on the user's desktop that the AI fully controls (a sandbox, not the user's signed-in browser). Rides Bridge; pup_* verbs open windows and tabs, navigate, screenshot, and eval JS.",-  "version": "2.0.511",+  "version": "2.0.512",   "tags": [     "skills",     "pup",@@ -167,5 +167,5 @@       "pup-bridge verbs are invoked through the adom-bridge CLI, not through a binary this package installs, so prefix rules cannot reach them."     ]   },-  "changelog": "Fix the poisoned port.json memo that made the extension lane permanently silent. packagedPort() memoized on 'if (_pkgPort !== null)' while its catch set _pkgPort = 0, so ONE failed first read (it races service-worker startup, and sweepBadges can trigger it before the drive loop) locked the memo forever: 0 is !== null so it never retried, and _pkgLane stayed empty, which pupExtPoll treats as 'not the drive browser' and returns. Measured on AdomLapper: the lane window launched, loaded all three toolbar extensions, was stamped and sized correctly, and lastPollMsAgo was never set. Only a SUCCESSFUL read is memoized now; a failure leaves the memo unset so the next tick retries. Also correcting the record from 2.0.510's note: pup_ext_diag attaches over CDP to the adom-you browser by design and never talks to the lane, so the 2.0.506 worker it reported was not cross-talk."+  "changelog": "Make the extension lane observable. It deliberately runs with NO CDP debug port, which is the whole point of the lane and also means that when its extension goes quiet there is no way to look inside: today the window launched, loaded all three toolbar extensions, sized and stamped correctly, and the control channel stayed silent with nothing anywhere saying why, so I was reduced to guessing. The extension now POSTs /exthello on every poll attempt BEFORE the lane gate, carrying the lane token it actually holds plus whether its port.json read succeeded, and pup logs it throttled to one line per distinct lane per 30s, saying plainly whether that browser may take work. A token mismatch is now a log line instead of silence." }\ No newline at end of file