app
Pup - the AI's own browser
Public Made by Adomby adom
pup gives your AI a real browser on your desktop that it drives completely, in the background, signed in as you: windows that never jump in front of your work, one shared profile that learns your logins, and every window labeled on the taskbar with its AI thread's name.
← Commit history
Deep README sections for the window-type icon system, wiki dual view and taskbar toggle, one-session-one-window; pup skill gains the window-identity section
2 files changed
+80
README.md+55@@ -50,6 +50,61 @@ adom-desktop browser_readiness '{}' # → {ready:true, browserKind:"chrome" Full everyday usage (tabs, recording, window ownership, cold-start playbook) is in the `pup` skill (`SKILL.md`). +## Window-type taskbar icons: read a pup window at a glance++++Every pup window's **taskbar icon states what kind of thing it is showing**. All five share the same+drawing (the teal Adom tile carrying a solid browser window) and differ only in the window's+*content*: a monochrome glyph on the 24x24 Adom house grid, per the brand icon law (single color,+no gradients, no emoji):++| Icon | Window content | Means |+|---|---|---|+|  | open book | **Adom wiki, public view**: logged out, what the world sees |+|  | book + person | **Adom wiki, signed in**: the user's logged-in view (private source, drafts, owner cards) |+|  | the Adom mark | **An Adom app**: localhost or a cloud-slug proxy URL |+|  | globe | **The web**: any other site (ti.com, digikey, ...) |+|  | two panes | **Mixed**: the window's tabs span more than one category |++- The category is derived from **all tabs** in the window; it updates **live** (add a digikey tab+ to a wiki window and the icon flips to *mixed* within about a second).+- The **overlay badge** riding the icon's corner is separate and sacred: it is the **active tab's+ own favicon**, so you always see which site you are looking at. In grouped-taskbar mode it shows+ window/tab counters instead.+- The **tab title** carries the same login signal in text: a solid dot (`● Logged in`) or hollow dot+ (`○ Public`) leads the title of every Adom wiki tab.+- Under the hood, each window's identity (icon, name, Alt-Tab entry) rides a per-session Windows+ AppUserModelID that **carries the category**: the only way Win11 allows a taskbar tile to change+ live. Grouped mode instead keeps one stable, pinnable `Adom.Pup` identity.++## The Adom wiki: logged-in vs public view, and the taskbar toggle++pup can show any Adom wiki page from **two viewpoints**, and both the AI and the user can switch:++- **Public (default)**: a fresh logged-out profile: exactly what the world sees. Use it to verify+ what a publish actually exposed.+- **Signed in**: `browser_open_window {..., wikiView:"authed"}` routes to a reserved persistent+ profile whose cookie jar holds the user's ~30-day SSO session. One login serves **every** AI+ thread on the machine. First use returns `wikiLoginNeeded:true`; the user signs in once, in that+ window.++**The user can flip a wiki window themselves**: right-click its taskbar button: the jump list+carries **"Adom wiki: switch to logged-in view"** (or "...switch to public view"). Clicking it+relaunches that same window under the other cookie jar, brings it to the front, and shows an+on-screen caption while it works ("Switching to the logged-in view of the Adom wiki", then+"Adom wiki: now the LOGGED-IN view (Their Name)"). The AI-side equivalent is the+`browser_wiki_set_view` verb, which exists for that jump-list click: AI threads should pass+`wikiView` on open instead.++## One session, one OS window++Every pup session gets its **own OS window**, even when sessions share a browser profile (as all+signed-in wiki windows share the authed cookie jar). This is what makes per-window identity+possible: a window's title belongs to its active tab, so windows that share sessions as tabs+cannot be found, branded, flashed, or given jump lists individually. Sharing a profile shares the+cookies; it never merges windows.+ ## Recording pup can record what it drives — a **single tab/window** or the **whole desktop** — straight from the
SKILL.md+25@@ -91,6 +91,31 @@ under one "Adom Pup" button whose badge shows windows + total tabs. "Split them icons" → `{"taskbarGrouping":"split"}`. The setting persists across updates. Change it ONLY when the user asks — it's their taskbar. Details: `pup-windows-sessions-tabs`. +## Window-type taskbar icons (split mode) — what the user sees per window++In split mode every pup window's taskbar icon states its CONTENT KIND. All five share the teal+Adom tile with a solid browser-window drawing; the glyph inside the window is the category:++| Glyph inside the window | Category |+|---|---|+| open book | Adom wiki, PUBLIC view (logged out) |+| book + person | Adom wiki, SIGNED IN (the user's logged-in view) |+| the Adom mark | an Adom APP (localhost / cloud-slug proxy URL) |+| globe | the web (any other site) |+| two panes | MIXED (tabs span more than one category) |++The category derives from ALL tabs and updates live (about a second). The corner overlay stays the+ACTIVE TAB'S FAVICON (or window/tab counters in grouped mode) — never repurpose it. Adom wiki tab+titles also lead with a text glyph: solid dot = signed in, hollow dot = public. You never manage+any of this; pup does it automatically. It is worth KNOWING because the user can see login state+and window kind at a glance — do not open a second window to "check" what a taskbar icon already+answers, and when the user says "the window with the book/globe icon" you know which one they mean.++A WIKI window's taskbar right-click jump list also carries a view toggle ("Adom wiki: switch to+logged-in view" / "...to public view") — a USER affordance that relaunches that window under the+other cookie jar with on-screen captions. Its callback verb `browser_wiki_set_view` is not for AI+threads; pass `wikiView:"authed"|"public"` on browser_open_window instead. Details: `pup-adom-wiki`.+ ## Key rules (the essentials — details in the sub-skills) - **Always pass `sessionId`** on session-scoped verbs — `'{}'` targets the *active* session, which may not