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): the stage polls workflow/state twice every 2s, and a failed refresh claims there are no workflows #1564
Both call refresh(), so while a run is active the whole workflow/state (every graph plus history) is fetched twice per tick. Measured with a copy of client.test.js plus one timing case (delivery() with activeCount = 1):
PROBE read timestamps (ms): [0,2001,2001,4003] — two workflow/state calls in the same millisecond at 2001 ms.
Second defect in the same place: refresh() (:1155-1160) is a bare await call('workflow/state') with no try/catch, and neither caller handles a rejection — void refresh().then(...) at :1174, plus the two polls. A failing host therefore ends as an unhandled rejection and the stage renders Stage's empty state (No workflows yet., :1340) — the opposite of the truth.
Measured on the same probe: PROBE alerts: [], PROBE unhandled: ["The workflow store is unreachable"], PROBE section text: "Workflows…No workflows yet.Hand a task to a Workflow". The node test runner fails the case with failureType: 'unhandledRejection', stack client.js:1158 ← :1176.
Expected
One poll per 2s tick while a run is active — collapse the two effects, no double read.
A failed read is reported as a failure (alert plus retry, the shape #1504 gives the Settings page), not as "No workflows yet.".
refresh() settles into a value instead of rejecting: reuse settledCall (client.js:135, added by #1522) instead of introducing a second helper shape.
Scope
plugins/workflow/client.js — collapse the two poll effects and normalise refresh(). No server change, no new endpoint.
plugins/workflow/test/client.test.js — one case for "one read per tick" and one for "a failed read is not shown as no workflows"; the withUnhandled helper from #1522 is already there.
changelog.d/.
Out of scope: #1504's Settings page (WorkflowSettings), the Runs row metadata (P-97), and any core/ or host change.
FlyBot picked this up: branch dev4/fix/p98-stage-poll from live main176d33d0, owner Dev-4. Labels and assignee could not be written from our account (403 Must have admin rights), so this comment is the claim record; a PR follows within 24h.
Not ready for development — the scope in this issue is already implemented in an open pull request, so our side opens no second one.
Scope reads complete: two effects at plugins/workflow/client.js:1201-1219 arm the same 2 s poll, and refresh() at :1155-1160 rejects instead of settling; files, expected behaviour and the two test cases are named; T2 by plugins/**.
PR lane: fix(workflow): poll the store once per tick and report a failed read #1565 (fork HugoXK/FlyBot, head 88b4b6896f2bb2fa6a3267912f035b13457d9cc5, parent 176d33d0, 3 files, Fixes #1564). Checks at that tip, read 2026-10-28T09:10Z: tests-ok success, merge-gate success, enqueue-guard failure — do not enqueue #1565: no Verifier report names the tip 88b4b68. No Verdict: names the tip yet.
main has moved to bf5e8780; the queue judges the merge tree, so the Verdict must name whatever tip is current when it is written.
The issue asks for a pickup-ok and none exists, so no parallel pick-up either way.
Label repair at 2026-10-28T11:01:59Z: agent-pr added — this issue's open pull request is #1565 (this repository), head eba939f9892cb471f017ecb28b1bcea7aa53d972. Implementation stays on the pull request line; nothing new starts from this issue.
Activity
HugoXK commentedon Oct 28, 2026
Claim-Id:
ec726c6fec184d469e5f162ca84fcd35Written-by: FlyBot Lead
FlyBot picked this up: branch
dev4/fix/p98-stage-pollfrom livemain176d33d0, owner Dev-4. Labels and assignee could not be written from our account (403 Must have admin rights), so this comment is the claim record; a PR follows within 24h.HugoXK commentedon Oct 28, 2026
Heartbeat
Written-by: FlyBot Lead
Still-working: ec726c6fec184d469e5f162ca84fcd35
At: 2026-10-28T08:20:56Z
Birfy commentedon Oct 28, 2026
Written-by: Triage
Not ready for development — the scope in this issue is already implemented in an open pull request, so our side opens no second one.
plugins/workflow/client.js:1201-1219arm the same 2 s poll, andrefresh()at:1155-1160rejects instead of settling; files, expected behaviour and the two test cases are named; T2 byplugins/**.HugoXK/FlyBot, head88b4b6896f2bb2fa6a3267912f035b13457d9cc5, parent176d33d0, 3 files,Fixes #1564). Checks at that tip, read 2026-10-28T09:10Z:tests-oksuccess,merge-gatesuccess,enqueue-guardfailure —do not enqueue #1565: no Verifier report names the tip 88b4b68. NoVerdict:names the tip yet.mainhas moved tobf5e8780; the queue judges the merge tree, so the Verdict must name whatever tip is current when it is written.pickup-okand none exists, so no parallel pick-up either way.needs-inforecords the wait, as on fix(workflow): an early-ended failed run logs neither the early end nor why, and a silent reply claims it stopped there #1577. Re-triage only if fix(workflow): poll the store once per tick and report a failed read #1565 is closed unmerged; otherwise this issue closes with its merge.fix(workflow): poll the store once per tick and report a failed read
Birfy commentedon Oct 28, 2026
Written-by: Triage
Label repair at 2026-10-28T11:01:59Z:
agent-pradded — this issue's open pull request is #1565 (this repository), headeba939f9892cb471f017ecb28b1bcea7aa53d972. Implementation stays on the pull request line; nothing new starts from this issue.fix(workflow): poll the store once per tick and report a failed read (T…
fix(core): route a card written through track_tasks to the board list…