From c49dc15fa5c33d5b1d210b0185677ce29640e2d5 Mon Sep 17 00:00:00 2001 From: Tianren Dong Date: Sat, 26 Sep 2026 16:37:25 -0400 Subject: Absorb fork fixes and features; release 0.15.53 Adapted from community forks (ardhiqii, kkunkunya, nihar-oracle, steimerbyte): - Abort stalled /next long polls after 45s; time out, retry, and single-post results. - Fall back to CDP Runtime.evaluate when chrome.scripting is refused (about:blank automation tabs). - Load pi-chrome in same-process subagent sessions as a bridge client; client chrome_launch reports owner status. - Add chrome_cdp (validated raw CDP passthrough, background-guarded, payload summarization) and chrome_cdp_targets. - chrome_type reports before/after values, insertedAt, splice/unchanged warnings; add replace=true. - includeSnapshot waits for navigations started by the action; tab.new reports the settled tab. - CDP timeouts surface as timeouts and are not re-sent after the cleanup detach. - Activate/deactivate chrome_find and chrome_inspect with the rest of the chrome_* tools. - New unit suites: bridge-resilience, cdp-passthrough, type-evidence. --- docs/FAQ.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'docs/FAQ.md') diff --git a/docs/FAQ.md b/docs/FAQ.md index a450a93..d717694 100644 --- a/docs/FAQ.md +++ b/docs/FAQ.md @@ -32,6 +32,8 @@ Chrome control is also locked per Pi session until you run `/chrome authorize`; Yes. The first session opens the local bridge; later sessions detect it and pipe their commands through the same bridge. Each Pi session must be authorized with `/chrome authorize` before its chrome_* tools work. Each session also owns its **own** dedicated automation window (ownership is keyed by session id inside the one extension), so concurrent sessions never navigate into or close each other's tabs. +Subagent sessions that run inside an authorized Pi process (for example with pi-subagents) also get the chrome_* tools. They share the parent's `/chrome authorize` grant and bridge, but each subagent gets its own automation tab and tab group, which are cleaned up when the subagent session ends. + ## Does pi-chrome navigate my current tab? No. The first chrome_* action that has no explicit target opens a **dedicated automation window** that pi-chrome owns (falling back to a dedicated tab only if a separate window can't be created), and reuses it for the rest of the session. Your existing tabs and windows are never reused or overwritten. Pass `targetId`/`urlIncludes`/`titleIncludes` to deliberately act on a tab you already have open. @@ -50,7 +52,7 @@ pi-chrome ships as an unpacked extension so the source and broad browser permiss ## What's the install footprint? -- Pi side: one extension that registers 19 tools and a few slash commands. +- Pi side: one extension that registers 23 tools and a few slash commands. - Chrome side: one unpacked extension, ~2000 LOC of plain JavaScript, no dependencies. ## Can I script it without Pi? -- cgit v1.2.3