Feat v0.9.8 conditional routing SDK primitive
Some checks failed
CI/CD / detect-changes (pull_request) Successful in 4s
CI/CD / test-frontend (pull_request) Has been skipped
CI/CD / test-runners (pull_request) Has been skipped
CI/CD / e2e-smoke (pull_request) Has been skipped
CI/CD / test-go-pg (pull_request) Failing after 2m42s
CI/CD / test-sqlite (pull_request) Successful in 3m5s
CI/CD / build-and-deploy (pull_request) Has been skipped

Promote workflow branch-rule evaluation to a generic Starlark
routing.evaluate(rules, data) module available to all extensions.
10 operators, first-match-wins, no permission gate. 8 new tests.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-04-03 19:17:03 +00:00
parent 42b864376c
commit 8b9360d198
7 changed files with 401 additions and 4 deletions

View File

@@ -2,6 +2,27 @@
All notable changes to Armature are documented here.
## v0.9.8 — Conditional Routing → SDK Primitive
Promotes the workflow branch-rule engine to a generic Starlark SDK
module available to all extensions — no permission required.
**New Starlark module: `routing`**
- `routing.evaluate(rules, data)` — evaluates an ordered list of
condition rules against a data dict; returns the first matching
rule's `target` string, or `None` if no rule matches
- 10 operators: `exists`, `not_exists`, `eq`, `neq`, `gt`, `lt`,
`gte`, `lte`, `in`, `contains`
- First-match-wins semantics
- Domain-agnostic: uses `target` (not `target_stage`) so any
extension can use it for feature flags, content routing, approval
logic, etc.
- Always available — pure computation, no I/O, no permission gate
**Tests:** 8 new unit tests covering all operators, type coercion,
first-match-wins, empty/missing/bad input
## v0.9.7 — Full Read/Write Workflow Starlark Module
Extensions with `workflow.access` permission can now start, advance,