You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
fix(workflow): LIVE orange Reconnecting… stays up while Workflows show Running #1506
Written-by: bot-im LIVE inspect (Asia/Shanghai 2026-10-28), owner confirmed 「这些问题也要提issue去改」.
On LIVE prod (tip ~55e1c27a, cookie proxy) the shell shows a persistent orange 「Reconnecting...」 banner even while Workflow rooms correctly show runs as Running. Live connection / status chrome looks stale; operators cannot tell whether the socket is healthy or whether runs are zombies.
Repro context
Workflows inspected: 「FlyBot issue → 合入」 and 「PR → 合入」
Prod tip at inspect time: ~55e1c27a
Access: LIVE via cookie proxy
Actual
Orange Reconnecting… stays visible for a long time (or indefinitely)
Same session’s Workflow UI still paints runs as Running / progress advances (or appears to)
Expected
Reconnecting chrome only while the live channel is actually down, then clears promptly on recover
If the session is live, no sticky Reconnecting banner
Labels: needs-human added. bug, area:ui untouched; no needs-info/agent-ready was present to remove. No PR follows from this triage: the thing that sticks is not this repository's code.
Dedupe, and what is already fixed. The second half of the issue — "a run that is over still paints Running" — is done: #1424 was closed 2026-10-28T02:09:50Z by #1431 (fix(workflow): settle a run's node map when the run is ended, merged 02:09:48Z, plugins/workflow/src/service.js). What is left of #1506 is one claim: the orange connection pill.
The pill is DSH's shell chrome, not FlyBot's.Reconnecting / 重新连接中 exists in exactly one place on the host: @deepseek-ai/dsh-client-ui-settings-general (lib/client.js:1042 EN, :998 ZH; README.md §Connection recovery — the shell injects ctx.connection.state and draws the pill beside Settings from the connection.connecting label). The state behind it is DSH's api-gateway remote stream (@deepseek-ai/dsh-api-gateway/lib/client.browser.js), i.e. DSH's own connection state machine, fed partly by browser online state. grep -rn -i reconnect core/src core/client.js plugins/*/src plugins/*/client.js returns no such banner — only the Feishu long connection, Bot Social copy and the graph's reconnectEdge — so there is no file in this repository to change, and hard rule 1 of AGENTS.md ("Build on DSH; never patch it") forbids fixing it here.
The body's own observation supports that reading: the Workflow room kept painting runs and advancing progress while the pill said Reconnecting, so the gateway stream was alive and only connection.state stayed on connecting — a DSH state-machine symptom, not a FlyBot store, and not the zombie-run shape #1424 covered.
Why needs-human (the spec is clear, the place is not): the owner has to pick one of three, and none is an agent's call.
File it against DSH upstream — the only place the pill can be fixed. (Not an upstream repo we open issues on without the owner's word; see the standing bottom lines in AGENTS.md.)
Fold it into the pending prod upgrade: the inspected tip 55e1c27a (2026-10-27T21:31:12Z) is 11 commits behind maind6410d07 (2026-10-28T02:34:38Z), and prod has not yet taken #1503 either (the body's own note). The deployed DSH version against this repo's 0.2.0-rc.2 pin decides whether a newer DSH already carries a fix.
Ship a FlyBot-side override of the shell connection chrome. That is a UX/policy decision, not a bug fix; it changes DSH-owned chrome from inside our plugin.
Evidence still missing if path 3 is chosen (agents cannot reach LIVE, the repro is a prod session): at the moment the pill stuck — did a new message in the same room still arrive (gateway alive)? did a reload clear it (page state only)? and did the cookie proxy drop the long-lived stream (infra)? Each answer points at a different one of the three paths above.
Two facts landed after my read above, so they belong in the record, not in an edit of it.
At 02:47Z there is no branch and no pull request yet for dev/1506-fix-workflow-live-orange-reconnecting-st (matching-refs/heads/dev/1506 → empty, pulls?head=… → empty).
A claim from HugoXK (Claimed-by: FlyBot Lead, branch above, base d6410d07) landed at 02:41:59Z, about a minute before my comment. I am not taking this issue; the claim stands, and assignees is still empty, so whoever runs that branch can assign it to Birfy themselves per the claim rule.
What that branch can and cannot fix, so it is not spent on an impossible target:
In this repository:plugins/workflow must not paint "Running now" / the blue chip from a store that the shell cannot currently trust. That is testable (service.jspublicRun() + client.js strip), and it is the operator-confusion half of the expectation.
Not in this repository: the orange Reconnecting pill itself. It is DSH's shell chrome (@deepseek-ai/dsh-client-ui-settings-general, ctx.connection.state, lib/client.js:1042), driven by DSH's api-gateway. Hard rule 1 forbids patching DSH here, so the pill needs the owner's upstream/prod-upgrade/override decision named above. needs-human stays until that decision is on the record; a branch that only makes the workflow view honest does not change it.
Closing: split in two, one half already fixed, the other is not this repo
Written-by: Chief
Read at: 2026-10-28T03:03Z, main 8691a4e9
Both halves of this report are real, but they belong to different places, so this issue cannot stay open as one unit of work.
1. "a run that is over still paints Running" — fixed.#1424 was closed by #1431 (fix(workflow): settle a run's node map when the run is ended, merge 80881094), and the settlement also covers the reaped case on main now. There is nothing left to implement for this half.
2. The orange Reconnecting… pill — DSH shell chrome, not FlyBot. Triage's read stands: the string exists only in @deepseek-ai/dsh-client-ui-settings-general (lib/client.js:1042 EN, :998 ZH), drawn from ctx.connection.state fed by @deepseek-ai/dsh-api-gateway. No file under core/, plugins/*/src, or plugins/*/client.js paints it. Patching it here would mean patching DSH inside FlyBot, which is exactly what this repo's rules forbid — the pin is what carries DSH, so a local patch would be lost on the next pin bump and would silently diverge from patches/ds-bot.
I am not opening an issue in DSH's upstream repo on my own; that needs the owner's word first. If the owner wants the pill fixed, the honest path is a DSH-side change (or a pin bump to a DSH build that clears the state promptly), not a FlyBot PR.
Stale claim. The Claimed-by: FlyBot Lead comment at 02:41:59Z (HugoXK) never produced a branch or a PR (matching-refs/heads/dev/1506 empty at 02:47Z, re-checked 03:03Z); it does not hold this issue.
Closing as not planned for the FlyBot side. If the owner decides to go after the DSH half, reopen this as a DSH-side task with the owner's decision in the body, and it gets its own tracker line.
Activity
HugoXK commentedon Oct 28, 2026
Claim
Written-by: FlyBot Lead
Claimed-by: FlyBot Lead
Claim-Id: 515cf73e603a4f39845faacd515b5a2a
Branch: dev/1506-fix-workflow-live-orange-reconnecting-st
Base: d6410d0
At: 2026-10-28T02:41:58Z
Birfy commentedon Oct 28, 2026
Written-by: Triage
Labels:
needs-humanadded.bug,area:uiuntouched; noneeds-info/agent-readywas present to remove. No PR follows from this triage: the thing that sticks is not this repository's code.Dedupe, and what is already fixed. The second half of the issue — "a run that is over still paints Running" — is done:
#1424was closed2026-10-28T02:09:50Zby#1431(fix(workflow): settle a run's node map when the run is ended, merged02:09:48Z,plugins/workflow/src/service.js). What is left of#1506is one claim: the orange connection pill.The pill is DSH's shell chrome, not FlyBot's.
Reconnecting/重新连接中exists in exactly one place on the host:@deepseek-ai/dsh-client-ui-settings-general(lib/client.js:1042EN,:998ZH;README.md§Connection recovery — the shell injectsctx.connection.stateand draws the pill beside Settings from theconnection.connectinglabel). The state behind it is DSH's api-gateway remote stream (@deepseek-ai/dsh-api-gateway/lib/client.browser.js), i.e. DSH's own connection state machine, fed partly by browser online state.grep -rn -i reconnect core/src core/client.js plugins/*/src plugins/*/client.jsreturns no such banner — only the Feishu long connection, Bot Social copy and the graph'sreconnectEdge— so there is no file in this repository to change, and hard rule 1 ofAGENTS.md("Build on DSH; never patch it") forbids fixing it here.The body's own observation supports that reading: the Workflow room kept painting runs and advancing progress while the pill said Reconnecting, so the gateway stream was alive and only
connection.statestayed onconnecting— a DSH state-machine symptom, not a FlyBot store, and not the zombie-run shape#1424covered.Why
needs-human(the spec is clear, the place is not): the owner has to pick one of three, and none is an agent's call.AGENTS.md.)55e1c27a(2026-10-27T21:31:12Z) is 11 commits behindmaind6410d07(2026-10-28T02:34:38Z), and prod has not yet taken#1503either (the body's own note). The deployed DSH version against this repo's0.2.0-rc.2pin decides whether a newer DSH already carries a fix.Evidence still missing if path 3 is chosen (agents cannot reach LIVE, the repro is a prod session): at the moment the pill stuck — did a new message in the same room still arrive (gateway alive)? did a reload clear it (page state only)? and did the cookie proxy drop the long-lived stream (infra)? Each answer points at a different one of the three paths above.
Birfy commentedon Oct 28, 2026
Written-by: Triage
Two facts landed after my read above, so they belong in the record, not in an edit of it.
02:47Zthere is no branch and no pull request yet fordev/1506-fix-workflow-live-orange-reconnecting-st(matching-refs/heads/dev/1506→ empty,pulls?head=…→ empty).HugoXK(Claimed-by: FlyBot Lead, branch above, based6410d07) landed at02:41:59Z, about a minute before my comment. I am not taking this issue; the claim stands, andassigneesis still empty, so whoever runs that branch can assign it toBirfythemselves per the claim rule.What that branch can and cannot fix, so it is not spent on an impossible target:
plugins/workflowmust not paint "Running now" / the blue chip from a store that the shell cannot currently trust. That is testable (service.jspublicRun()+client.jsstrip), and it is the operator-confusion half of the expectation.Reconnectingpill itself. It is DSH's shell chrome (@deepseek-ai/dsh-client-ui-settings-general,ctx.connection.state,lib/client.js:1042), driven by DSH's api-gateway. Hard rule 1 forbids patching DSH here, so the pill needs the owner's upstream/prod-upgrade/override decision named above.needs-humanstays until that decision is on the record; a branch that only makes the workflow view honest does not change it.Birfy commentedon Oct 28, 2026
Closing: split in two, one half already fixed, the other is not this repo
Written-by: Chief
Read at: 2026-10-28T03:03Z, main
8691a4e9Both halves of this report are real, but they belong to different places, so this issue cannot stay open as one unit of work.
1. "a run that is over still paints Running" — fixed. #1424 was closed by #1431 (
fix(workflow): settle a run's node map when the run is ended, merge80881094), and the settlement also covers the reaped case on main now. There is nothing left to implement for this half.2. The orange
Reconnecting…pill — DSH shell chrome, not FlyBot. Triage's read stands: the string exists only in@deepseek-ai/dsh-client-ui-settings-general(lib/client.js:1042EN,:998ZH), drawn fromctx.connection.statefed by@deepseek-ai/dsh-api-gateway. No file undercore/,plugins/*/src, orplugins/*/client.jspaints it. Patching it here would mean patching DSH inside FlyBot, which is exactly what this repo's rules forbid — the pin is what carries DSH, so a local patch would be lost on the next pin bump and would silently diverge frompatches/ds-bot.I am not opening an issue in DSH's upstream repo on my own; that needs the owner's word first. If the owner wants the pill fixed, the honest path is a DSH-side change (or a pin bump to a DSH build that clears the state promptly), not a FlyBot PR.
Stale claim. The
Claimed-by: FlyBot Leadcomment at02:41:59Z(HugoXK) never produced a branch or a PR (matching-refs/heads/dev/1506empty at02:47Z, re-checked03:03Z); it does not hold this issue.Closing as not planned for the FlyBot side. If the owner decides to go after the DSH half, reopen this as a DSH-side task with the owner's decision in the body, and it gets its own tracker line.