Skip to content

[Bug]: Agent drives a signed-out headless page while the Browser panel shows the user's signed-in page for the same tab #17334

Closed as not planned

Description

@Jreevo

Before submitting

  • I searched existing issues and did not find a duplicate.
  • I included enough detail to reproduce or investigate the problem.

Area

apps/server

Steps to reproduce

  1. In the desktop app, start a Claude thread. Keep the Browser panel for that thread closed, or have another thread focused.
  2. Have the agent open a page that needs a login, e.g. preview_navigate to https://app.revenuecat.com/projects/<id>/integrations/webhooks. The user's desktop browser profile is already signed in to that site.
  3. Wait more than 10 seconds, then open the thread's Browser panel and select the tab the agent opened.
  4. Ask the agent to act on the page (preview_snapshot, click, and so on).

Expected behavior

The agent and the user see and drive the same page. The panel shows the agent's tab, and agent actions land on it with the user's profile and sign-ins, just as they do when the panel is already open when the tab is created.

Actual behavior

The two views split. The panel renders the tab in a desktop <webview> using the user's profile, so the user sees the signed-in dashboard. The agent keeps driving a separate headless page in an isolated context, so it sees the login page and gets 403s. preview_status reports visible: false. Both share the same tabId and the same URL bar text (/login). Closing the tab and opening a new one reproduces it whenever the panel misses the attach window.

In my session this turned into a 5-turn argument: the user kept saying "YOUR TAB IS SIGNED IN" and the agent kept seeing a login page. Both were right.

Cause, as far as I can see: ServerBrowser.createTab decides once whether a tab uses the desktop page (desktopRenders → awaitAttached, DESKTOP_ATTACH_TIMEOUT = 10s). On timeout it falls back to headless, and for an agent-owned tab that means an isolated context. When the desktop attaches later, DesktopBrowserChannel publishes attached, but nothing in ServerBrowser subscribes to it. The only subscriber is the detached handler. The headless page is never handed over to the desktop page.

Impact

Major degradation or frequent failure

Version or commit

T3 Code (Nightly) 0.0.46-nightly.20261008.2833. Code paths checked against main @ 48b71f0.

Environment

macOS 27.0.1, desktop app (Nightly), Claude provider (claude-opus-5-5), server browser runtime (runtime: "server")

Logs or stack traces

# Agent: preview_status right after the user said the tab is signed in
{"available":true,"visible":false,"tabId":"tab_3_52957532-…","url":"https://app.revenuecat.com/login",
 "control":{"owner":"agent","ownedByCaller":true},"tabs":[{"tabId":"tab_3_52957532-…","url":"https://app.revenuecat.com/login"}]}

# Agent: t3_preview_list
{"sessions":[{"tabId":"tab_3_52957532-…","navStatus":{"_tag":"Success","url":"https://app.revenuecat.com/login"},
  "runtime":"server","automationOwner":"…","reveal":true}]}

# Agent: preview_snapshot (visibleText + console)
"Log in\n\nWelcome back! Please enter your email and password to continue. …"
consoleEntries: "Failed to load resource: the server responded with a status of 403 ()" (x3)

# After t3_preview_close + preview_open (reuseExistingTab:false): new tab_4, same result: /login page and 403s

Screenshots, recordings, or supporting files

The user's view: the Browser panel on the right shows the signed-in RevenueCat Overview while the URL bar reads /login. The agent's message on the left embeds its own snapshot of the same tab, which shows the login page. Revenue figures are redacted.

Side by side

The agent's preview_snapshot image of the same tabId:

Agent snapshot

Workaround

Do the logged-in steps by hand in the panel. Alternatively, have the panel already open on that thread before the agent opens the tab, so the desktop attaches within 10 seconds.

Activity

  1. juliusmarminge commented on Oct 8, 2026

    @juliusmarminge
    Member

    Note

    Grok responding on behalf of Julius.

    Closing as a duplicate of #16901 — same ServerBrowser.createTab / DESKTOP_ATTACH_TIMEOUT (10s) path: when the desktop panel attaches after the timeout, the agent keeps the headless isolated page while the panel shows the user's signed-in webview for the same tabId.

    Please follow and add any extra detail on #16901.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    duplicateThis issue or pull request already exists

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions