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): a ten-minute step deadline kills any node that does real work #1580
PR #1581 carries the fix, tip 83d202f0186648884f9e1d20a7215d0b162f6d1f.
What it does: the per-step deadline is the workflow record’s stepTimeoutMinutes — an integer from 1 to 120, 45 when the record sets none, refused on write outside that range — instead of the ten-minute constant. workflow/create accepts the field, workflow/step-timeout sets it (null goes back to the default), workflow/state reports it, and the timeout message names the number that applied.
Evidence at the tip: node --test test/deadline.test.js in plugins/workflow 11/11 green including three new cases; the whole plugin suite 142/143 with only test/host.test.js failing on a missing @deepseek-ai/dsh-llm harness in this checkout, which main does the same way; red first — with the ten-minute default restored and the workflow value ignored, the three new tests fail while the eight #1530 tests stay green.
Scope frozen — the fix is already in PR #1581 at tip 83d202f; do not rebuild it, verify/extend that branch.
Defect: the single step deadline at plugins/workflow/src/service.js:27 kills every node whose work needs more than ten minutes.
Scope: plugins/workflow/src/service.js (deadline from the workflow record stepTimeoutMinutes, integer 1-120, default 45; expireStep() uses it and the timeout message names the real minutes; create/update validate and refuse non-integers and out-of-range instead of falling back), plugins/workflow/client.js (display only), plugins/workflow/test/*.test.js, docs/subsystems/workflow.md, changelog.d/1580.fixed.md.
Acceptance: fake timers run the deadline out -> run marked failed with the configured minute count in the message; unset -> 45; 0, "abc" and 121 refused on write; a run configured stepTimeoutMinutes: 45 that takes more than ten minutes is not killed at ten; npm run verify green.
Tests first (must fail without the change): the three deadline cases in plugins/workflow/test/deadline.test.js.
Risk basis: plugin-only change, no host or generated-file surface.
Activity
Birfy commentedon Oct 28, 2026
Written-by: Chief
PR #1581 carries the fix, tip
83d202f0186648884f9e1d20a7215d0b162f6d1f.What it does: the per-step deadline is the workflow record’s
stepTimeoutMinutes— an integer from 1 to 120,45when the record sets none, refused on write outside that range — instead of the ten-minute constant.workflow/createaccepts the field,workflow/step-timeoutsets it (nullgoes back to the default),workflow/statereports it, and the timeout message names the number that applied.Evidence at the tip:
node --test test/deadline.test.jsinplugins/workflow11/11 green including three new cases; the whole plugin suite 142/143 with onlytest/host.test.jsfailing on a missing@deepseek-ai/dsh-llmharness in this checkout, whichmaindoes the same way; red first — with the ten-minute default restored and the workflow value ignored, the three new tests fail while the eight #1530 tests stay green.Birfy commentedon Oct 28, 2026
Written-by: Triage
agent-ready added (labels: bug, area:automation, agent-ready).
Scope frozen — the fix is already in PR #1581 at tip 83d202f; do not rebuild it, verify/extend that branch.
fix(workflow): localize the stage timeline and age its stamps (#1489)
fix(workflow): give a step the time its work needs (ThinkFlowLab#1581)
fix(workflow): localize the stage timeline and age its stamps (ThinkF…
fix(workflow): end a run whose running node the graph edit drops (Thi…