json_prints_only_json_and_never_asks_brokerd failed once under load: the helper wrote the typed
input to a `bxctl chat --json` that never reads stdin and had already exited, and unwrapped the
broken pipe. A broken pipe on that write is now accepted; any other error still fails the test,
and a test whose input must be read checks the output.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
From M5c-2 task 00's recordings on rift: a chat at reasoning low returned raw tool-call markup,
and a search with no match still returned the nearest messages.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Owner, 2026-09-28: recall and ask_memory query Honcho from a session of any class, since Honcho
stores no query and rift's models and telemetry stay on the owner's hosts; the assumption is
written down, with what changes if rift's configuration does. A query holding a known-prefix
secret is refused. ask_memory names at most two workspaces, both asked at once inside brokerd's
wait. A session keeps the tools array it started with, so M5c-2 needs no new epoch.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Every M5c-1 item of the spec's section 13 passed against a build of m5c1 with the review's fixes:
clean, untrusted and secret turns routed as decided, a remembered fact concluded at once and
deleted by undo, a secret session's memory write skipped, and an outage waited out and drained
with nothing sent twice. The check's three rift workspaces were deleted afterwards.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
The review of tasks 01 to 15 in the implementer log, with the six findings fixed in review. Nine
tips for writing tasks from the run's transcripts and the review, new evidence for I16 and I17,
and four rules in AGENTS.md: the Cargo registry is outside the repository, `git stash -u` and the
README's flaky tests, an edit never anchors on another line, and what a test count includes.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
The worker marked a turn failed on any error reading its log. A missing log,
a damaged line or a turn not found still fail it; any other I/O error is now
waited out with the outage's doubling wait, logged once when it starts and
once when the log reads again (pointer session-log-damaged, whose runbook
entry now covers it), shown by bxctl memory sync, and the turn stays waiting.
read_records tells an unreadable file from a damaged line (read_log is
unchanged). The message helpers move from worker.rs to honcho/messages.rs,
re-exported, to keep worker.rs under 500 lines.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
A shared status, kept by the worker and the walk and read by the report under
its own leaf lock, holds the workspaces whose key was refused, when an outage
of Honcho began, and when brokerd stopped answering. The report adds a line
for each while it lasts, and is unchanged when all is well. The runbook's
Honcho entries and broker-state-unavailable now say what sync shows.
Tuning and Wake move to honcho/wake.rs (re-exported from worker) to keep
worker.rs under 500 lines. honcho_sync.rs's serve test now allows the outage
line: the write wakes the worker, which finds Honcho unreachable.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
A memory write is made during a turn, before that turn's Honcho session exists, and a session
whose turns are never synced has none, so each Boxmaker session's conclusions go to its own
<id>_memory session, holding the agent's peer and the owner's. `bxctl memory undo` refuses notes
(they are append-only), so the undo-of-a-fleet-note row and its retraction go. Owner, 2026-09-28.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
The ledger cannot promise an item is never sent twice: a crash between a send and its sent line,
or an owner removing that line, sends it again. A decided line holds a skip and its reason, as
task 07's ledger does. Turns from before sync began are skipped (owner's decision, 2026-09-28).
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>