Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
16 commits
Select commit Hold shift + click to select a range
3b3c772
docs(roadmap): mark 1.M (DAG builder + RunPlan) and 1.AB (sandbox) Do…
cemililik Jun 13, 2026
149c500
docs(decisions): add ADR-0036 run-loop substrate (RunEventBus, Execut…
cemililik Jun 13, 2026
1fb4d5d
feat(core): implement 1.N — WorkflowEngine + RunEventBus run loop
cemililik Jun 13, 2026
816fdb4
docs(decisions): add ADR-0037 + tool-registry spec for the engine too…
cemililik Jun 13, 2026
842b7e1
feat(core): implement 1.T — built-in ToolRegistry + dispatch behind t…
cemililik Jun 13, 2026
70e4442
fix(core): harden the 1.N run loop against store faults (review findi…
cemililik Jun 13, 2026
2ed5d03
fix(core): close the gate-pause persist-failure zombie + reconcile/te…
cemililik Jun 13, 2026
7e07e0e
style(core): apply Prettier to the 1.N engine sources
cemililik Jun 13, 2026
1cfa68a
fix(core): fold the round-1 adversarial review findings on 1.T (secur…
cemililik Jun 13, 2026
980dadf
fix(core): fold the round-2 (Sonnet) re-audit findings on 1.T
cemililik Jun 13, 2026
313b9b6
style(core): apply Prettier to the 1.T tool-registry sources
cemililik Jun 13, 2026
191f8e1
fix(core): address PR-17 review findings on 1.N (run loop)
cemililik Jun 13, 2026
cbfcef4
fix(core): address PR-17 review findings on 1.T (tools)
cemililik Jun 13, 2026
d5ad39f
fix(core): address second PR-17 review batch (1.N + 1.T + docs)
cemililik Jun 13, 2026
6ec6eb3
fix(core): harden delivery ordering + close pre-merge coverage gaps (…
cemililik Jun 13, 2026
bb1b821
docs(core): correct egress-normalizer milestone ref + schema-authorit…
cemililik Jun 13, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 4 additions & 2 deletions CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -48,8 +48,10 @@ ADR-0030 seam-shape amendment — and the **ADR-0031 multimodal seam-shape amend
reserved generator methods, shape-only, landed before the seam's exhaustive consumers. The
`FallbackChain` runner (1.K, PR #13) is now landed and fully covered. The
[`@relavium/core` engine](docs/roadmap/phases/phase-1-engine-and-llm.md) lane has since landed the
**`WorkflowYAMLParser` (1.L, PR #14)** and the **`{{ … }}` interpolation engine + parse-time secret-taint
gate (1.L2, PR #15)**; active work continues with the **DAG builder + `RunPlan` (1.M)**; see
**`WorkflowYAMLParser` (1.L, PR #14)**, the **`{{ … }}` interpolation engine + parse-time secret-taint
gate (1.L2, PR #15)**, and the **DAG builder + `RunPlan` (1.M)** plus the **QuickJS-wasm expression
sandbox (1.AB)** (PR #16, 2026-06-13); active work continues with the **run loop — `WorkflowEngine` +
`RunEventBus` (1.N)**; see
[docs/roadmap/current.md](docs/roadmap/current.md). See [README.md](README.md) for the public overview.

## Non-negotiable rules for AI agents
Expand Down
7 changes: 4 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,8 +38,9 @@ vendor type crossing it (PR #7–#9), followed by the **ADR-0031 multimodal seam
reserved generator methods, landed **shape-only** before the seam's exhaustive consumers exist
(PR #11, 2026-06-10). The seam's last policy layer — the `FallbackChain` runner (1.K) — then landed
(PR #13, 2026-06-11), completing the LLM lane. The `@relavium/core` engine lane has since landed the
**`WorkflowYAMLParser`** (1.L, PR #14) and the **`{{ … }}` interpolation engine + parse-time
secret-taint gate** (1.L2, PR #15) — both with zero platform imports. Next on the critical path: the
**DAG builder + `RunPlan`** (1.M), then the run loop, checkpoint/resume, and retry, plus the
**`WorkflowYAMLParser`** (1.L, PR #14), the **`{{ … }}` interpolation engine + parse-time
secret-taint gate** (1.L2, PR #15), and the **DAG builder + `RunPlan`** (1.M) together with the
**QuickJS-wasm expression sandbox** (1.AB) (PR #16, 2026-06-13) — all with zero platform imports.
Next on the critical path: the run loop (1.N), then checkpoint/resume and retry, plus the
**AgentSession** runtime + export-to-workflow sub-spine. See
[docs/roadmap/current.md](docs/roadmap/current.md) for live status.
12 changes: 10 additions & 2 deletions docs/architecture/execution-model.md
Original file line number Diff line number Diff line change
Expand Up @@ -138,10 +138,18 @@ After every node completes, the engine writes a checkpoint to local SQLite — r
status, per-node states, completed and pending node IDs, and (for an orchestrator)
its message history. This is the foundation for resume and retry; see
[shared-core-engine.md](shared-core-engine.md#checkpoint-and-resume). There is **no separate
checkpoint table** — the checkpoint is reconstructed (by a `Checkpointer`) from `step_executions`
+ `run_events` (+ `messages` for an orchestrator's history), all defined in
checkpoint table** — the checkpoint is reconstructed (by a `Checkpointer`) from `step_executions`,
`run_events` (and `messages` for an orchestrator's history), all defined in
[../reference/desktop/database-schema.md](../reference/desktop/database-schema.md).

Three run-loop substrate rules make this reliable ([ADR-0036](../decisions/0036-run-loop-substrate-event-bus-and-execution-host.md)):
a node-boundary / terminal event is **persisted before it is delivered** to consumers, so a crash
between emit and write can never re-run a completed node or lose its output; the
**monotonic, gap-free `sequenceNumber` is assigned at a single producer-side point** (one counter per
run/session), so concurrent fan-out branches cannot duplicate or invert numbers; and gate / run
`timeout_ms` deadlines are armed as **one-shot timers from an injected clock — not a sleep/poll loop**,
so the completion-driven scheduler stays event-driven.

### 6. Finish

On the last node the engine writes the final output and a cost record to SQLite,
Expand Down
7 changes: 4 additions & 3 deletions docs/architecture/shared-core-engine.md
Original file line number Diff line number Diff line change
Expand Up @@ -85,9 +85,10 @@ The artifact contracts it consumes and produces live in
[../standards/architectural-principles.md](../standards/architectural-principles.md).) See
[../reference/shared-core/built-in-tools.md](../reference/shared-core/built-in-tools.md)
and [../reference/shared-core/mcp-integration.md](../reference/shared-core/mcp-integration.md).
- **`RunEventBus`** — an `EventEmitter` that carries the typed run events
surfaces subscribe to. The event contract is the
[SSE event schema](../reference/contracts/sse-event-schema.md).
- **`RunEventBus`** — an in-house, **platform-free** typed event bus (pub/sub) over the `RunEvent`
union that surfaces subscribe to. It is built in `packages/core`, **not** Node's `node:events` (the
engine has zero platform imports — [ADR-0036](../decisions/0036-run-loop-substrate-event-bus-and-execution-host.md)).
The event contract is the [SSE event schema](../reference/contracts/sse-event-schema.md).

## YAML → DAG compilation

Expand Down
Loading
Loading