Skip to content

feat(cli): orch8 dev — ephemeral engine with hot reload and virtual time#70

Merged
ovasylenko merged 4 commits into
mainfrom
feat/orch8-dev
Jun 10, 2026
Merged

feat(cli): orch8 dev — ephemeral engine with hot reload and virtual time#70
ovasylenko merged 4 commits into
mainfrom
feat/orch8-dev

Conversation

@ovasylenko

Copy link
Copy Markdown
Contributor

Summary

Item #9 from docs/FEATURE_OPPORTUNITIES.md, the last one: orch8 dev [path] — the local dev loop. Starts an ephemeral in-process engine (in-memory SQLite via the orch8 facade crate — dogfooding the public API), loads sequence.json (or --sequence <file>), creates an instance, and drives fast ticks with live step-by-step output.

  • --skip-timers: injects a ManualClock (facade builder gained .clock(...)); when a tick is idle but the instance has a future next_fire_at, the clock advances to it. A workflow with a 3-day delay completes in milliseconds — verified by running the binary:
    09:31:54.003 ⏩ clock advanced to 2026-06-13 09:31:55 UTC
    09:31:54.004 ✓ wait  noop
    ── instance completed ── 3 step(s), 0.0s elapsed
    
  • Hot reload: zero-dep mtime poll; valid changes upsert a NEW immutable version + fresh instance ("reloaded vN" banner), invalid JSON prints the error and keeps the old version running.
  • --mock handler='{json}' (repeatable) registers stub handlers; failing steps print a hint naming the unregistered handler. --dry-run flows to the instance flag (facade CreateInstanceOptions extended). --once exits 0/1 on completed/failed for CI smoke use. Ctrl-C shuts down gracefully with a session summary.

Tests

24 new tests in the dev module (mock parsing, sequence loading/invalid-JSON, mtime-poll reload detection, next_advance_target pure-function logic, skip-timers e2e through the facade: delayed sequence completes near-instantly). cargo test -p orch8-cli -p orch8: 61 passed. fmt/clippy(pedantic)/doc/check gates clean. Binary smoke-tested manually.

🤖 Generated with Claude Code

@ovasylenko ovasylenko merged commit 689f44f into main Jun 10, 2026
3 checks passed
@ovasylenko ovasylenko deleted the feat/orch8-dev branch June 10, 2026 09:32
ovasylenko added a commit that referenced this pull request Jun 10, 2026
… 16 features shipped

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
ovasylenko added a commit that referenced this pull request Jun 10, 2026
… timeline+fork, streaming, AP triggers, OTLP, dashboard (#63-#70)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant