browser_take_screenshot
browser_open
browser_navigate
browser_capabilities
backgroundThrottling: false
桌面端开一个带 new EventSource('/api/events') 长连接的页面驻留 pane,切走 tab 或最小化窗口数分钟,观察 agent 会话的 pane 操作与 presence 状态。
new EventSource('/api/events')
—— 来自 ai-quant 项目会话的实测记录(2026-10-14),可提供会话日志细节。
claim — session ses_ec594d15bfferekxLpsDFSua1A · branch workflow/session/pane-sse-heartbeat-8 · account fourbroad (atomic claim via script/claim.sh, #3327)
ses_ec594d15bfferekxLpsDFSua1A
workflow/session/pane-sse-heartbeat-8
fourbroad
根因链(与工单假设方向一致,已代码证实):
pane consumer 的全部出站通道(presence ping POST 与 SSE 驱动的 engage/settle POST)都在 session 页面 renderer 内执行。长驻 SSE 页面 + 窗口后台/最小化 → Chromium intensive throttling 把 30s 链式定时器拉到 ~1/min,烧穿 60s presence TTL:
no-browser-surface
pane-offline
修复(主仓 PR Octopus/octopus#6042,分支 workflow/session/pane-sse-heartbeat-8):
presence:declare
测试红先行→全绿(direct-ping 8 + declare-ipc 9 + sv 4 + app 6 + capabilities 7 + grace 6 + 周边回归),三包 lint/typecheck 通过。PR 合并后本工单可关闭。
修复 PR Octopus/octopus#6042 已走完 implement → review-code(round 1 收敛 PASS:0 BLOCKER,10 项 FIX 已落地)→ verify(iteration 1 PASS)。报告:主仓 .octopus/runs/pane-sse-heartbeat-8/05-verify-iteration-1.md。
.octopus/runs/pane-sse-heartbeat-8/05-verify-iteration-1.md
待 PR #6042 合并后(人工通道 script/pr-merge.sh 6042)即可关闭本工单。
script/pr-merge.sh 6042
No dependencies set.
The note is not visible to the blocked user.
环境
断连时间线(同一会话内连续发生)
browser_take_screenshot失败:"guest webview is gone or invalid"——consumer 在线但 guest webview 无法执行操作(提示 page-spawned new tab / renderer wedge / pane closing 都可能)browser_open同 URL 成功(输出还提示 "the pane's guest webview was unavailable before this open. The open re-bound the session")——重新绑定后一切正常browser_navigate失败:"no pane consumer acknowledged the request within the surface window (10s)",surface 翻转为 pane-offlinebrowser_open失败:"No connected client can show a browser pane for this session"(提示 presence heartbeat may have lapsed transiently)browser_capabilities仍报告 surface=desktop-panel、pane-bound(会话状态与实际可达性不一致)browser_open重新加载成功观察到的矛盾点
假设(未证实,供排查)
backgroundThrottling: false或 webPreferences 调整)影响
复现建议
桌面端开一个带
new EventSource('/api/events')长连接的页面驻留 pane,切走 tab 或最小化窗口数分钟,观察 agent 会话的 pane 操作与 presence 状态。—— 来自 ai-quant 项目会话的实测记录(2026-10-14),可提供会话日志细节。
claim — session
ses_ec594d15bfferekxLpsDFSua1A· branchworkflow/session/pane-sse-heartbeat-8· accountfourbroad(atomic claim via script/claim.sh, #3327)RCA + 修复 PR
根因链(与工单假设方向一致,已代码证实):
pane consumer 的全部出站通道(presence ping POST 与 SSE 驱动的 engage/settle POST)都在 session 页面 renderer 内执行。长驻 SSE 页面 + 窗口后台/最小化 → Chromium intensive throttling 把 30s 链式定时器拉到 ~1/min,烧穿 60s presence TTL:
no-browser-surface(0.28.0 仍带 8s 宽限;#5733 的 45s 修复 PR 一直未合并)pane-offline(工单时间线 3)修复(主仓 PR Octopus/octopus#6042,分支
workflow/session/pane-sse-heartbeat-8):presence:declare声明通道backgroundThrottling: false(工单建议的直接落地——SSE 页面驻留不再冻结 renderer 定时器)测试红先行→全绿(direct-ping 8 + declare-ipc 9 + sv 4 + app 6 + capabilities 7 + grace 6 + 周边回归),三包 lint/typecheck 通过。PR 合并后本工单可关闭。
verify 收敛:PASS(管线全部完成)
修复 PR Octopus/octopus#6042 已走完 implement → review-code(round 1 收敛 PASS:0 BLOCKER,10 项 FIX 已落地)→ verify(iteration 1 PASS)。报告:主仓
.octopus/runs/pane-sse-heartbeat-8/05-verify-iteration-1.md。待 PR #6042 合并后(人工通道
script/pr-merge.sh 6042)即可关闭本工单。