← Commit history

Publish 1.9.199

John Lauer ·e55040ebb6 ·3mo ago ·parent 34f0b59
3 files changed +37−2
SKILL.md+35
@@ -99,6 +99,41 @@ Chrome ever crashes. Read these signals correctly instead of assuming the worst:   just THROTTLED (see Power & rendering above) — focus it and it wakes. A window that is BUSY shows up   as `degraded`. A window that CRASHED gets auto-relaunched. None of these is "pup is dead." +## ⛔ HARD RULE: NEVER send NATIVE OS input without warning the user FIRST (John, 2026-07-29)++**Native OS input (`desktop_click`, `desktop_type`, `desktop_press_key`, `desktop_hover`) does NOT go+to a window. It goes to WHATEVER WINDOW HAS OS FOCUS AT THAT INSTANT.** If the user has alt-tabbed+away — and this user runs many AI threads at once and alt-tabs away from a foregrounded window almost+immediately, every time — your keystrokes land in THEIR document, THEIR terminal, THEIR editor.++This happened: an agent foregrounded a pup window, typed a username with `desktop_type` without ever+telling the user, the user had already alt-tabbed back to their own work, and the text went into their+window. The agent then compounded it by concluding "Windows failed to foreground the window" — blaming+the OS for what was really "the human took their focus back, because nobody asked them not to."++**NEVER do that again. Before ANY native input, in this order:**++1. **`notify_user` TOAST** — tell them what you are about to do and that you need the window.+2. **`desktop_caption`** — on-screen, so it is visible while they look at the window.+3. **Say explicitly: "please don't type or click until I say done."** They cannot know otherwise.+4. **WAIT for them to be ready** — `waitForUserReady` (poll `osGetForegroundWindow()` vs the session+   hwnd until it is stable). NEVER dispatch while the foreground is not your window.+5. **Re-verify foreground IMMEDIATELY before EACH native event**, not once at the start. Focus can+   change between two events, and a half-typed password in the wrong window is a real harm.+6. **Caption each step** as you go, and caption when you are DONE so they know they can resume.++**`browser_assisted_click` already implements all six.** Use it instead of hand-rolling+raise-then-click. If you need native typing, follow the same protocol around it.++**Corollaries that cost this project real time:**+- CDP input (`browser_click`, `browser_type`) needs NO foreground and disturbs nobody — **always+  prefer it**. Reach for native input ONLY when the target genuinely cannot be driven any other way+  (a cross-origin FedCM chooser, native OS chrome, a site that rejects synthetic events).+- Native input returning `ok:true` means "the event was dispatched to the OS", **NOT** "it reached+  your window". Never treat that ok as proof. Verify the effect in the page.+- If native input seems not to land, the FIRST hypothesis is "it went to another window because+  focus moved", **never** "the OS failed to foreground my window".+ ## Standing rule: TOAST THE USER before foregrounding (John, repeatedly)  NEVER put a window on the user's screen silently. Any time you FOREGROUND a pup window — a demo, a
package.json+1−1
@@ -1,6 +1,6 @@ {   "slug": "adom-desktop-puppeteer-bridge",-  "version": "1.9.198",+  "version": "1.9.199",   "type": "app",   "description": "The pup SKILL PACK \u2014 the AI skills that teach a cloud/container AI how to drive the Adom Desktop Puppeteer (pup) bridge (browser_* verbs): the everyday `pup` skill plus focused sub-skills for windows/sessions/tabs, screenshots+recording, browsers+Chrome install, and driving the Adom wiki. Installs into ~/.claude/skills + ~/.codex/skills. DOCS ONLY \u2014 this is NOT the bridge runtime. The bridge itself (the Node program that drives the browser) runs on the DESKTOP: Adom Desktop bundles it and auto-installs/updates it, and it's published separately on the Releases tab as adom-bridge-puppeteer-v<ver>.zip. So the pkg version (skills, bumps often) and the Release version (runtime, bumps rarely) differ on purpose. TL;DR: pkg install = the skills for your AI; the bridge = the Release zip, which Adom Desktop manages for you.",   "keywords": [
page.json+1−1
@@ -4,7 +4,7 @@   "slug": "adom-desktop-puppeteer-bridge",   "title": "Adom Desktop - Puppeteer Bridge",   "brief": "The Adom Desktop Puppeteer (pup) bridge — drive a real headful browser on the user's desktop from the cloud: open/screenshot/eval/record. Cold-start drives the browser ALREADY on the machine (installed Chrome, else Microsoft Edge — every Windows PC ships with Edge) with a fresh isolated profile, so the common case needs NO download; Chrome for Testing is fetched only as a last resort. Two artifacts: the Releases zip is the bridge runtime (also bundled in Adom Desktop); the pkg installs the container-side Claude skills.",-  "version": "1.9.198",+  "version": "1.9.199",   "tags": [     "skills",     "pup",