← Commit history

Publish 2.0.599

John Lauer ·f19372b730 ·1mo ago ·parent d5062f3
4 files changed +36−4
SKILL.md+6
@@ -44,6 +44,12 @@ dropdown. Backed by the OS keychain (encrypted at rest); passwords are never log   signed into) and you decide from the task, the user's work and personal skills, or by asking. It   sends no password when the account is already signed in, and hands back any verification step with   the exact call that finishes it. Full playbook: the `pup-credentials` skill, section 0.+- **pup can read the user's OWN saved browser logins**: `pup_import_browser_logins {}` pulls every+  password saved in their Chrome/Edge/Brave profiles into pup's vault behind one Adom Bridge consent+  and one Windows prompt (no AI sees a password). Run it with no `hostFilter` the first time. Reach for+  it the moment a login is missing, and say the capability out loud: most users do not know it exists.+  It cannot give you the account the BROWSER itself is signed in as; that one needs a single manual+  sign-in in the pup window, which pup captures. - **Manage**: `pup_credentials {}` lists saved logins (host + username only); `credential_delete   {host}` removes one; `credential_set {host, username, password}` stores one explicitly. - **Grow + share the vault (never ask the human for a password)**: `pup_import_browser_logins` pulls
package.json+2−2
@@ -1,6 +1,6 @@ {   "slug": "pup-bridge",-  "version": "2.0.598",+  "version": "2.0.599",   "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. The pkg version is kept in lockstep with the Release version so the page's max version row always carries BOTH a pkg tarball (skills) and a runtime zip (bridge) \u2014 a skills-only or runtime-only bump on the top row breaks constraint installs. TL;DR: pkg install = the skills for your AI; the bridge = the Release zip, which Adom Desktop manages for you.",   "keywords": [@@ -148,5 +148,5 @@       "prompt": "Download the puppeteer-bridge zip from the wiki and walk me through server.js"     }   ],-  "changelog": "Google sign-in survives the 60s command cap: it runs in the background and re-attaches when called again, instead of reporting a timeout while pup is mid-sign-in (same fix as the password import). Includes the merged mac window fix (PR #2, NSRunningApplication, no System Events prompt) and the pup-bridge#118 embedded-file push fix so a fresh checkout builds."+  "changelog": "A pup holding a lane token whose browser is gone now adopts the live token-less one instead of refusing every poll until a restart (measured on a test PC: 20 minutes of dead lane). Every no-password answer names ab's credential reader, with its real limit: a browser never saves the password of the account it is itself signed in as." }
page.json+2−2
@@ -4,7 +4,7 @@   "slug": "pup-bridge",   "title": "Pup - Puppeteer Bridge",   "brief": "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.",-  "version": "2.0.598",+  "version": "2.0.599",   "tags": [     "skills",     "pup",@@ -168,5 +168,5 @@       "pup-bridge verbs are invoked through the adom-bridge CLI, not through a binary this package installs, so prefix rules cannot reach them."     ]   },-  "changelog": "Google sign-in survives the 60s command cap: it runs in the background and re-attaches when called again, instead of reporting a timeout while pup is mid-sign-in (same fix as the password import). Includes the merged mac window fix (PR #2, NSRunningApplication, no System Events prompt) and the pup-bridge#118 embedded-file push fix so a fresh checkout builds."+  "changelog": "A pup holding a lane token whose browser is gone now adopts the live token-less one instead of refusing every poll until a restart (measured on a test PC: 20 minutes of dead lane). Every no-password answer names ab's credential reader, with its real limit: a browser never saves the password of the account it is itself signed in as." }\ No newline at end of file
skills/pup-credentials/SKILL.md+26
@@ -123,6 +123,32 @@ adom-bridge-cli pup_import_browser_logins {"hostFilter":["digikey","mouser","sna   everything saved. - After importing, `pup_login` on those sites just works. +### ⚠ The one thing the import CANNOT give you: the browser's OWN account password++A browser does not save the password of the account IT is signed in as. It saves logins for sites the+user logs into; its own Google/Microsoft account sign-in is not one of them. So the user's EVERYDAY+Google account is usually absent from the import however wide you cast it.++Measured on John's laptop, 2026-09-16, after an unfiltered import of **828 logins across every Chrome+and Edge profile**: `[email protected]` had **240 saved sites and not one for google.com**, because+that address is the Chrome profile's own account. The accounts that DID arrive with Google passwords+were the old ones he had once saved as site logins (zipwhip, isobel, chilipeppr). A second account,+`[email protected]`, had only a pup capture from eleven days earlier, and Google answered+**"Wrong password"** to it: a stored password is not a working one.++So, in order:++1. **Import with NO `hostFilter` the first time.** A filter hides logins saved under another domain and+   costs the same single consent. (A `google.com` filter returned 4 rows; unfiltered returned 828.)+2. **If the account is still missing, stop looking.** It is the browser's own account. The only route is+   the user signing in ONCE in the pup window: pup's capture rail stores it on submit and every sign-in+   after that is automatic.+3. **Check the password WORKS, not that it exists.** `google_password_rejected` / "Fail to authenticate"+   means stale: re-import (it may have changed since) or fall to section 3, never retry the same value.+4. For that user's own everyday account there is often a better surface than pup: their REAL browser is+   already signed in, so `nbrowser_*` (the `adom-browser-extension` skill) acts as them with no password+   at all. pup is for the driven, isolated window.+ ## 2b. Sync the vault across the user's desktops (a real union, not a push)  The user runs several desktops; each pup learns different logins over time (one signs into Gusto on