Pup - Puppeteer Bridge
Public Made by Adomby adom
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.
Releases 572
Standalone per-platform binaries to download and run, no tools needed. The newest is pinned on top.
Fixes a data-loss race in pup_quit_idle_browsers that could close a browser holding live windows. It judged idle purely by adopted in-memory sessions, so right after a bridge restart, before re-adoption runs, a warm browser still holding real windows looked session-less and got closed, taking every window with it. It now inspects the browsers ACTUAL open pages before closing and skips any browser that still holds a non-blank page, or that cannot be inspected, so a browser mid-re-adoption or user-held is never reaped
All releases showing 301-320 of 572
Audit columns for the standard test table (John: 'put a column for how many times you triggered an orange flash, and another for if you triggered a progress bar in windows taskbar' + 'and how long that prog bar ran'). Every browser_list_windows entry now carries flashCount (both flash paths counted), progressBarCount (times the agent-activity taskbar progress bar engaged), and progressBarMs (total time it ran, live-inclusive if currently running) — so the post-open table proves the window's full attention footprint (flash, progress, overlay, geometry) from one call, no log scraping.
Background windows are BORN off-screen again (John: 'you keep opening pup windows on top of the one i'm working in ... it just happened for all those windows you opened'). Regression chain, owned: 1.9.135 removed the process-wide --window-position=-32000 launch default because it poisoned every window's RESTORE rect (the taskbar-click-shows-nothing bug) — but that default was also what made the birth moment invisible, so new windows started appearing at a visible position ON TOP of whatever the user had up (including the pup window they were working in) for the beat before the park pushed them to bottom-z. Fix: Target.createTarget now passes explicit per-window left/top -32000 for the one creation moment; the per-window unconditional park (1.9.138) immediately rewrites the normal rect on-screen with the inset frame at bottom z-order, so the restore-rect poisoning cannot recur (the park always lands, re-asserts at 2.5s, logs both attempts, and healOffscreenWindow sweeps any stragglers). Birth invisible, life on-screen at the bottom, reveal only on the user's click — the full contract.