Changelog
User-visible changes to ScaiFlow, newest first.
v0.2 (April 2026) — current#
The first end-to-end release: canvas + backend + compiler + ScaiGrid integration. Major surface area covered:
- Visual designer. 24 node kinds across 9 categories (Entry, LLM, Logic, Tool, Data, Checkpoint, Queue/HITL, Compute, Sub-flow). Drag-from-palette, per-kind property editors, hand-written SVG renderer.
- Compiler. Flow JSON → ScaiCore YAML (default) or SCIR MessagePack IR (
--format ir). Three rigidity levels (@rigid/@guarded/@flexible). Match-style decisions,@checkpointwithhitl_targetfor one-step HITL,core_callfor sub-flow composition, scaibunker/scaiqueue plugin calls. - Multi-model registry. Declare every model your flow uses under a role alias (
primary,fast,voice, …); LLM nodes pick a role from a dropdown sourced from your tenant's ScaiGrid frontend-model catalog (GET /v1/scaigrid/models). - Backend (
apps/api). ScaiKey-authenticated/v1/flows/*CRUD + deploy + tests + versions + presence; CRDT-backed real-time editing over WebSocket; live preview (/v1/flows/compile) + validation (/v1/flows/validate); proxies for ScaiQueue, ScaiBunker, ScaiGrid catalog reads; deferredPOST /v1/dev/deploylegacy path retained until canvas auth fully transitions. - Persistence. DB metadata (SQLAlchemy async on sqlite-for-dev / MariaDB-for-prod) + object storage for flow content (filesystem-for-dev / S3-for-prod). Versioned writes keyed by
flows/{tenant}/{flow}/v{version}.flow.json. Alembic migrations. - Multi-tenancy. ScaiKey OIDC (Authorization Code + PKCE for the canvas, BFF token exchange via
/v1/auth/exchange); per-tenant ScaiGrid credentials in ScaiVault; group-mirroring sync with webhook + scheduled fallback; per-flow ACLs (view/edit/deploy/admin); tenant catalog visibility. - Visual debugger. Live events panel polling
/v1/scaicore/events, per-execution overlay on the canvas (entered → blue, exited → green, failed → red), step-through controller, replay button, pending-breakpoints bar for paused checkpoints. - Real-time collaboration. Yjs-based CRDT shared document over
/v1/flows/{id}/syncWebSocket; multi-cursor presence overlay; falls back to 10-second REST presence polling when WS unavailable. - CLI (
scaiflow).validate,compile,deploy,test,publish,import, plus ascaikey-registerhelper that creates the tenant-specific application + dev API key. - Distribution.
.scaipkgpackage format (deterministic zip offlow.json+manifest.yaml+package.json+ optional README) for sharing flows between tenants. Per-tenant catalog with version-bump-on-republish.
Compared to v0.1 (February 2026)#
Rewritten end-to-end. v0.1 was a paper spec; v0.2 is the actual product.
- Three-tier rigidity, not four —
@adaptivewas dropped (it never had an implementation). - ScaiQueue/ScaiBunker integration shipped as first-class node kinds, not as a
tool_pluginworkaround. - Frontend is SolidJS + Tailwind v4 + daisyUI v5, not React.
- Visual debugger ships in v0.2 (was deferred).
- Catalog ships; public ScaiExchange marketplace deferred to post-GA.
- Code → flow round-trip is partial only (YAML-emitted flows round-trip losslessly; hand-edited YAML preserves unknown steps under
metadata.unknown_steps).
Known-deferred#
The following are designed-in but not built in v0.2 — see the open items for workarounds:
- Public ScaiExchange marketplace (private tenant catalog is shipped; the format is forward-compatible).
- Conditional / runtime-set debugger breakpoints (toggle-based pause on a
@checkpointis shipped). - Multi-replica CRDT relay (in-memory single-process today — fine for one-replica deploys, swap for Redis pub/sub at scale).
- Cursor sharing at sub-second fidelity (CRDT-based concurrent editing is shipped; cursors fall back to 10 s polling).
- AI-assisted flow generation.