← Commit history

Dev skill: park after page settle — the paint-raise must happen off-screen; re-asserts alone leave a visible blip

John Lauer ·fd549f87a2 · ·parent 41e4060
1 file changed +9−6
dev-skills/pup-bridge-dev/SKILL.md+9−6
@@ -355,12 +355,15 @@ must clear it first.   (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.+  after the z-confirm passed. A later same-window navigate does NOT raise (tested), nor does the+  badge (tested). Re-asserts after the raise still left a VISIBLE blip (another thread's window+  popped over John's work between paint and re-assert). THE fix (v1.8.68): **park AFTER the page+  settles** — wait for the load event (capped 2.5s) while the window is still OFF-SCREEN, so the+  paint-raise is invisible; only then bottom → place → z-confirm. First visible frame = full-size+  at z-bottom. A late (3s) `force:false` re-assert plus the open_tab re-assert remain as+  belt-and-suspenders. 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