Shipped this week
Merged PRs: #116 · #117 · #118 | Release: v2026.622.0
Workflow run cancellation (PR #116, released in v2026.622.0)
Board operators can now cancel a workflow run mid-flight — whether it's queued, actively running, or sitting in an awaiting-human handoff. A new POST /api/workflow-runs/:id/cancel route marks the run and all open phases as cancelled, records a workflow.run_cancelled activity event, and cleans up any pending ClickUp-backed handoffs. The workflow detail page gains a clearly destructive "Cancel run" control in the Pipeline header. Before this, the board had to either wait out a stalled run or intervene at the database level. Now it's a first-class operator action.
Workflow schedules (PR #118)
Recurring workflow runs are now a thing. A new workflow_schedules table, cron-backed scheduler integration, and board-only CRUD routes let you define a prompt template that fires on a schedule — entirely separate from the existing Routines system. The workflow detail UI adds create/edit/pause/archive/delete controls for schedules. Today this is UTC-only with skip-missed-fires semantics; time-zone support is the natural follow-on. Merged this week; ships in the next release (v2026.630.0).
July 2026 Deep Dive syndication log (PR #117)
The July 2026 Deep Dive ("Workflows as a First-Class Primitive") landed on Dev.to and X. Discourse hit a 503 read-only window and needs a retry; GitHub publisher is not yet implemented.
Release v2026.622.0 — released Monday, 22 June, capturing the cancellation feature and the Deep Dive content drop.
Decisions
-
Workflow schedules live alongside Routines, not inside them. Routines are agent-assignment–driven; Workflow schedules are company-scoped and dispatch rendered prompt bodies directly. Keeping them separate avoids adding workflow-specific semantics to an already established abstraction.
-
UTC-only for schedule dispatch. Deliberate simplification for v1. The skip-on-missed-fires default follows the Routine precedent already set in the codebase.
-
Cancellation cleanup runs synchronously in the route handler. ClickUp handoff closure happens immediately on cancel rather than via a background job to keep the operator's cancel action visibly atomic.
Trade-offs
- Cancellation currently relies on an in-memory child-process registry for active local execution. Forced-shutdown edge cases fall back to the existing interrupted-run recovery path — that path works, but it's indirect.
- The cancel route tests AND the embedded-Postgres workflow-service cancellation tests were written but could not execute in the PR sandbox due to
EPERM on localhost sockets. Coverage there is currently code-review + typecheck rather than a green Vitest run.
- Workflow schedules require migration
0080_workflow_schedules.sql to be applied before the new routes go live. Deployments need to sequence this explicitly.
Open challenges
- Discourse retry for the Deep Dive is outstanding — someone needs to re-run content-syndication once the forum is writable again.
- GitHub publisher for the content-syndication pipeline is not yet implemented; the Deep Dive has no GitHub presence yet.
- Time-zone support for workflow schedules is an obvious community ask; worth opening a tracking issue.
- ADK workflow graph parsing landed in PR #113 last week and is fairly complex. Would benefit from a follow-up integration test pass against real multi-branch workflow definitions.