Skip to content

atrium 0.39.0

Choose a tag to compare

@JSBtechnologies JSBtechnologies released this 07 Oct 17:01
· 25 commits to main since this release
1a7bd87

The mod release. atrium now carries a Claude Code plugin of function hooks
inside its binary; atrium mod install writes it out once, and every claude
pane atrium spawns loads it for that session only. With the mod in the engine,
three things atrium used to infer from the transcript become certain (a pane's
status, its context fill and cost, the text of its answers), sends and wakes
stop being keystrokes, the control plane becomes typed tools, and a subagent is
a pane the human can see. Nothing changes for a pane that has no mod: the
inference and the pty path stay as they were. Six new ctl verbs carry it.

Install or upgrade with cargo install atrium, then run atrium mod install
once; atrium fleet up says in its preflight whether the mod is installed.

Added

  • The mod: a Claude Code plugin in every claude pane. atrium mod install
    writes a plugin of function hooks out of atrium's binary; every claude pane
    atrium then spawns loads it (CLAUDE_CODE_PLUGIN_DIRS, with ATRIUM_BIN
    naming the atrium to call). Inside the engine it reports the pane's status
    the moment it changes (working, waiting-approval with the tool as the
    reason, waiting-prompt, idle, errored, ended), its context fill and
    cost, and the text of each answer, over the control channel with the pane's
    own token. A reported status wins over the transcript inference for two
    minutes; errored draws the border red with a ! badge and the overview
    shows ctx 41% $0.12 per agent. atrium mod status says what is installed;
    "mod": false in config.json or a fleet keeps it out.
  • New ctl verbs hello, report, whoami, inbox, answer and wait:
    the first four are what the mod speaks and are about the caller only (a
    target is refused); answer reads a pane's last reported answer up the
    spawn tree, and wait polls for it, for idle, or for exit.
  • Native delivery. A pane whose mod declared inbox is never typed into:
    ctl sends and bus wakes wait in the queue until the mod collects them and
    submits each through the engine's own prompt queue, which starts a turn only
    when the session is idle. A task may span lines; a pane without the mod
    keeps the pty path.
  • Typed control-plane tools. With the mod, a claude pane has
    atrium_spawn, atrium_send, atrium_status, atrium_list, atrium_kill,
    atrium_board_* and atrium_bus_* as tools; each call is one atrium ctl
    run, and an ask for one of them is answered by the mod, never a dialog.
  • The role section and the file guard. The mod appends an atrium:role
    section to the system prompt from whoami (pane, role, parent, mode, item,
    owned files, worktree, whether it may spawn) and refuses an Edit, Write
    or NotebookEdit outside the item's files, by real path, naming the owner.
  • The /atrium pane, the decisions band, and respawn_at. Inside Claude
    Code, /atrium opens a pane with the open decisions (resolve buttons with
    hotkeys), the board and the last bus events; a band above the prompt counts
    open decisions. Fleet key respawn_at: <pct>: a pane whose context fill
    crosses it while idle gets one decision posted to its parent on the atrium
    topic, never a respawn by itself.
  • Subagents as visible panes. atrium_subagent spawns a claude pane beside
    the caller, sends it the task, waits for the answer its mod reports, closes
    the pane unless kept, and returns the answer; the model's Agent tool is
    refused with a pointer to it. Fleet keys subagents (panes | native |
    deny) and subagents_keep; config key mod; ATRIUM_MOD names the
    mod's folder. The fleet preflight states the mod's line and warns when claude
    panes would load none.