app
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.
Apply the aligned hero: vitrine right edge matched to the BRIDGE pill and the chrome-strip capture residue trimmed, generated via hero-studio with John's go-ahead
John Lauer
·
22741db
·
1d ago
build_hero.py: trim 12px of capture residue off each side of the chrome titlebar strip (purple wallpaper sliver left, grey border sliver right) that John spotted stretched down the chrome band
John Lauer
·
6fabb52
·
1d ago
Whitelist the pup-hero-image dev-skill's PNG assets past the *.png ignore and push them; the prior push silently skipped exactly the files the skill warns about
John Lauer
·
06e121f
·
1d ago
New dev skill pup-hero-image: the full hero build recipe (canonical parameterized build script + fonts/logo/chrome/tile/badge assets), the Bridge-matched design constants, the hero-studio human-generate gate, and the traps; includes the vitrine-to-pill right-edge alignment John requested
John Lauer
·
d7ca13e
·
1d ago
Negative-result backoff on window-handle resolution: a shared-profile window that cannot be disambiguated was re-probed with PowerShell EnumWindows passes on every overlay, park, and flash touch, forever; three straight misses now put that session on a 5-minute resolution cooldown (any real handle landing clears it). Ends the hot loop that burned laptop CPU and blocked the event loop so often that ab's 1500ms health marker probe timed out against a live bridge, judged it unhealthy, and reap-looped it, the other half of the 557 flap
John Lauer
·
ba7e453
·
1d ago
EADDRINUSE self-heal for the 557 permanent-outage loop: when a replacement pup spawn finds its port held, it probes the holder's /health and, only if the holder identifies as a sibling pup bridge (by definition an orphan ab lost track of), kills that one pid and retries the bind with a 3-attempt cap; a non-pup holder is never touched and the process exits with a clear log. Turns the reaper-lost-my-pid outage from a manual taskkill into automatic recovery on the next verb
John Lauer
·
d7c05d1
·
1d ago
Close out wiki discussion 557 (startup hang after an ab cycle with orphaned Chrome windows): timeout-cap every hangable await in session recovery (CDP version probe 5s, puppeteer.connect 15s, browser.pages 10s, window.name evaluate 3s) so one wedged or orphaned Chrome window costs seconds instead of wedging the whole recovery pass, and sweep the remaining Adom Desktop and AD naming out of user-facing errors, hints, tooltips, dashboard copy, welcome and recorder pages to the canonical ab, Bridge, adom-bridge-cli names, leaving frozen code identifiers untouched
John Lauer
·
9b11632
·
1d ago
Guidance shim for the browser_* to pup_* clean break: pup re-claims the browser_ prefix and answers every old-verb call with a verb_renamed error naming the exact pup_* replacement (nothing executes, no aliasing), so broken callers self-migrate instead of following the misleading not-installed hint into a reinstall; nbrowser_* unaffected
John Lauer
·
36ebec2
·
1d ago
Fix the pup cold-spawn flap that read as 'pup is down': /status (ab's healthEndpoint) no longer triggers the ~8s native heavy-init and now answers a warming chip instantly if chrome is not loaded yet, so ab's spawn-ready probe never times out and reaps the bridge; heavy init + warmup + session recovery are deferred off the bind tick so the event loop serves health probes the instant the port binds; mark the bridge spawn persistent so ab's supervisor keeps it warm instead of reaping it to zero instances between calls; and give the hwnd-resolution PowerShell a unique per-call temp filename (unlinked after use) to end the EBUSY spin loop that hammered one shared file and burned CPU
John Lauer
·
74d6cb7
·
1d ago
Revert the 2.0.11 placement-first open-flow experiment: it could not place the window during load because the session is not registered in the sessions map until after navigation (line 8243), so the early park had no hwnd to bottom by, failed its z-confirm, retreated off-screen, and only added a wasted park pass; restore the known-good 2.0.10 open sequence while the proper fix (earlier session/hwnd registration) is designed
John Lauer
·
ee7ed09
·
2d ago
Placement-first: park the pup window on-screen at z-bottom right after the fast welcome load (before the real-URL nav and before the AUMID stamp), and hold the launch flash until that first park lands, so clicking the taskbar button always reveals a correctly placed window instead of an off-screen one; first-paint raise now corrected by the existing z-bottom re-asserts
John Lauer
·
810fec3
·
2d ago
Apply human-generated hero with the taskbar jump-list flyout in the vitrine (provenance-stamped)
John Lauer
·
676ec81
·
2d ago
Update page: pup-bridge
John Lauer
·
55558d1
·
2d ago
Publish 2.0.13
John Lauer
·
a8e521f
·
2d ago
Publish 2.0.12
John Lauer
·
bb2e13a
·
2d ago
Clean-break sweep: sync page.json to live (slug/title/version/hero/dep), browser_*->pup_* in triggers/pitch/prompts, set John Lauer as author, drop em-dashes from README
John Lauer
·
2c1d567
·
2d ago
Brief copyedit: remove em-dash, keep the real-browser-sandbox framing
John Lauer
·
23afe04
·
2d ago
Refresh brief: drop legacy 'Adom Desktop' for Bridge, lead with the real-browser-sandbox positioning
John Lauer
·
a25e87a
·
2d ago
Apply the human-generated, provenance-stamped Pup hero (matched to Bridge, BRIDGE pill, sandbox subtitle)
John Lauer
·
74f3664
·
2d ago
Publish 2.0.11
John Lauer
·
61b8598
·
2d ago
README intro: lead with why pup exists — a real browser but a fully-controllable sandbox, vs nb/nbe driving the user's real signed-in browser
John Lauer
·
fcd0e82
·
2d ago
Hero: readable solid BRIDGE pill + drop the vitrine to give clear margin below the pill
John Lauer
·
c1a3974
·
2d ago
Hero: match Bridge sibling — logo 11.8cqw, title 12cqw at y263, BRIDGE pill, sandbox subtitle
John Lauer
·
cf96e2c
·
2d ago
Hero: BRIDGE pill (pup is a bridge), Pup slid down to match Bridge's hero, sandbox subtitle
John Lauer
·
a0a9c99
·
2d ago
Hero subtitle: reposition around the sandbox value prop (a real browser sandbox you fully control)
John Lauer
·
fc3ee11
·
2d ago
Hero: Pup title to 11cqw (220px) and slid down for breathing room under the ADOM logo
John Lauer
·
4eb0782
·
2d ago
Overlay/HWND fix: resolve a window's OS handle by its unique (ai-thread: sid) title tag whenever it returns exactly one match, regardless of the titleTag setting. Fixes shared-profile windows (e.g. a 13-tab bridge-pages) that the geometry wiggle left ambiguous, so their taskbar overlay finally paints.
John Lauer
·
73f7c2d
·
2d ago
Update hero: larger Pup title + vitrine lowered so the top-right type pill no longer overlaps it
John Lauer
·
bd1e3af
·
2d ago
hero-v10: larger Pup title + vitrine cleared of the pill
John Lauer
·
cf71632
·
2d ago
Whitelist hero-v9 and hero-v10 png in gitignore
John Lauer
·
bb9a386
·
2d ago
Whitelist hero-v10.png (bigger title + vitrine cleared of the type pill)
John Lauer
·
4c93112
·
2d ago
Freeze the jump-list on the first commit to the real category appId (not a beat later), collapsing the settle rebuilds too. Completes option B: one taskbar commit per window, then frozen.
John Lauer
·
b78bc1b
·
2d ago
Freeze the jump-list too (option B): once a window's menu is committed to its frozen identity, never rebuild it on later view/active-tab changes. Completes the stamp-once-then-freeze so multi-tab windows produce ZERO taskbar rebuilds after settle.
John Lauer
·
0c3ded0
·
2d ago
Stamp-once-then-freeze taskbar identity (option B): after a per-session window is branded with its first real category, freeze the appId so later category changes (e.g. adding a web tab -> mixed) never recreate the taskbar button, jump-list, or overlay again. Zero multi-tab churn; tile may be slightly stale by design.
John Lauer
·
5e796d9
·
2d ago
Jump-list multi-tab churn: reset the debounce timer on every request so a multi-tab open (auth flip + tab-add) commits the menu ONCE after it settles, instead of rebuilding 2-3x.
John Lauer
·
70cd68b
·
2d ago
Publish 2.0.5
John Lauer
·
7df9aa7
·
2d ago
Publish 2.0.4
John Lauer
·
0155e2b
·
2d ago
Fix stale post-rename references in docs: old slug adom-desktop-puppeteer-bridge -> pup-bridge, CLI adom-desktop -> adom-bridge-cli, related bridge links to new slugs
John Lauer
·
12888c9
·
2d ago
Publish 2.0.3
John Lauer
·
7c45ed2
·
2d ago
Debounce jump-list settle churn on open: coalesce the settle-driven refreshes (bare appId then category, public then authed view) into one commit so a single open updates the right-click menu once instead of ~3x. Stamp-path header-branding stays synchronous.
John Lauer
·
348b770
·
2d ago
Publish 2.0.2
John Lauer
·
c104a0f
·
2d ago
Fix AUMID re-stamp churn: debounce the taskbar-identity stamp so a settling category (loading to web to wiki-signed-in) commits ONCE per open instead of recreating the taskbar button 2-3 times (John saw the AUMID applied 3x when opening a window). Idempotency gate unchanged, so stable windows stay a no-op.
John Lauer
·
e7eb5c6
·
2d ago
Publish 2.0.1
John Lauer
·
9629202
·
2d ago
Repoint updateManifestUrl + docs to the new adom/pup-bridge slug after the page rename, so installed pups keep auto-updating (old /api/ paths 404 post-rename). No verb/behavior change from 2.0.0.
John Lauer
·
b0b3552
·
2d ago
Rename adom-desktop-puppeteer-bridge -> pup-bridge
John Lauer
·
9f0d902
·
2d ago
Clean break v2.0.0: rename browser_* to pup_* across source + all skills/docs, rebrand Adom Desktop to Bridge, bump to 2.0.0
John Lauer
·
6d95dae
·
2d ago
Publish 2.0.0
John Lauer
·
00fbaa3
·
2d ago
Rename verbs browser_* to pup_* and rebrand Adom Desktop to Bridge in the pup skill + README (clean break, v2.0.0)
John Lauer
·
498a8cf
·
2d ago
Rename title to Pup - Puppeteer Bridge (2026-08 naming: Adom Desktop is now Bridge; bridges drop the prefix)
John Lauer
·
6ed3d66
·
2d ago
BREAKING clean break: renamed the entire verb family browser_* to pup_* with NO aliases. All 62 verbs move one-for-one (browser_open_window becomes pup_open_window, browser_screenshot becomes pup_screenshot, etc.); the old browser_* names are removed and now error by design so every caller gets migrated to pup_*. Also rebranded Adom Desktop to Bridge across the docs. Part of the adom/pup-bridge rename.
John Lauer
·
e5d8f87
·
2d ago