Feat v0.3.2 workflow engine + handlers
Some checks failed
CI/CD / detect-changes (pull_request) Successful in 4s
CI/CD / test-frontend (pull_request) Has been skipped
CI/CD / test-go-pg (pull_request) Failing after 2m43s
CI/CD / test-sqlite (pull_request) Successful in 2m57s
CI/CD / build-and-deploy (pull_request) Has been skipped

Workflow execution engine with Start/Advance/Cancel lifecycle, automated
stage processor with Starlark hook firing and cycle guard (max 10),
instance and assignment HTTP handlers, store round-trip tests for all
v0.3.1 methods, and Starlark module expansion (get_instance, list_instances).

New routes:
- POST/GET /workflows/:id/instances (start, list)
- GET /workflows/:id/instances/:iid (get)
- POST /workflows/:id/instances/:iid/advance (advance)
- POST /workflows/:id/instances/:iid/cancel (cancel)
- POST /assignments/:id/claim|unclaim|complete|cancel
- GET /assignments/mine
- Team-scoped mirrors under /teams/:teamId/...

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-03-27 21:36:40 +00:00
parent 01ee9e668b
commit 438143318f
13 changed files with 1652 additions and 24 deletions

View File

@@ -57,11 +57,14 @@ var routeTable = map[string]Direction{
// Workspace (v0.21.5)
// Workflow (v0.27.0)
"workflow.assigned": DirToClient, // new assignment → team members
"workflow.claimed": DirToClient, // assignment claimed → team + claimer
"workflow.advanced": DirToClient, // stage advanced → channel participants
"workflow.completed": DirToClient, // workflow finished → channel participants
// Workflow (v0.27.0, v0.3.2)
"workflow.started": DirToClient, // instance started
"workflow.assigned": DirToClient, // new assignment → team members
"workflow.claimed": DirToClient, // assignment claimed → team + claimer
"workflow.advanced": DirToClient, // stage advanced → instance participants
"workflow.completed": DirToClient, // workflow finished → instance participants
"workflow.cancelled": DirToClient, // instance cancelled
"workflow.error": DirToClient, // engine/hook error
// Plugin hooks — never cross the wire
"plugin.hook.": DirLocal,