Terraphim AI 1.21.3 puts the agent orchestrator back in the build and fixes agent spawns

2 hours ago

Terraphim AI 1.21.3 is a patch release for running agents. The orchestrator compiles with the rest of the workspace again. And native agents start more reliably: each one gets its working directory before it launches, and a child process that exits before reading its prompt no longer fails the spawn.

Ask about this presentation

Chapters

  1. 0:00Terraphim AI 1.21.3
  2. 0:21Orchestrator re-included
  3. 0:43Working directory before spawn
  4. 1:04Early exit is not a failed spawn
  5. 1:23Tests and CI
  6. 1:46TinyClaw tools
  7. 2:09Apple Container backend
  8. 2:30Before you upgrade
  9. 2:54Get 1.21.3
Show transcript
  1. Terraphim AI 1.21.3 is a patch release for running agents. The orchestrator compiles with the rest of the workspace again. And native agents start more reliably: each one gets its working directory before it launches, and a child process that exits before reading its prompt no longer fails the spawn.

    Slide text
    Terraphim logo

    terraphim-ai · v1.21.3 · patch

    The agent orchestrator is back in the build

    Agents get their working directory before they start, and an early exit no longer fails the spawn.

  2. Before this release, the workspace excluded the orchestrator crate, and its manifest pointed at local paths for crates that had since been extracted. Version 1.21.3 drops that exclusion and points six of them, router and types among them, at the Terraphim registry, version 1.20.2. A workspace build compiles it again.

    Slide text
    terraphim-ai v1.21.3 Fixed

    terraphim_orchestrator builds with the workspace again

    Cargo.toml · workspace exclude list "crates/terraphim_orchestrator",
    crates/terraphim_orchestrator/Cargo.toml terraphim_router = { path = "../terraphim_router", version = "1.0.0" } terraphim_router = { version = "1.20.2", registry = "terraphim" }
    Also repointed: types · tracker · automata · persistence · agent_evolution
  3. This fix unblocked CI. The orchestrator relied on creating its log directory to also create the agent's working directory. When the log directory sits beside it instead of inside it, the working directory isn't created, and the validator rejects the spawn. Now the orchestrator creates it explicitly first, and logs a warning if that fails.

    Slide text
    terraphim-ai v1.21.3 Fixed

    Each agent's working directory now exists before it spawns

    Log directory created before every spawn created
    Working directory created only when the log directory sat inside it before: missing, spawn rejected
    crates/terraphim_orchestrator/src/spawn_impl.rs if let Err(e) = std::fs::create_dir_all(&agent_working_dir) { warn!(… "failed to create agent working dir"); }
  4. If a short-lived command line tool exits before reading its prompt from standard input, writing the prompt hits a broken pipe, and the spawner used to fail the whole launch. Now that broken pipe is logged at debug level and early-exit detection takes over. Other write errors still fail the spawn.

    Slide text
    terraphim-ai v1.21.3 Fixed

    An agent that exits before reading its prompt still counts as spawned

    A short-lived CLI tool can exit before it reads stdin.

    The spawner now logs the broken pipe and lets early-exit detection handle it.

    crates/terraphim_spawner/src/lib.rs if let Err(e) = stdin.write_all(…).await { if e.kind() != ErrorKind::BrokenPipe { return Err(SpawnError(…)); } debug!("child exited before consuming stdin"); }
  5. The routing golden tests used to insist that the planning tier picks Anthropic and an Opus model. They now check that each tier resolves some provider and model, so moving a tier to another vendor doesn't break them. The native CI workflow now also runs on pull requests. Six Clippy lints that failed it are fixed, and the review test matches its new two-argument signature.

    Slide text
    terraphim-ai v1.21.3 Validation

    Routing tests now check that a provider resolves, whichever vendor it is

    kg_router.rs golden tests

    assert_eq!(d.provider, "anthropic"); assert!(d.model.contains("opus")); assert!(!d.provider.is_empty(), …); assert!(!d.model.is_empty(), …);

    .gitea/workflows/native-ci.yml

    on: push: pull_request: workflow_dispatch:

    Six Clippy lints fixed, and the author_is_agent test updated to its two-argument signature.

  6. The source at this tag also gives TinyClaw five new tools: a memory bridge to the Terraphim agent, a code sandbox, subagents, a browser and a cron scheduler. Each has its own config section, and each stays off until you set enabled to true. The browser can navigate, extract and call APIs; click, type and screenshot aren't supported yet.

    Slide text
    terraphim-ai v1.21.3 Also in this tag · terraphim_tinyclaw

    TinyClaw gains five tools, each off until you enable it

    memory

    Bridge to terraphim-agent memory and learning

    [memory] enabled = false

    sandbox

    Run code and shell in RLM

    [sandbox] enabled = false

    subagent

    Spawn, list, collect and terminate

    [subagent] enabled = false

    browser

    Navigate, extract, call APIs

    [browser] enabled = false

    scheduler

    Cron jobs, plus a schedule CLI

    [scheduler] enabled = false

    Set TERRAPHIM_LLM_PROXY_URL and TinyClaw's OpenAI-compatible proxy forwards requests upstream; unset, it keeps its echo stub.

  7. The RLM sandbox also gains a backend built on Apple's container tool, which starts one lightweight Linux VM per container. In the default order it comes after E2B and ahead of Docker. It needs macOS 26 on Apple silicon, and you install and start the container service yourself; Terraphim doesn't start it for you.

    Slide text
    terraphim-ai v1.21.3 Also in this tag · terraphim_rlm

    On Apple silicon, RLM can run each session in its own lightweight Linux VM

    Firecracker → E2B → Apple Container → Docker → Local
    You run these once; Terraphim never doesbrew install container container system start

    Needs macOS 26 on an Apple silicon Mac. Each session gets 1 CPU and 512M of memory by default.

  8. The notes list no migration steps, but check three things. If you build from source, the core types and automata crates now resolve at 1.20.2 from the Terraphim registry, because 1.20.4 is yanked there. On an Apple silicon Mac with the container service running, RLM now prefers it over Docker. And the workspace version moves to 1.21.3.

    Slide text
    terraphim-ai v1.21.3 Before you upgrade

    No migration steps; three things to check

    Building from source terraphim_types and terraphim_automata resolve at 1.20.2 from the terraphim registry, because 1.20.4 is yanked there.
    RLM on Apple silicon With the container service running, the default order picks Apple Container before Docker. Set backend_preference to choose.
    Checking the version The workspace version moves from 1.21.0 to 1.21.3, and the tag workflow checks terraphim_server --version before building artifacts.
  9. One limit: these fixes live in the orchestrator and the spawner, so they matter most if you run agents through the orchestrator. The canonical source lives on Gitea, and the same tag is mirrored to GitHub, where the release page carries these notes. The orchestrator is back in the build, and agents start more reliably.

    Slide text
    terraphim-ai v1.21.3 Get it

    The orchestrator is back in the build, and agents start more reliably

    The fixes live in terraphim_orchestrator and terraphim_spawner, so they matter most if you run agents through the orchestrator.

    SourceCanonical on Gitea. The v1.21.3 tag is mirrored to GitHub at the same commit.
    github.com/terraphim/terraphim-ai
    /releases/tag/v1.21.3

What happened in AI today, in your inbox

One short email each evening. Read it and you’re caught up.

Built in New York with ❤️