app
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.
← Commit history
Dev skill: raise-interception hole closed in AD 1.9.124 (issue #163 verified + closed); forensics note retained
1 file changed
+9−6
dev-skills/pup-bridge-dev/SKILL.md+9−6@@ -459,12 +459,15 @@ not the work. Raise-time: refused (`foreground_reason_required`). Granted foregr `lastForeground {ts,verb,reason}` in status. Mirrors abe's `userRequestedForeground`+`foregroundReason` (also accepted as an arg alias) so the contract is identical across Adom's browser surfaces. -**⚠ KNOWN HOLE (adom/adom-desktop issue #163):** AD-core INTERCEPTS `browser_raise_os_window` /-`browser_focus_window` natively (response shape `{raised, hwnd, resolvedBy}`) and never forwards them-to pup — so pup's raise gate is bypassed until AD forwards the verbs or applies the same gate. The-open-time gate is NOT affected (open always reaches pup). This is exactly how a thread foregrounded a-window with no reason and no audit trail on 2026-07-15 (forensics needed the in-page focus-latch-timestamp `window.__pupFocusTs` — which remains the ground-truth "when did this window gain focus").+**HOLE CLOSED (AD 1.9.124, issue #163):** AD-core used to INTERCEPT `browser_raise_os_window` /+`browser_focus_window` natively (a pre-extraction fossil, flagged ~July 10 and finally deleted+2026-07-15) — which bypassed pup's raise gate entirely and let a thread foreground a window with no+reason and no audit trail. As of AD 1.9.124 those verbs relay to pup like every other `browser_*`+verb, so the gate + audit trail hold everywhere (verified: reasonless raise → pup's+foreground_reason_required refusal; granted raise → `[foreground] GRANTED` log + lastForeground in+status). If a reasonless raise EVER succeeds again, suspect a reintroduced AD interceptor first —+the in-page focus latch `window.__pupFocusTs` remains the ground-truth "when did this window gain+focus" for forensics. Desktops on AD ≤1.9.123 still have the ungated native path until they update. ## The taskbar flash — pulse vs. the persistent tint (clearing it programmatically)