Repository navigation
borg 0.5.0
The first release on crates.io (0.4.0, 0.3.0 and 0.2.0 were never published: 0.4.0's notes are
part of this section, and those of 0.3.0 and 0.2.0 below are history). borg keeps the shared memory:
lessons from corrections, checked against the work and shared with a team. The hive and playbooks are gone; sessions talk to each other instead, on any
harness and across machines, and steering is part of that channel. Every crate is 0.5.0 and pins the
others =0.5.0. The release steps are in CONTRIBUTING.md.
Added
borg --version,borg -Vandborg versionprintborg <version>;borg-meshandborg-webtake
--versionand-Vtoo (borg-webno longer starts its server on an unknown--version).- Messages between sessions:
borg tell <to> "<text>",borg ask <to> "<question>"andborg inbox.
A session on any harness, or the engineer's terminal, writes to a drone (asborg topnames it), a
session (<session>@<node>across machines),allor the engineer. The recipient sees each message
once, at its next prompt or tool call, as peer data with the command that replies. Messages are
redacted, limited to one per sender and recipient every 10 minutes, kept 7 days and synced with the
team collective. Stats countmsg_sent,msg_deliveredandmsg_dropped;borg webshows them. borg listenwakes an idle session when a message arrives for it, untilborg listen --offor the
session's end. On Claude Code the stop asks the model to runborg listen --waitin the background;
the omp and opencode adapters keepborg listen --streamrunning and send each wake in as a new turn;
on codex a detachedborg listen --queuequeues one withcodex queue. A wake names the senders and
the count, never the text. Nothing wakes a session during the engineer's own turn; on codex, the
Interrupthook the hive used now ends that hold at once on an Esc.borg topshows a WAKE
column.
Changed
borg tell,borg ask,borg pauseandborg resume localreach this machine's sessions;
collective(orall) the whole collective; a name prefers a session on this machine.localis
writtenlocal@<node>, never syncs and counts only on a line of that node;collectiveandall
are writtenall, as before. A drone or session prefix that matches here and on a member's machine
names the one here; a member's session is reached when nothing here matches, by<session>@<node>,
or as the sender a reply answers. Aborg resume localwarns when a collective pause sent from here
still holds on the members' machines.borg top,borg inboxand borg web name the recipient
localorcollective, and the borg skill asks this machine's sessions first.- Steering is now messages:
borg pause <to> [note]andborg resume <to> [note], andborg noto a
drone on another machine sends a veto message. Every harness shows them at the next prompt or tool
call, not only Claude Code. One from another machine counts only when the mesh admits its sender as
anadminorsteermember. The rate limit never holds them back.borg steeris removed: use
borg pause,borg resume, orborg tellfor an instruction. Stats keepsteer_issued,
steer_delivered,steer_droppedandpause_refused. - The mesh protocol is
borg/mesh/13. A member built from 0.3.0 sources (borg/mesh/12) still syncs
everything except messages; older members do not sync, andborg doctornames them. - The documentation was checked against the code: the README, the command, configuration, harness,
team and statistics references, the adapter READMEs and the borg skill describe messages, pause and
borg listen, and the mesh figures no longer show the old steering. - Releases are made locally with
scripts/release.sh X.Y.Z, as in libpetri: it runs the gate,
publishes the crates to crates.io, then tags and creates a draft GitHub release. A pushed tag no
longer publishes anything; the release workflow only builds the tarballs, attaches them and
publishes the draft.
Removed
- The hive:
borg hiveandborg debug hive, interactive drones, and goals with their boards, claims,
verify tasks, oracles, integration, contracts and plans. The Hive tab ofborg web, the goal sections
ofborg top, and theBORG_HIVE*,BORG_GROUP_REFLECTandBORG_REWORK_REFLECTvariables go with
it. Messages between sessions replace it. Plain sessions, lessons,borg noand team sync
work as before.borg installremoves the Claude CodeSessionStarthook only the hive used. An old
store'shive/directory is no longer read;borg doctornames it and the command that removes it. - Playbooks are removed: no playbook was ever promoted, and lessons already cover mistakes of procedure.
A clean session no longer proposes a playbook edit, no prompt shows one, andborg queenasks no
playbook question. The Playbooks tab ofborg web,/api/playbooks, theplaybook_*statistics and
BORG_PLAYBOOKSgo with them. An old store'splaybooks.jsonl,playbooks-reflected.txtand
playbooks-plain.txtare no longer read or synced, and an old queued playbook question is skipped;
borg doctornames the files and the command that removes them. The mesh protocol staysborg/mesh/13: a session still steps
through the playbooks' log and keeps nothing an older member offers there.