← All Pull Requests

Document one window and explicit tab targeting for overlapping work #1

Closed opened by John Lauer

Document one owned Pup window per AI thread with multiple tabs, explicit tab targeting for overlapping work, and serialization for shared state. Tab selection must preserve the background window.

Verified on AdomLapper: one owned window, two tabs; pup_switch_tab selected tab-1 while foreground remained false. Concurrent pup_eval calls explicitly targeting tab-1 and tab-2 returned the correct distinct page titles/URLs and left tab-1 selected. No missing tab-switch capability was observed. Local skill updated; package distribution remains pending review.

Diff Skip to comments (1)

--- a/SKILL.md+++ b/SKILL.md@@ -1,670 +1,679 @@⋯ 90 unchanged lines ⋯   screen: `pup_raise_os_window {"foregroundReason":"..."}` (gated). Every open/navigate response   carries `_next` repeating these — trust the hints over hand-rolling desktop verbs. +## One owned window, explicit tabs for overlapping work++Use one Pup window per AI thread, with multiple tabs for different items. Start with `pup_my_windows` and `pup_list_tabs`; reuse matching tabs and call `pup_open_tab` for a new item. Return with `pup_switch_tab`: selecting a tab inside Chrome must keep the OS window in the background. It does not authorize `pup_raise_os_window`, a second window, or covering the user's editor.++For overlapping operations, pass the exact window/session and `tabId` wherever supported. Independent reads and downloads can run on separate tabs without racing over the active tab. Serialize navigation or mutations of the same tab and any dependent work. Tabs share profile cookies and server-side account state, so concurrent login/account changes are not isolated transactions.++If required switching or explicit tab targeting is absent or broken, duplicate-check and report a minimal reproduction on `adom/pup-bridge`, including versions, inputs, expected/actual tabs and foreground state. Continue through supported background paths instead of multiplying windows. Separate profile/isolation requirements still need their own concrete justification; do not interfere with other threads' windows.+ ## THE CORE GOAL (John's words, so everyone truly understands it)  ## "Open my web app in the browser" — the #1 use case, and its one trap⋯ 571 unchanged lines ⋯ when ab's recorder is missing, refuses, or the box has no usable GPU. Recording ONE pup window's page content is a different thing and stays pup's (`pup_record_start`). Full detail in `pup-screenshots-recording`.+

Comments

John Lauer ·

Ported by hand into the current root skill (section 'One owned window, explicit tabs for overlapping work', 2026-09-19) with your AdomLapper verification kept verbatim. Not merged as a diff: the PR replaces the whole 2026-09-09 SKILL.md, which predates the naming rule (issue #114), the extension-lane default and the isolated-profile lane (2.0.659); merging it would have regressed all three. One addition to your text: isolation now lives on the extension lane, so the 'separate profile' sentence points at isolated:true.

Log in to comment.