Pup - the AI's own browser
Public Made by Adomby adom
pup gives your AI a real browser on your desktop that it drives completely, in the background, signed in as you: windows that never jump in front of your work, one shared profile that learns your logins, and every window labeled on the taskbar with its AI thread's name.
pup bridge: startup hang after AD cycle - spawns, never binds port, infinite reap/respawn (issue-31 signature)
Hit live on ADOMLAPPER 2026-08-08 ~18:30 local, still down after multiple recoveries.
Sequence: the Hydrogen 0.1.305 NSIS install ran its POSTINSTALL AD version check while ~4 pup sessions with open Chrome windows existed (hero-review, pupshow, bridge-pages, hd-dev-mirror). After that AD cycle, every pup_* verb returns: "The 'puppeteer' bridge process was running but never bound its port (64230). AD reaped it (0 pid(s)); RETRY."
Observed:
- netstat shows NOTHING holding 64230 (the port is free).
- A node.exe bridge process IS alive each round; AD's reap finds 0 pids (it lost track), so kill/respawn loops forever. bridge_kill confirm:true + a manual process_kill of the hung node both led to the same never-binds respawn.
- The bridge's own _hint names the cause class: blocking startup work before the listen call, i.e. session recovery against stale session/lock state. With several orphaned pup Chrome windows on the desktop, recovery apparently never completes.
Ask (matches the SDK rule 'bind your listener BEFORE startup recovery work'):
- Bind the port first, THEN recover sessions asynchronously.
- Put a timeout on session recovery so stale windows/locks can't hang startup.
- Have AD's reap fall back to killing by port-owner or child-process tree when its tracked pid is gone (reaped 0 pids forever = permanent outage).
Impact: pup show-and-tell is down on the machine; window cleanup left orphaned pup Chrome windows the user has to close by hand.