Given tests: Action::Turn (not To), send_turn of epoch 1, clippy on
compact_summary, jsonl-without-baseline, live turn after compact sends
the carry. send_turn maps Damaged to Local("log") as read_turn did.
Gate counts 1484 → 1508. Mutations recorded in the README.
Co-Authored-By: Grok 4.6 <noreply@x.ai>
Eight closed tasks for epochs and compaction, then ten for the scheduler,
ToolSummary, and tiers. Given tests first. Gate 1456 → 1507 → 1572.
Co-Authored-By: Grok 4.6 <noreply@x.ai>
Spec 13 requires that a secret session's query is sent unless the query
itself holds a known-prefix secret. serve.rs already ignores MemoryCall
taint on both read tools; the serve tests always sent Private. A skip of
Honcho for Secret would not have failed. Each suite now has one call at
class secret that asserts the fake received the search or chat.
Co-Authored-By: Grok 4.6 <noreply@x.ai>
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>
Workspace search with a limit and with no match, conclusion queries for the owner's and another
agent's peer, and what a workspace that does not exist answers to search, query, chat and delete.
Recorded through roncho 1.0.0's blocking client in the throwaway workspace boxmaker-plan-probe,
deleted afterwards.
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 serve tests waited for the socket file, then killed `loopd` and read its stderr, but the
socket is bound before its mode is set and before "serving on" and the broker notice are printed,
so a kill in between lost those lines (`pointers` failed once under load in M5c-1 task 15). The
broker notice now comes before the bind, so "serving on" is the last startup line, and the tests
wait for it (`tests/support/serving.rs`).
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Every path that told the loop `Ended` did so while the handler still held the receiver of the
approver's answer; it was dropped only when the handler returned. An answer sent in between was
taken, reported to the approver as sent, and lost. `end` now takes the receiver and drops it
first. `brokerd_closing_first_ends_it_as_no_longer_pending` failed 10 of 60 runs under load
before, and 0 of 100 after.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>