Skip to content

Releases: robot-council/cli

v0.4.32 — A Stop Hook That Says When It Cannot Read the Sink

Choose a tag to compare

@joshdaugherty joshdaugherty released this 29 Sep 21:40
1b34fe6

The stop hook now says when it cannot read the sink, and reads the sink key its bridge recorded, so a slow git no longer splits the two.

Upgrading:

  • Replace each machine's copy of the stop-hook script with this version's resources/stop-hook/robot-council-stop-hook. #348 changed it: when pending exits 3 because the sink exists and could not be read, the script now tells the agent so, instead of ending the turn as though the fleet were quiet. An older copy keeps working, but it treats that case as a quiet fleet, so events can sit unannounced. The new script needs cli v0.4.31 or later.
  • Restart each Claude Code seat's bridge after upgrading. A bridge records its sink key only from this version, so a seat whose bridge started earlier keeps resolving the key on its own, as before, until it restarts.

What's fixed

  • Say so when pending cannot read the sink, rather than print nothing #348
  • Record the bridge's sink key so its stop hook reads the same sink, however git answers #349

Maintenance and tooling

  • State who may cut a release, and when, in the repository's own rules #351
  • Pin that a sink marked delivered stops a channel notice from repeating #347

v0.4.31 — Cursor Seats Stay Joined, a Leave Tool, and Events That Survive a Killed Hook

Choose a tag to compare

@joshdaugherty joshdaugherty released this 29 Sep 05:54
f721c8c

A Cursor seat stays on the fleet through Cursor's reloads, an agent can take its session off the fleet with leave, and a stop hook killed at its timeout no longer loses the fleet's events.

Upgrading:

  • Replace each machine's copy of the stop-hook script from this version (resources/stop-hook/robot-council-stop-hook). It now calls robot-council pending --format, so no second process stands between delivery and the harness. An older copy keeps working, with a wider window in which a killed hook loses events. The new script needs cli v0.4.31 or later.
  • Sink delivery is now at least once, so an event can arrive twice by design: when a hook is killed after printing and before it marks the events delivered, the next turn end prints them again. Treat a directive as a request to reach a state, and check whether that state already holds before acting on it.
  • For Cursor, restart the bridge (reload Cursor) after installing, so it runs this version.

What's new

  • Let an agent take its session off the fleet with a leave tool #338
  • Rejoin a restarted Cursor bridge under the application that joined, and otherwise tell the operator #337

What's fixed

  • Deliver sink events at least once, removing them at the next turn end rather than before printing #342

Maintenance and tooling

  • Give the CI tests job twenty minutes, which the Windows cells had outgrown #340

v0.4.30 — An Agent Hears Its Capacity Change

Choose a tag to compare

@joshdaugherty joshdaugherty released this 28 Sep 21:09
65cf964

A running agent now hears when its seat's capacity is raised or lowered, without rejoining.

What's new

  • Tell an agent when its seat capacity changes after it joins #334

v0.4.29 — The Wiki Becomes the Documentation

Choose a tag to compare

@joshdaugherty joshdaugherty released this 26 Sep 05:29
68e62c7

The wiki becomes the documentation for the command line, and the README an overview that links to it.

Maintenance and tooling

  • Cut the README to an overview, now that the wiki holds the documentation #331

v0.4.28 — A Cursor Seat Hears the Fleet Again

Choose a tag to compare

@joshdaugherty joshdaugherty released this 26 Sep 04:21
42d27f9

A Cursor seat hears the fleet again. From v0.4.23, its stop hook read a different sink from the one its bridge wrote, so a Cursor seat received no fleet events at all. This release also adds two things. A bridge started in a checkout that already has one now warns. And a session can declare how many tasks it will hold at once.

Upgrading a Cursor seat: run robot-council upgrade, then reload Cursor's MCP servers. Events a Cursor bridge had already written to the old sink are not delivered: both the bridge and its hook move to the new key, and the old file stays where it is.

What's new

  • Warn when a second bridge starts in a checkout whose event sink is already held #322
  • Declare a parallel capacity on join, from --capacity and the join tool #325

What's fixed

  • Key a Cursor seat's sink without the checkout, so its stop hook finds its bridge's events #328

v0.4.27 — Addressed Narration Reaches Its Seat

Choose a tag to compare

@joshdaugherty joshdaugherty released this 25 Sep 22:45
03df227

A narration addressed to a session now reaches it. The fleet's coordinator answers a seat with a narration addressed to it by meta.to or meta.to_tasks, and until now the bridge discarded every narration, so those replies went unseen until the seat happened to read the feed itself. Narration addressed to nobody, or to other sessions, is still kept out.

What's fixed

  • Deliver a narration addressed to a session to its sink, so a coordinator's reply is seen #316

v0.4.26 — Adding a Cursor Seat

Pre-release

Choose a tag to compare

@joshdaugherty joshdaugherty released this 25 Sep 22:08
b607b00

The README's Cursor wiring section now notes that on macOS the launcher needs php on the PATH Cursor inherits, and that whether a Cursor started from the Dock gets it has not been measured. The operator's guide on the wiki now covers adding a Cursor seat, and describes this release line.

Maintenance and tooling

  • Note the macOS php precaution for a Cursor seat in the README #311

v0.4.25 — Quieter Reads Through `api`

Pre-release

Choose a tag to compare

@joshdaugherty joshdaugherty released this 25 Sep 21:13
5d35602

A read through robot-council api now starts an ephemeral session. This is the client half of keeping a loop of reads from filling the fleet feed with a join and an end for every call. The fleet stops announcing those sessions once robot-council/core#424 ships. Until then a read behaves as before, because a service that does not know the flag ignores it. A call that can change something still starts an ordinary session and ends it.

What's fixed

  • Start an ephemeral session for a read through robot-council api #310

v0.4.24 — Reading the Feed Without a Stop Hook

Choose a tag to compare

@joshdaugherty joshdaugherty released this 25 Sep 20:40
63abb28

A Claude Code seat with no stop hook now hears the fleet. Before this, the bridge told every woken agent to end its turn and let the stop hook deliver the events, and on a machine with no hook nothing did. The bridge now checks for a hook at start. Without one, it tells the agent to read the feed itself and stops repeating a notice once the agent has. It logs which case applied.

What's fixed

  • Tell an idle Claude Code agent to read the feed itself when the bridge finds no stop hook #307

v0.4.23 — Each Checkout Its Own Sink

Pre-release

Choose a tag to compare

@joshdaugherty joshdaugherty released this 25 Sep 19:23
01b1710

Sessions on one machine no longer take each other's fleet events. Before this, every session launched from one user-level harness configuration shared one event sink, and the first stop hook to run took everyone's events. Each checkout now has its own sink. Events already waiting in the old shared sink are not delivered after upgrading. A seat that names --project keeps its sink as it was.

What's fixed

  • Give each checkout its own fleet-event sink, so sessions on one machine stop taking each other's events #303