Repository navigation
0.14.0 — 2026-05-14
Release Notes
v0.14.0 closes out the unified envelope API (#438): a single
RunStreamItem stream in pitboss-core::stream is now the canonical
read path for live + historical run state across CLI, TUI, and web.
The dispatcher accepts subscriber-mode client handshakes so multiple
read-only viewers (web SPA in two tabs, TUI mirror, a future pitboss tail) coexist on one run without displacing each other or the writer.
Op replies moved to the broadcast bus, which unblocks the web SSE
cutover and lands op replies in events.jsonl for post-run audit.
The [communication] plane now journals every mailbox / artifact
mutation to <run-dir>/communication/messages.jsonl; pitboss resume
rehydrates the pre-crash mailbox + artifact metadata + per-actor
activity counters so the resumed lead doesn't come back blind (#282).
A new run-wide audit log lands at <run-dir>/audit.jsonl (#414) —
every per-actor TaskEvent row tee'd into one chronological file with
actor_id attribution. Query via pitboss audit <run-id> (filters:
--actor, --kind, --since, --reason-kind) or GET /api/runs/:id/audit with the same surface as query params.
Highlights:
- Unified envelope API (#438) —
open_run_stream(StreamMode::ReplayThenLive)collapses the per-surface readers inpitboss-cli,pitboss-tui, andpitboss-web. PR-A through PR-Q close the arc. - Subscriber-mode handshakes (#438, PR-P) —
ControlOp::Hello { mode: ClientMode }lets multiple read-only consumers coexist with one writer on a run's control socket. - Communication-plane resume (#282) —
messages.jsonljournal + replay inCommunicationStore::newsopitboss resumedoesn't lose pre-crash mailbox state. - Aggregated audit log (#414) —
<run-dir>/audit.jsonl+pitboss auditCLI +GET /api/runs/:id/auditweb endpoint with--actor/--kind/--since/--reason-kindfilters.
Added
- Per-run aggregated audit log + pitboss audit CLI + /api/runs/:id/audit (#470)
- Persist mailbox + activity to messages.jsonl for resume (#469)
- Web SSE bridge cutover to unified envelope API (#438, PR-Q) (#467)
- Subscriber-mode client handshake for multi-consumer streams (#438, PR-P) (#466)
- Live-socket transport for unified consumer API (#438, PR-N) (#464)
- SPA Replay tab for persisted events.jsonl (#259, PR-K) (#454)
- Pitboss events prints persisted control-event stream (#259, PR-J) (#461)
- GET /api/runs/:id/events-jsonl serves persisted envelopes (#259, PR-I) (#452)
- Persistent events.jsonl bus subscriber (#259, PR-H) (#451)
- Events.jsonl writer + run-scoped seq counter (#259, PR-G) (#460)
- Tail_run_stream — continuous disk-tail mode (PR-E of #438) (#458)
- Live-side cutover to unified consumer (PR-D of #438) (#457)
- Live + historical unified consumer (PR-C of #438) (#456)
- Dispatcher-assigned seq on EventEnvelope (PR-B of #438) (#445)
- Unified run-stream foundation (PR-A of #438) (#444)
- Notify-driven watcher with periodic safety net (#441)
- Incremental tail reader for summary.json[l] (#440)
- Canonical summary.json[l] reader for TUI/web/CLI (#439)
- Track lead+sublead token spend against budget_usd (#434)
Changed
- Route status + diff through unified replay stream (#438, PR-M) (#463)
- Rewire watcher onto tail_run_stream (PR-F of #438) (#459)
Dependencies
- Bump the rust-minor-and-patch group across 1 directory with 4 updates (#442)
- Bump sha2 from 0.10.9 to 0.11.0 (#278)
Fixed
- Show in-progress children in graph inspector (#468)
- Build pitboss-web SPA before dist build + cargo test (#436)
- Close out sub-lead's own worker-row on termination (#432)
- Exclude host user-scope claude settings inside containers (#430)
- Dedupe summary.jsonl rows by task_id (run-view tabs crash) (#429)
- Wrap connect timeout in async block (panic on launch) (#428)
- Pr-gate stops requiring test job on docs-only PRs (#424)
pitboss-tui 0.14.0
Install pitboss-tui 0.14.0
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/SDS-Mode/pitboss/releases/download/v0.14.0/pitboss-tui-installer.sh | shInstall prebuilt binaries via Homebrew
brew install SDS-Mode/pitboss/pitboss-tuiDownload pitboss-tui 0.14.0
| File | Platform | Checksum |
|---|---|---|
| pitboss-tui-aarch64-apple-darwin.tar.xz | Apple Silicon macOS | checksum |
| pitboss-tui-aarch64-unknown-linux-gnu.tar.xz | ARM64 Linux | checksum |
| pitboss-tui-x86_64-unknown-linux-gnu.tar.xz | x64 Linux | checksum |
pitboss-web 0.14.0
Install pitboss-web 0.14.0
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/SDS-Mode/pitboss/releases/download/v0.14.0/pitboss-web-installer.sh | shInstall prebuilt binaries via Homebrew
brew install SDS-Mode/pitboss/pitboss-webDownload pitboss-web 0.14.0
| File | Platform | Checksum |
|---|---|---|
| pitboss-web-aarch64-apple-darwin.tar.xz | Apple Silicon macOS | checksum |
| pitboss-web-aarch64-unknown-linux-gnu.tar.xz | ARM64 Linux | checksum |
| pitboss-web-x86_64-unknown-linux-gnu.tar.xz | x64 Linux | checksum |
pitboss-cli 0.14.0
Install pitboss-cli 0.14.0
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/SDS-Mode/pitboss/releases/download/v0.14.0/pitboss-cli-installer.sh | shInstall prebuilt binaries via Homebrew
brew install SDS-Mode/pitboss/pitboss-cliDownload pitboss-cli 0.14.0
| File | Platform | Checksum |
|---|---|---|
| pitboss-cli-aarch64-apple-darwin.tar.xz | Apple Silicon macOS | checksum |
| pitboss-cli-aarch64-unknown-linux-gnu.tar.xz | ARM64 Linux | checksum |
| pitboss-cli-x86_64-unknown-linux-gnu.tar.xz | x64 Linux | checksum |