Skip to content

Folder: the browser section explains how a page reaches the Operator, and the agent chooses the way (F38 addendum, base-instructions-44) - #353

Merged
immakermatty merged 2 commits into
mainfrom
agent/DEV-6646-browser-manual-explain
Oct 12, 2026
Merged

immakermatty merged 2 commits into
mainfrom
agent/DEV-6646-browser-manual-explain

Conversation

@immakermatty

@immakermatty immakermatty commented Oct 12, 2026 •

Copy link
Copy Markdown
Contributor

Status: ready for review

Why

The Organization Admin tested web T3 Code. Their agent found a page but did not show it in the right panel. They concluded two things:

  • Agents should show the pages they work with beside the chat, even without an explicit ask. The person can close them.
  • The Folder should not dictate one way. A page reaches a person in several ways, and every client treats each way differently. The Folder should explain how it all works, so the agent picks the best way and the person never gets lost.

The rules we had missed real combinations. For example, the Operator opens a plain address in ChatGPT Desktop's own browser while the agent is to work in that page. That page runs on the Operator's computer, outside the Environment.

What changes

The Folder manual's browser section (manual/this-machine.md, Environments with the browser view) gets a new part, How the Operator sees a page / Jak Operátor stránku uvidí:

  • A plain link: opens in the Operator's own browser, with their sign-ins and network. Good for a public page they only need to read or look at.
  • A link to a tab of the Environment (https://browser.…/t/<id>): the same tab, sign-ins and network as the agent's. Both work in it at once. Good when the page needs the Environment, when the agent works in it, or when the Operator is to finish something there.
  • Web T3 Code: the thread's window appears in the panel's strip by itself. The panel opens on it by itself only while the thread is in view on a wide screen; otherwise the tab waits in the strip. A tab link opens as a panel tab; a plain link opens a tab of the person's browser. For now, the desktop app's panel is the computer's browser.
  • ChatGPT Desktop: its browser runs on the Operator's computer. A plain address the Operator opens there runs outside the Environment. When the agent is to work in that page, or the page needs the Environment, it opens the page in a new tab of the Environment browser (the "A new tab" point) and sends its link.
  • Your window now says that --url applies only to a new window: it never moves the window the session already has.
  • The Launchpad: New tab (Overview) lists every tab of the Environment. A tab link also works in an ordinary tab or on a phone.
  • One sentence of preference: people mostly like the pages an agent works with beside the chat, even without asking, and close what they do not want.

The rest becomes Working in the browser. "The Operator's view" is folded into the new part. "A new tab" explains instead of commanding, and keeps the same facts and commands. "The open browser" now names the ChatGPT Desktop case.

The Czech text is written in the Organization Admin's tone of voice: direct, practical, explaining rather than ordering.

Decision: F38 gets an addendum of 2026-10-12. The template revision moves to base-instructions-44 (digest pinned).

What stays

  • Every boundary stays:
    • browser work happens in the Environment's browser;
    • only the Operator signs in;
    • new pages open in new tabs;
    • lazurio browser done, never tab close;
    • personal and Organization browsers stay apart;
    • a work Environment's view is never loaded here.
  • The commands are unchanged. The tests that pin preview_open, reuseExistingTab: false, lazurio browser link --url, lazurio browser window --session, the "When done" line and the work-Environment line pass unchanged.

Verification

  • New test the Folder explains how a page reaches the Operator in each client and leaves the way to the agent (cs and en). It also pins the two corrections from Pablo's review: the ChatGPT Desktop point never sends the agent to lazurio browser window, and the T3 point says the tab waits in the strip. The window test pins that --url never moves an open window.
  • bun test tests/folder-*.test.ts tests/environment-browser*.test.ts tests/launchpad-*.test.ts: 619 pass, 0 fail.
  • Snapshot updates (folder-manual, folder-render) change only the revision marker base-instructions-43 → 44.
  • bunx biome check --error-on-warnings ., bunx tsc --noEmit, bun run check:public (PASS).

Rollout

The change ships in the next Platform release. Folders then refresh to base-instructions-44, and the Launchpad pill says "Folder refresh needed". No runtime change.

#328 (formal address, DEV-6658) also moves the template to base-instructions-44 and touches src/folder/manual.ts elsewhere. Whichever of the two merges second rebases, takes base-instructions-45 and re-pins the digest and the snapshots.

Related

The new part in Czech, as rendered

Jak Operátor stránku uvidí

Stránku můžeš Operátorovi ukázat několika cestami. Která je nejlepší, záleží na stránce i na tom, kde Operátor zrovna je. Cíl je, aby stránku viděl co nejjednodušeji a aby to fungovalo stejně v T3 Code, v ChatGPT Desktopu i v Launchpadu, ať se v tom neztrácí. Tady je, jak jednotlivé cesty fungují; vyber tu, která mu dává největší smysl.

  • Obyčejný odkaz (adresa stránky) se otevře v Operátorově vlastním prohlížeči na jeho počítači, s jeho přihlášeními a jeho sítí. Hodí se na veřejnou stránku, kterou si stačí přečíst nebo prohlédnout, třeba článek, dokumentaci nebo obrázek.
  • Odkaz na záložku Environmentu (https://browser.…/t/<id>) ukáže přesně tu záložku prohlížeče Environmentu, s toutéž stránkou, přihlášeními a sítí, jaké máš ty. Pracujete v ní oba současně a ovládání se nepředává. Okno, které stránka otevře jako pop-up (třeba přihlášení přes Google), Operátor uvidí ve stejné záložce a novou záložku, kterou stránka otevře, mu pohled nabídne. Hodí se, když stránka potřebuje Environment (jeho přihlášení, síť Organizace nebo localhost tohoto Environmentu), když v ní pracuješ a Operátor má vidět, co děláš, nebo když v ní má něco dokončit, třeba formulář nebo přihlášení. Holou adresu https://browser.…/ neposílej, ta vždy založí novou prázdnou záložku.
  • Webové T3 Code tohoto Environmentu má prohlížeč Environmentu v pravém panelu a jeho nástroje náhledu (preview_*) ovládají právě ten: každá jejich záložka je okno prohlížeče Environmentu. Okno tvého vlákna se v liště panelu objeví samo. Když má Operátor vlákno otevřené na široké obrazovce, panel se na tvém okně otevře sám, jakmile v prohlížeči začneš pracovat (lazurio browser window, preview_open). Když do vlákna přijde až potom, nebo má úzkou obrazovku, kde panel zakrývá chat, panel se sám neotevře a záložka na něj počká v liště panelu. Klik na odkaz na záložku Environmentu ve vlákně ji otevře jako další záložku panelu, klik na obyčejný odkaz otevře nový tab Operátorova prohlížeče. Desktopová aplikace T3 Code má zatím v pravém panelu prohlížeč počítače, na kterém běží: prohlížeč Environmentu v ní Operátor uvidí přes odkaz na záložku Environmentu.
  • ChatGPT Desktop (dřív Codex Desktop), ze kterého sem pracuješ přes SSH, má vestavěný prohlížeč na Operátorově počítači, ne tady. Odkaz na záložku Environmentu v něm ukáže prohlížeč Environmentu, obyčejný odkaz načte stránku na Operátorově počítači. Když si tam Operátor sám otevře záložku s obyčejnou adresou, stránka běží mimo Environment: nevidíš ji a nemá přihlášení ani síť Environmentu. Máš-li v ní pracovat, nebo stránka Environment potřebuje, otevři ji v nové záložce prohlížeče Environmentu (bod Nová záložka níž) a pošli mu odkaz na ni, ať ji v ChatGPT Desktopu otevře místo své.
  • Launchpad ukazuje v Nové kartě (Přehled) všechny záložky Environmentu, tu tvoji taky, a Operátor si ji odtud vezme do své lišty. Odkaz na záložku Environmentu otevře i v běžném tabu nebo na telefonu, všude, kde se do tohoto Environmentu přihlásí.

Lidi stránky, se kterými pracuješ nebo které jim ukazuješ, většinou rádi vidí rovnou vedle chatu, i když o to výslovně nepožádají. Když je nechtějí, zavřou si je.

🤖 Generated with Claude Code

… and the agent chooses the way (F38 addendum, base-instructions-44)

A page reaches the Operator as a plain link (their own browser, on their computer), as a
link to a tab of the Environment (the Environment browser, with its sign-ins and network),
or in web T3 Code's right panel, and every client does something else with each. Rules for
which way to take missed combinations, such as a plain address the Operator opens in
ChatGPT Desktop's own browser while the agent is to work in that page. The section now
explains the ways client by client (web T3 Code, its desktop app, ChatGPT Desktop, the
Launchpad), says that people mostly like the pages an agent works with beside the chat,
and leaves the choice to the agent. The boundaries stay: the Environment's browser for
browser work, sign-ins only by the Operator, new pages in new tabs, a window let go of.

Template revision base-instructions-44: Folders refresh to it after the release.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

@agentrozjedemeai agentrozjedemeai left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Changes requested on exact head 4b1e313. The new explanation is directionally good and the boundaries below the new section remain, but two concrete client-behavior claims can mislead an agent:

  1. src/folder/manual.ts:1980-1981 (ChatGPT Desktop): lazurio browser window --url <address> does NOT navigate an already bound window. runBrowserCommand passes the URL to ensureThreadWindow, which immediately returns the existing target at src/browser/window.ts:194-201; the URL is used only by Target.createTarget on first creation (:205-209). In the normal case of an agent with an open thread window, this instruction sends the Operator a link to the old page, not to the address they opened. Explain the new-tab case using a fresh --session <session>-2 --url ... (or a documented, safe navigation of the agent's own tab when continuing the same work) and test the already-open-window path.

  2. src/folder/manual.ts:1976-1977 and docs/decisions.md:5748: web T3 does not always open the panel on the agent's window as soon as browser work starts. The current T3 Code freshReveals treats the first snapshot after a thread comes into view as baseline (no reveal), and receiveSnapshot opens proactively only for a later fresh reveal while inlinePanel is true. Thus, if the agent opened the page before the Operator entered that thread, the panel stays closed; on current Lazurio/t3code main, opening it can even show Nová karta rather than the agent's page. The pending Lazurio/t3code#57 fixes selection on opening, not the closed-panel auto-open case (its new test explicitly expects isOpen: false). Scope the explanation to an inline panel and a new reveal while the thread is in view, describe the manual opening/strip fallback for a pre-existing tab, and align the F38 addendum with this actual behavior. The narrow-screen exception is correctly called out.

Local isolated checkout: bun test --max-concurrency 1 tests/environment-browser.test.ts tests/folder-template-revision.test.ts passed (27/27); git diff --check passed. The pinned digest and revision-only snapshot change check out. Those tests do not cover the two cases above.

…nd --url never moves a window (Pablo's review of #353)

Two claims of the new browser section did not match the clients:
- `lazurio browser window --url` keeps a window the session already has and ignores the
  address, so the ChatGPT Desktop point now sends the agent to the new-tab point (a new tab
  of the Environment browser, or another window of its own), and "Your window" says that
  `--url` applies only to a new window. The window test pins that an address never moves
  the open window.
- Web T3 Code opens the panel by itself only for a new reveal while the thread is in view
  on a wide screen; a thread the Operator comes to later, or a narrow screen, keeps the
  agent's tab waiting in the panel's strip. The F38 addendum says the same.

base-instructions-44 is not released yet, so its digest is pinned again under the same
revision.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@immakermatty

Copy link
Copy Markdown
Contributor Author

Both findings are real and fixed in 01a489b:

  1. --url and an open window. The ChatGPT Desktop point no longer names lazurio browser window --url. It sends the agent to the "A new tab" point, which covers each case:

    • lazurio browser link --url for a tab nobody holds;
    • another window of its own (--session <session>-2 --url …) when the agent works in the page too;
    • its own tab only to continue the same work.

    "Your window" now says that --url applies only to a new window. ensureThreadWindow's reuse test pins that an address never moves the open window (no CDP call).

  2. Web T3's automatic opening. The T3 point now says the window appears in the panel's strip by itself. The panel opens on it by itself only while the thread is in view on a wide screen. A thread the Operator comes to later, or a narrow screen, keeps the tab waiting in the strip. The F38 addendum says the same. That wording is true before and after fix(web): the right panel opens on the thread's tab, not on Nová karta beside it t3code#57, which only decides what the panel shows when opened.

The new test asserts both. The digest is re-pinned under base-instructions-44, which no release has rendered yet. bun test tests/folder-*.test.ts tests/environment-browser*.test.ts tests/launchpad-*.test.ts: 619 pass. biome, tsc and check:public pass.

@agentrozjedemeai agentrozjedemeai left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Exact-head re-review of 01a489b against b1d882f. Both requested corrections are present: ChatGPT Desktop now leads to a new Environment tab rather than reusing browser window --url; ensureThreadWindow tests prove an address does not navigate a bound window. Web T3 now distinguishes the strip from the live in-view/wide-screen auto-open, and the F38 addendum agrees with the merged t3code#57 behavior. The template revision/digest pin passes, and both snapshot files changed only their revision marker. Isolated checkout: 85 focused tests passed, biome, tsc --noEmit and check:public passed; exact-head CI checks completed successfully (conditional macOS check skipped). No unresolved review threads. APPROVED.

@immakermatty
immakermatty merged commit 9e4d1de into main Oct 12, 2026
7 checks passed
@immakermatty
immakermatty deleted the agent/DEV-6646-browser-manual-explain branch October 13, 2026 19:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants