Changeset 0.35.0 (#209)

Co-authored-by: Jeffrey Smith <jasafpro@gmail.com>
Co-committed-by: Jeffrey Smith <jasafpro@gmail.com>
This commit is contained in:
2026-03-20 09:59:53 +00:00
committed by xcaliber
parent d16bb93177
commit bf8082e69f
37 changed files with 2324 additions and 129 deletions

View File

@@ -1,5 +1,61 @@
# Changelog
## [0.35.0] — 2026-03-19
### Summary
Workflow Product: transforms the workflow engine from a linear
stage-runner into a product-grade automation tool. Conditional routing,
progressive forms, Starlark data pipeline, structured review with
comments, and a monitoring dashboard with SLA tracking.
### New
- **Conditional routing engine** — `transition_rules.conditions[]`
evaluated against accumulated `stage_data`. Supports eq/neq/gt/lt/
gte/lte/in/contains/exists operators. First match wins; no match
falls back to ordinal+1. Backward compatible.
- **`workflow_route` tool** — persona-callable tool for AI-triggered
routing to named stages. Supports forward and backward jumps (loop
stages). Records routing decisions in `stage_data._route_history_latest`.
- **Starlark `workflow.route()`** — extension-driven routing for
confidence-based escalation patterns.
- **`on_advance` hook** — Starlark entry point fires synchronously
after stage transition. Can enrich/transform `stage_data` or reject
the transition. Configured via `transition_rules.on_advance`.
- **Progressive forms** — `form_template.fieldsets[]` for multi-step
forms with next/back navigation and step indicators.
- **Conditional fields** — `FormField.condition` (when/op/value)
controls field visibility. Server-side validation skips hidden fields.
- **Workflow branding** — `accent_color`, `logo_url`, `tagline` now
applied to workflow visitor pages via CSS custom properties.
- **Structured review** — side-by-side layout with data card + actions
panel. Keyboard shortcuts: Ctrl+Enter approve, Ctrl+Shift+Enter reject.
- **Review comments** — `POST /workflow-assignments/:id/comment` appends
reviewer notes to the assignment's `review_comments` JSONB array.
- **Monitoring dashboard** — admin endpoints for active instances,
stage funnels, and stale detection. SLA computed from
`stage_entered_at + sla_seconds` vs NOW().
- **SLA tracking** — `sla_seconds` column on workflow_stages,
`stage_entered_at` on channels. Dashboard shows remaining time
with green/yellow/red indicators.
### Schema
- `workflow_stages.sla_seconds INTEGER` (018 modified in-place)
- `channels.stage_entered_at TIMESTAMPTZ/TEXT` (005 modified in-place)
- `workflow_assignments.review_comments JSONB/TEXT DEFAULT '[]'` (018)
- Index `idx_channels_workflow_active` (005)
- DB rebuild required (wipe data directory)
### New files
- `server/workflow/routing.go` — conditional routing engine
- `server/handlers/workflow_hooks.go` — on_advance hook firing
- `server/handlers/workflow_monitor.go` — monitoring dashboard
- `src/js/workflow-monitor.js` — admin monitoring frontend
- `packages/icd-test-runner/js/crud/workflow-product.js` — E2E tests
## [0.33.0] — 2026-03-19
### Summary