Back to docs

Roots Release Notes

Changelog and release history for the Roots orchestration framework.

On this page

Back to Roots Docs


#0.1.1 — 2026-06-25

A fix release so iterator and subprocess nodes can read values that are nested under an agent’s output_key. When an agent node stores its result under output_key, the whole output dict lives one level down; iterator and subprocess nodes previously read run state by exact top-level key only, so a nested list hard-failed and nested mapped values were dropped from child runs.

#Added

  • Dotted-path state keys — iterator items_key / input_mapping and subprocess input_mapping accept dotted paths (e.g. epic_plan.stories, epic_plan.project_dir) that walk nested run state. A key with no dots is an ordinary top-level lookup, so existing processes are unaffected.

#Fixed

  • Iterator items_key no longer fails when the list is nested under an output_key, and iterator/subprocess input_mapping no longer silently drops values nested under an output_key from child runs.

#Changed

  • Iterator input_mapping now raises on an unresolved key instead of silently skipping it, matching the subprocess path’s fail-loud behavior — a mis-wired mapping key surfaces immediately.

#0.1.0 — 2026-06-14

The first public release of Roots — an AI-native process orchestration framework. Define multi-step, multi-agent workflows as YAML directed graphs and run them on a crash-safe orchestrator. Published to PyPI as rootsflow (import name roots).

#Added

  • YAML process graphs — 10 node types (agent, agent_pool, decision, checkpoint, fork, join, emit, end, iterator, subprocess) and 4 decision modes (deterministic, ai_bounded, ai_checkpoint, ai_autonomous), validated with Pydantic v2.
  • Crash-safe orchestrator — a tick-based engine persists run state after every node. Fork/join and parallel agent pools checkpoint each branch to storage and resume only incomplete work after a restart.
  • Process compositionsubprocess nodes call other processes as child runs; iterator nodes fan a subprocess out over a list, both with depth limits and cycle detection.
  • Pluggable storage — SQLite by default, PostgreSQL for production, behind a single StorageBackend protocol.
  • Agent registry — local Python callables, remote HTTP agents, and MCP tools, with SSRF-validated outbound calls.
  • Events & subscriptions — webhooks, bounded-buffer emission, and on / once / wait_for callback subscriptions.
  • Root packaging — bundle a process and its agents into a portable .root archive (roots pack / roots install).
  • HTTP API & CLI — a full FastAPI surface and a roots command-line tool (serve, run, validate, pack, install, status).
  • Optional API authentication — set ROOTS_API_KEY to require an X-API-Key header on all data routes; the server binds 127.0.0.1 by default.
  • Typed end-to-end — ships a py.typed marker and is strict-pyright clean.

#Notes

  • Roots is beta (0.x). The HTTP API is unauthenticated by default; do not expose it to untrusted networks without ROOTS_API_KEY or a proxy. See the security note.