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: placement dead ends — CDP maximize raises, AD set_window_bounds raises, first-nav re-raise after park; z-order via list_windows is the only honest verify
1 file changed
+16
dev-skills/pup-bridge-dev/SKILL.md+16@@ -345,6 +345,22 @@ Chrome in pup. must clear it first. **Dead ends — DO NOT reintroduce these (each was tried and is worse):**+- **CDP `windowState:'maximized'` for background placement (1.8.55-1.8.64)** → Chromium implements+ it as ShowWindow(SW_MAXIMIZE), which RAISES the window to the top of the z-order. No focus steal,+ so every focus-based check passed while five "backgrounded" windows sat stacked on top of John's+ editor. The earlier "small-then-grow" sighting was the same raise making the staging visible.+- **AD `desktop_set_window_bounds` for background placement (1.8.65)** → ALSO raises the window+ (despite `restore:false`), AND `desktop_list_monitors` reports logical px while set_window_bounds+ takes physical px → on-top AND undersized. Geometry for a parked window = CDP plain bounds+ (left/top/width/height, normal state) sized from the page's own `screen.availWidth/Height`, ONLY.+- **Trusting that a confirmed park stays parked** → the open's FIRST cross-origin nav (welcome+ file:// → https) swaps renderer processes and re-shows the window at first paint — RAISING it+ after the z-confirm passed (heavy sites paint late; the goto runs concurrently with the park).+ A later same-window navigate does NOT raise (tested), nor does the badge (tested). The fix is+ event-driven re-asserts: after the open's goto, at the page 'load' event, and after open_tab —+ all `force:false` so a user-held window is never yanked. And the ONLY honest verify is the+ Z-ORDER via `desktop_list_windows` (pup window below at least one non-pup window); if z cannot+ be confirmed, the window goes BACK OFF-SCREEN — never leave a window that might be covering. - **`--start-maximized` + send-to-back after connect** → the window is foreground/maximized for 1–3s before you lower it = the visible pop. This is the naive version; off-screen launch replaces it. - **`SetForegroundWindow(usersWindow)` alone** → silently no-ops (foreground lock). You MUST use the