Hacktoberfest 2026:维护者为十月标记出来的 issue,仍然开放、适合新手。 浏览 Hacktoberfest issue

[Bug]: Injected browser rule forbids falling back after preview_open succeeds, so agents stop and ask the user which browser to use

未关闭 适合新手
#16,404 0 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

维护者通常 1 天内回复

还没有人认领这个 Issue。

评估

难度
2/5
预计耗时
1-3 小时
新手友好度
82/100
Issue 类型
缺陷
描述清晰度
描述清楚
活跃度
活跃
技术栈
typescript
领域
backend

调研方向

从 apps/server/src/provider/T3OrchestrationInstructions.ts 开始,阅读注入的浏览器规则。更新该规则,使其在预览调用反复失败后允许回退到浏览器工具,同时不移除对 T3 预览工具的一般优先使用原则;完成的标准是,代理无需询问即可切换,并报告原始预览错误。

由索引模型根据 Issue 内容生成。

描述

Filed by Claude (Opus 5.5, running inside T3 Code) on behalf of @janpilu, at their request. The investigation was done by agents on their machine. We reviewed the last week of our T3 threads.

Before submitting
  • I searched existing issues and did not find a duplicate. The failures that set this off are tracked in #13540 (failover after a timeout), #16264 (a timed-out evaluate keeps running), #13990 (sandboxed_renderer.bundle.js failed to run) and #15336 (errors reduced to "failed on client"). This report is about how agents react to those failures. It isn't about the failures themselves.
  • I included enough detail to reproduce or investigate the problem.
Area

apps/server (src/provider/T3OrchestrationInstructions.ts)

Summary

T3 injects this browser rule into every provider session:

Use an alternative browser system only when the T3 preview tools are absent, the user explicitly requests another browser, or preview_open returns an explicit unsupported/unavailable error.

None of the three conditions covers the common failure: preview_open works, then later preview calls keep failing. Examples are calls that time out, a tab that lands on chrome-error://chromewebdata/, recordingStop failed on client …, or a different client ID answering after the session moved to another host (#13540). In that state the agent may not use Playwright or any other browser unless the user "explicitly requests" it. So unattended agents stop and ask the user which browser to use.

The person being asked usually can't answer. Our verification agents asked four times in three days, with questions like "Close the extra client?" and "Leave only the development-machine client connected?". Their answers were "what does this mean" and "no idea what you are talking about". The same thing happened to a coworker on a different machine, because the rule is injected for everyone. A project's own AGENTS.md or skill text that allows Playwright doesn't help: agents read the injected developer instruction as taking priority, and project text doesn't count as the user explicitly asking.

Steps to reproduce
  1. Give an agent a task that requires browser verification. Allow "T3 preview tools or Playwright" in the project instructions, and don't mention a browser in the prompt.
  2. Make preview calls fail after a successful preview_open. The simplest way is #13540 with two desktop clients connected: preview_evaluate with new Promise(() => {}) times out, and later calls go to the other host.
  3. Watch the agent.
Expected behavior

After a bounded number of failed preview calls (for example, two failures on the same step), the agent may switch to another browser tool. It says so and quotes the raw preview error, and it doesn't need to ask. Alternatively, the rule says plainly that project or skill instructions can authorise a fallback.

Actual behavior

The agent stops the turn and asks the user for permission to switch browsers. Unattended pipelines stall until someone answers a question they don't have the context for. In one case, on 2026-10-05, the agent asked to switch because it thought its recordings were frozen. They weren't: its own frame-sampling script was returning frame 0 for every timestamp. The same rule meant even a mistaken diagnosis ended up as a question to the user.

Suggested change

Add a fourth condition along these lines: "…or after preview calls on an already-open tab have failed twice for the same step (timeout, chrome-error://, a failed recording stop, or a different client answering). In that case, state the raw error and switch without asking." Keep the general preference for T3 preview tools as it is.

Impact

Major degradation or frequent failure. Our verification pipeline stalls with an unanswerable question every few runs. Until #13540 and #16264 ship, this rule is what turns their failures into blocked turns.

Version

Nightly 0.0.46-nightly.20261005.2667 (37de6cbde65c), macOS 26.6.2 arm64. The instruction text is in apps/server/src/provider/T3OrchestrationInstructions.ts. In the shipped bundle it's binCli-*.mjs.

主要语言
TypeScript
星标
24.8k
派生
6.4k
平均合并
7 小时 58 分钟
30 天内合并 PR
258

环境准备

在 Codespaces 中打开

在浏览器里用你自己的 GitHub 账号启动这个项目的开发容器。

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

pingdotgg/t3code 的其他 Issue

查看 pingdotgg/t3code 的全部 Issue

相似的 Issue

更多 TypeScript Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。