flow: operational introspection API — flow/status,result,list,pending + 12 tests
Some checks failed
Test, Build, and Deploy / test-build-deploy (push) Failing after 55s

flow/status id -> done|suspended|cancelled|unknown; flow/result id -> value or
error; flow/list -> (id status) per flow; flow/pending -> (id waiting-tag) for
suspended flows (operator view of what each awaits). Pure store introspection.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-06-06 17:53:23 +00:00
parent 16cb727406
commit c1d24eb9b3
6 changed files with 109 additions and 7 deletions

View File

@@ -16,7 +16,7 @@ federation extension via fed-sx for remote-node execution.
## Status (rolling)
`bash lib/flow/conformance.sh`**93/93** (all four phases complete)
`bash lib/flow/conformance.sh`**105/105** (Phases 1-4 complete; Phase 5 in progress)
## Ground rules
@@ -133,6 +133,20 @@ lib/flow/spec.sx lib/flow/runtime.sx lib/flow/store.sx
- [x] `lib/flow/tests/distributed.sx` — 19 cases: remote-node, failover,
replication, handoff (including replay-log survival across the move)
## Phase 5 — Operational API + combinator library
The four roadmap phases are complete; this phase rounds out the engine into
something operators and authors actually use. Accumulation, not a rewrite.
- [x] introspection API — `flow/status id`, `flow/result id`, `flow/list`,
`flow/pending` (operator view of what each suspended flow awaits). 12 tests in
`tests/api.sx`.
- [ ] `tap` — side-effecting pass-through node (logging/metrics) that returns input
- [ ] `recover` — complement to try-catch for the fail-VALUE channel: run node; if it
yields `(fail ...)`, run a recovery node on the reason
- [ ] `map-flow` — run a flow per item of a list, join results (sequential)
- [ ] `lib/flow/tests/api.sx` — introspection + new combinators
## Progress log
- **Phase 1 (combinators + sequential runtime).** Flow built as a Scheme prelude