Commit Graph
480 Commits
Author SHA1 Message Date
kyleandornith-1.5-35b-a3b 45984b45be loopd: replay a carried summary as an unlogged user message
Co-Authored-By: ornith-1.5-35b-a3b <agent@wntrmute.dev>
2026-10-02 23:46:06 -07:00
kyleandornith-1.5-35b-a3b 18039fa2e4 loopd: open the highest epoch and carry its summary
Co-Authored-By: ornith-1.5-35b-a3b <agent@wntrmute.dev>
2026-10-02 23:38:10 -07:00
kyleandornith-1.5-35b-a3b 518d6ec416 loopd: [compact] threshold, summary_chars and summarise
Co-Authored-By: ornith-1.5-35b-a3b <agent@wntrmute.dev>
2026-10-02 23:25:47 -07:00
kyleandGrok 4.6 c3b05cf003 docs: M5d-1 checklist fixes before hand-over
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>
2026-10-02 22:36:51 -07:00
kyleandGrok 4.6 3726ae585f docs: M5d-1 and M5d-2 implementation plans for Ornith
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>
2026-10-02 21:54:37 -07:00
kyleandGrok 4.6 069cd1686a docs: M5d spec is approved; the implementer is Ornith
Co-Authored-By: Grok 4.6 <noreply@x.ai>
2026-10-02 20:51:18 -07:00
kyleandGrok 4.6 ab47840285 docs: compaction at 85% of n_ctx, and ToolSummary in the index
Co-Authored-By: Grok 4.6 <noreply@x.ai>
2026-10-02 20:51:18 -07:00
kyleandGrok 4.6 01d913dde4 docs: M5d scheduler spec
Co-Authored-By: Grok 4.6 <noreply@x.ai>
2026-10-02 20:51:18 -07:00
kyleandGrok 4.6 1938b746ab review: M5c-2 review, lessons T59 and T60, and the gate-count rule
Co-Authored-By: Grok 4.6 <noreply@x.ai>
2026-10-02 20:24:43 -07:00
kyleandGrok 4.6 f80842640c review: a secret session's recall and ask_memory still query Honcho
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>
2026-10-02 20:11:01 -07:00
kyleandornith-1.5-35b-a3b e0f0057ac8 memoryd: ask_memory served beside recall and memory, outside the lock
Co-Authored-By: ornith-1.5-35b-a3b <agent@wntrmute.dev>
2026-09-29 10:01:39 -07:00
kyleandornith-1.5-35b-a3b 165145edb5 memoryd: the admin socket's requests move to serve/admin.rs
Co-Authored-By: ornith-1.5-35b-a3b <agent@wntrmute.dev>
2026-09-29 09:54:14 -07:00
kyleandornith-1.5-35b-a3b 132e816322 memoryd: ask_memory, each workspace's chat at once with its own limit
Co-Authored-By: ornith-1.5-35b-a3b <agent@wntrmute.dev>
2026-09-29 09:47:08 -07:00
kyleandornith-1.5-35b-a3b 18bafbd2a0 memoryd: recall asks Honcho after the local index, outside the state lock
Co-Authored-By: ornith-1.5-35b-a3b <agent@wntrmute.dev>
2026-09-29 09:36:43 -07:00
kyleandornith-1.5-35b-a3b 6e3e713298 memoryd: recall's Honcho part, every source at once with its own limit
Co-Authored-By: ornith-1.5-35b-a3b <agent@wntrmute.dev>
2026-09-29 09:28:12 -07:00
kyleandornith-1.5-35b-a3b a73d49c609 memoryd: recall's local items on one indented line, as Honcho's
Co-Authored-By: ornith-1.5-35b-a3b <agent@wntrmute.dev>
2026-09-29 09:17:05 -07:00
kyleandornith-1.5-35b-a3b d8c396e691 memoryd: Honcho's results as recall items, kept, labelled and interleaved
Co-Authored-By: ornith-1.5-35b-a3b <agent@wntrmute.dev>
2026-09-29 09:11:11 -07:00
kyleandornith-1.5-35b-a3b b370c60bd4 memoryd: the Honcho workspaces it reads, with their clients and labels
Co-Authored-By: ornith-1.5-35b-a3b <agent@wntrmute.dev>
2026-09-29 08:56:50 -07:00
kyleandornith-1.5-35b-a3b b33341c53a loopd: ask_memory as a core tool, and a wait of its own on brokerd
Co-Authored-By: ornith-1.5-35b-a3b <agent@wntrmute.dev>
2026-09-28 22:41:37 -07:00
kyleandornith-1.5-35b-a3b 7ac7e8094a brokerd: a wait of its own for ask_memory, 170 s
Co-Authored-By: ornith-1.5-35b-a3b <agent@wntrmute.dev>
2026-09-28 22:34:49 -07:00
kyleandornith-1.5-35b-a3b e9f103dfdd brokerd: ask_memory, a built-in memory tool that memoryd runs
Co-Authored-By: ornith-1.5-35b-a3b <agent@wntrmute.dev>
2026-09-28 22:28:41 -07:00
kyleandornith-1.5-35b-a3b 3c54096704 bxcore: ask_memory's arguments and their shape checks
Co-Authored-By: ornith-1.5-35b-a3b <agent@wntrmute.dev>
2026-09-28 22:20:27 -07:00
kyleandClaude Opus 5.5 62aaadd17e M5c-2 plan: README wrap-up: the tasks with their counts, known flaky tests and known limits
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-09-28 21:27:53 -07:00
kyleandClaude Opus 5.5 f6a1f1831e M5c-2 plan: task 12, memoryd serves ask_memory
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-09-28 21:27:10 -07:00
kyleandClaude Opus 5.5 5b39b7ffc3 M5c-2 plan: task 11, the admin socket's requests move out of serve.rs
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-09-28 21:07:18 -07:00
kyleandClaude Opus 5.5 531a723e39 M5c-2 plan: task 10, ask_memory in memoryd; task 08 keeps its own copy of the fake Honcho
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-09-28 20:18:33 -07:00
kyleandClaude Opus 5.5 30538b0243 M5c-2 plan: task 09, recall asks Honcho outside the state lock
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-09-28 19:58:04 -07:00
kyleandClaude Opus 5.5 d41c41eb4a M5c-2 plan: task 08, recall's Honcho part; the wiring split out as task 09
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-09-28 19:30:58 -07:00
kyleandClaude Opus 5.5 109aacbd1b M5c-2 plan: task 07, local recall items in the one indented form; later tasks renumbered
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-09-28 19:06:36 -07:00
kyleandClaude Opus 5.5 484804c00a bxctl: chat_approvals' helper accepts a broken pipe on stdin
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>
2026-09-28 18:49:56 -07:00
kyleandClaude Opus 5.5 c2c8d47f37 M5c-2 plan: task 06, Honcho's results as recall items
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-09-28 18:48:35 -07:00
kyleandClaude Opus 5.5 9a4f0c5875 M5c-2 plan: task 05, memoryd's readers
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-09-28 18:31:51 -07:00
kyleandClaude Opus 5.5 c6f43002a8 M5c-2 plan: task 04, maxItems verified; a comment kept to 100 columns
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-09-28 18:08:32 -07:00
kyleandClaude Opus 5.5 9cab92f735 M5c-2 plan: task 04, loopd declares ask_memory and waits 180 s for it
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-09-28 18:07:00 -07:00
kyleandClaude Opus 5.5 73a94e5106 M5c-2 plan: task 03, brokerd's wait for ask_memory
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-09-28 17:39:39 -07:00
kyleandClaude Opus 5.5 77a7e8854b M5c-2 plan: task 02, brokerd knows ask_memory; the outline split to nine tasks
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-09-28 17:39:39 -07:00
kyleandClaude Opus 5.5 cdd0a40207 M5c-2 plan: task 01, workspace names up to memoryd's 512
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-09-28 16:59:35 -07:00
kyleandClaude Opus 5.5 2adcb734a5 M5c-2 plan: task 01, ask_memory's arguments
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-09-28 16:49:03 -07:00
kyleandClaude Opus 5.5 88963bc7ae M5c-2 plan: task 00 done; the outline follows the recordings
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-09-28 16:21:03 -07:00
kyleandClaude Opus 5.5 891f41374c docs: M5c spec: ask_memory at minimal only; Honcho hits must share a term with the query
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>
2026-09-28 16:20:57 -07:00
kyleandClaude Opus 5.5 718e66d3f6 memoryd: Honcho responses for M5c-2's read path, recorded from rift (M5c-2 task 00)
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>
2026-09-28 16:20:42 -07:00
kyleandClaude Opus 5.5 d75c64672e M5c-2 plan: outline for the owner's review
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-09-28 15:58:53 -07:00
kyleandClaude Opus 5.5 8e562619b7 docs: M5c spec: queries from any session, two workspaces per ask_memory, tools per session
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>
2026-09-28 15:58:16 -07:00
kyleandClaude Opus 5.5 ab36e54273 docs: the M5c-1 device check on straylight, rift and the owner's Mattermost
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>
2026-09-28 15:39:57 -07:00
kyleandClaude Opus 5.5 572b582038 docs: M5c-1 review finding 7 closed: the two flaky tests fixed
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-09-28 14:26:52 -07:00
kyleandClaude Opus 5.5 e83b53b8b6 review: loopd prints every startup notice before it binds; tests wait for "serving on"
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>
2026-09-28 14:26:37 -07:00
kyleandClaude Opus 5.5 45be83b891 review: gatewayd drops an approval's answer receiver before it says the approval ended
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>
2026-09-28 14:26:37 -07:00
kyleandClaude Opus 5.5 161b16353b docs: the M5c-1 review, tips T50 to T58, and AGENTS.md rules from the run
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>
2026-09-28 14:18:19 -07:00
kyleandClaude Opus 5.5 5e57cd69a3 review: a session log that cannot be read now is waited out
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>
2026-09-28 14:15:04 -07:00
kyleandClaude Opus 5.5 bd4cf9fb7f review: a key split by an invisible character is still a secret
has_secret masked each character a character rule matches to a space, so one
zero-width space inside a key cut it into two runs too short to match. The
secret rules now also run on the text with those characters deleted, and the
text is a secret if either matches.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-09-28 14:12:12 -07:00