Skip to main content

CrewX 0.8.8 Release - Workflow semantic failures, visual graph, auto runner & live SSE

· 3 min read
Doha Park
Founder @ SowonLabs

CrewX 0.8.8 brings major workflow upgrades — structured failure signals, an interactive visual graph, auto-runner node types, and a real-time SSE event channel that keeps the UI in sync without polling storms.

🎯 Key Features

Workflow Semantic Failure Channels

Agents running inside workflows can now signal structured failure instead of silently propagating bad state. Return {"workflow_signal": "fail", "reason": "..."} from any node and the engine halts immediately, records the reason, and stops execution.

You can also declare an error terminal node in your workflow YAML that terminates a run with an interpolated message, or use fail_when expressions on task nodes for declarative failure assertions — no custom agent code needed.

Workflow Visual Graph Viewer

Workflows now render as an interactive visual graph directly in the UI.

  • ELK-routed edges with vertical layout for clean, readable flow
  • Back-edge routing so retry loops are visualized correctly
  • Details drawer — click any node to see branch conditions and full node inputs
  • Read-only view included; no editor required to inspect a workflow

skill_task and shell_task Node Types

Two new lightweight node types let workflows invoke CrewX skills and shell commands directly — no need to spin up a full agent task for simple automation steps.

- id: run_linter
type: skill_task
skill: tsserver
args: check ./src

- id: build
type: shell_task
command: npm run build

Task Retry with Dreaming Context

Failed tasks can now be retried directly from the UI. The dreaming built-in is promoted to a first-class package and automatically injects full prior context — conversation history, previous outputs, and failure details — into the retry prompt so agents pick up exactly where they left off.

Real-Time Workspace SSE Channel

All workspace activity (threads, messages, task output) is streamed via a dedicated SSE channel with adaptive polling fallback. The UI updates live without hammering the server — and a singleton connection prevents duplicate SSE storms even when multiple components subscribe.

🔧 Bug Fixes

  • Fixed workflow task reaper from killing live in-process workflow tasks after server restart
  • Fixed workflow graph node height mismatch that caused edges to appear detached
  • Fixed CSRF login failure for remote HTTP access (#347)
  • Fixed file attachment issues: image input latency, double blob URL prefix, and 413 payload errors; server body limit raised to 200 MB
  • Fixed BM25 search field normalization for correct indexing
  • Fixed Mermaid rendering isolation from zoom level in the docs viewer
  • Fixed cron 366-day next_run edge case, DST deduplication, and invalid timezone rejection
  • Fixed activity log to exclude tool_result entries from collapsed preview

📦 Built-in Package Updates

PackageHighlights
@crewx/workflowSemantic failure channels, visual graph, skill_task/shell_task nodes, error terminal node, fail_when
@crewx/dreamingPromoted to built-in; continue mode with full task context
@crewx/cronDST deduplication, IANA timezone list via Intl API, 366-day fix

🚀 Upgrade

npm install -g crewx@0.8.8