Commit Graph

  • a1d5083bd5 CLAUDE.md: M4b is done and merged; branches land by rebase kyleandClaude Opus 5.5 2026-09-24 12:31:12 -07:00
  • ddb459a631 M4b: the redirect checked on the owner's server; finding 1 closed kyleandClaude Opus 5.5 2026-09-24 12:29:02 -07:00
  • bfbdccb99d M4b review of tasks 16 to 18; tip T32 kyleandClaude Opus 5.5 2026-09-24 12:22:24 -07:00
  • a43d9979c8 gatewayd: serve_restart takes the two caught-up turns in either order kyleandClaude Opus 5.5 2026-09-24 12:22:10 -07:00
  • e10d93c3e8 gatewayd: approvals asked by non-approvers in direct messages go to an approver kyle 2026-09-24 12:07:06 -07:00
  • 989548419d gatewayd: the texts that say who asked for a redirected approval kyle 2026-09-24 11:51:43 -07:00
  • bf89512832 brokerd: the refusal without a runner names the missing [runner] section kyle 2026-09-24 11:48:49 -07:00
  • f6dd7f1741 M4b review, and follow-up tasks 16 to 18 kyleandClaude Opus 5.5 2026-09-24 11:35:24 -07:00
  • d2e814161f M4b spec: approvals from non-approvers in direct messages go to an approver, with who asked and what kyleandClaude Opus 5.5 2026-09-24 11:09:59 -07:00
  • edf9ba3515 gatewayd: approvals answered from Mattermost; typing paused; the notice kyle 2026-09-24 10:19:41 -07:00
  • af7137dafe M4b task 15: fix task 14's dropped refusal reason, as a listed edit kyleandClaude Opus 5.5 2026-09-24 08:46:33 -07:00
  • c38e450f44 gatewayd: serve, posting approvals, marking them, and the listener kyle 2026-09-24 05:07:50 -07:00
  • a33ff240c4 gatewayd: gateway, the gateway.sock listener and one thread per connection kyle 2026-09-24 04:59:02 -07:00
  • 07e4e16270 gatewayd: state, the posts of open approvals, and the turn of a session kyle 2026-09-24 04:50:54 -07:00
  • c5df86d13d gatewayd: approvals, the registry and the judging of commands kyle 2026-09-24 04:48:06 -07:00
  • d9f8fa9331 gatewayd: approvals::text, the posts that show an approval kyle 2026-09-24 04:42:37 -07:00
  • 18791ab389 gatewayd: mm, patch_post and username kyle 2026-09-24 04:36:45 -07:00
  • 365e50081d gatewayd: strip a leading mention of this bot; recognise approval commands kyle 2026-09-24 04:33:03 -07:00
  • b45ca14c14 gatewayd: config, [approvals] users and socket kyle 2026-09-24 04:28:26 -07:00
  • e0560ab996 brokerd: courier, carrying pending approvals to gatewayd and answers back kyle 2026-09-24 04:25:07 -07:00
  • 412f80c470 brokerd: config, [gateway] socket for Mattermost approvals kyle 2026-09-24 04:18:04 -07:00
  • a00711e379 brokerd: answers carry the Mattermost post; Table::contains kyle 2026-09-24 04:15:11 -07:00
  • a5c37d8756 bxctl: deny, another name for refuse kyle 2026-09-24 04:11:01 -07:00
  • ebb78e816d proto: gateway, the four messages between brokerd and gatewayd kyle 2026-09-24 04:07:46 -07:00
  • db3f9ed01b proto: escape, moved from bxctl so gatewayd shows the same thing kyle 2026-09-24 04:01:03 -07:00
  • 2d415fc1be Plan M4b: approvals over Mattermost in 15 tasks kyleandClaude Opus 5.5 2026-09-24 03:34:21 -07:00
  • b1f732a42a M4b spec: names and details settled while building the reference kyleandClaude Opus 5.5 2026-09-24 03:22:55 -07:00
  • a8f7819da3 M4b spec approved kyleandClaude Opus 5.5 2026-09-24 01:54:59 -07:00
  • 1c2695d21d Apply P16: approvals are !approve/!deny replies in the approval's thread; no reactions kyleandClaude Opus 5.5 2026-09-24 01:54:50 -07:00
  • 3088dcc201 M4b spec: gatewayd strips a leading mention of its own bot; bare commands are the operator's care kyleandClaude Opus 5.5 2026-09-24 01:53:54 -07:00
  • 00a9b576b2 Specify M4b (approvals over Mattermost); propose P16 on approval replies kyleandClaude Opus 5.5 2026-09-24 01:48:51 -07:00
  • 3322a56e69 CLAUDE.md: M4a is done and merged; M4b is next kyleandClaude Opus 5.5 2026-09-24 01:37:17 -07:00
  • 2ee9310fc3 Merge M4a: gatewayd, conversations over Mattermost kyleandClaude Opus 5.5 2026-09-24 01:36:59 -07:00
  • 53560ca731 M4a task 16 review: accepted; the plan's copy of its test is now the formatted file kyleandClaude Opus 5.5 2026-09-24 01:36:22 -07:00
  • 10c80b74f3 gatewayd: read a secret file from the file that was checked kyle 2026-09-24 01:33:36 -07:00
  • 6feffadd11 M4a task 16: read a secret file from the file that was checked (review finding 2) kyleandClaude Opus 5.5 2026-09-24 01:27:41 -07:00
  • 0081f24b70 gatewayd: strict status lines and chunk lines; no as casts (M4a review, findings 1 and 3) kyleandClaude Opus 5.5 2026-09-24 01:23:51 -07:00
  • 131b3677fd M4a review: accepted; checked end to end against the owner's Mattermost kyleandClaude Opus 5.5 2026-09-24 01:21:27 -07:00
  • 09b074c121 gatewayd: main, serve --config with its start checks kyle 2026-09-24 01:00:22 -07:00
  • ed361db718 gatewayd: serve, the event loop, typing, catch-up and reconnecting kyle 2026-09-24 00:55:58 -07:00
  • 02d5e25046 M4a task 14: post's comment was now_ms's; fixed, and every comment read kyleandClaude Opus 5.5 2026-09-24 00:40:05 -07:00
  • 564875f0a0 M4a tasks 14 and 15: glue written, calls tabled, after task 14's session wrote nothing kyleandClaude Opus 5.5 2026-09-23 21:50:18 -07:00
  • d1d8531495 gatewayd: deliver, turns on loop.sock and answers posted in their thread kyle 2026-09-23 21:34:34 -07:00
  • 24cac6a4eb gatewayd: state, what was handled, our threads and turns in flight kyle 2026-09-23 21:23:49 -07:00
  • fc32144048 gatewayd: sessions, routing posts to sessions, commands and the queue kyle 2026-09-23 21:17:17 -07:00
  • 18fddd03d9 gatewayd: mm, Mattermost's events and REST calls, typed kyle 2026-09-23 21:04:00 -07:00
  • 74e08a5b1a gatewayd: ws conn, messages, pings, closing and a dead peer kyle 2026-09-23 20:54:38 -07:00
  • f649ca9e3d gatewayd: ws frames, a strict decoder and a masked encoder kyle 2026-09-23 20:50:00 -07:00
  • 02681069b6 M4a tasks 08 and 09: finer skeletons after task 08's session wrote nothing kyleandClaude Opus 5.5 2026-09-23 20:37:48 -07:00
  • d56fcf8611 gatewayd: ws, the WebSocket error type and the opening handshake kyle 2026-09-23 19:55:22 -07:00
  • 3a5b693878 gatewayd: http, requests over a stream with size caps and rate-limit waits kyle 2026-09-23 19:51:00 -07:00
  • e8311aeb54 gatewayd: net, TCP or verified TLS to the Mattermost server kyle 2026-09-23 19:41:08 -07:00
  • 608d426f95 gatewayd: secrets from a credential, the environment or a file; runbook entries kyle 2026-09-23 19:37:12 -07:00
  • ede25312b3 gatewayd: config, gatewayd.toml into a checked Config kyle 2026-09-23 19:27:43 -07:00
  • 64b34f48d6 gatewayd: dependencies for TLS and secrets; test-only certificates kyle 2026-09-23 19:17:51 -07:00
  • 9fa8f0abed proto: sha1, for the WebSocket handshake check kyle 2026-09-23 19:15:01 -07:00
  • 0339dc13b2 Plan M4a: gatewayd in 15 tasks, with skeletons and given tests kyleandClaude Opus 5.5 2026-09-23 19:05:44 -07:00
  • f38dc8d474 M4a spec: catch-up, recording and state writes, as settled while planning kyleandClaude Opus 5.5 2026-09-23 19:05:44 -07:00
  • 75304b4e65 Ignore *.env: local secrets such as mattermost.env are never committed kyleandClaude Opus 5.5 2026-09-23 17:54:38 -07:00
  • eab2fbdc55 Apply P15: secrets from a systemd credential, the environment or a file kyleandClaude Opus 5.5 2026-09-23 17:43:08 -07:00
  • 4a510fde08 M4a spec: approved, with a file-secret warning and multi-agent channels kyleandClaude Opus 5.5 2026-09-23 17:42:45 -07:00
  • 7e3783faae Specify M4a (conversations over Mattermost); propose P15 on secrets kyleandClaude Opus 5.5 2026-09-23 17:30:31 -07:00
  • f0ec0efe9d CLAUDE.md: M3a finding 14 was closed by M3b task 02 kyleandClaude Opus 5.5 2026-09-23 16:43:07 -07:00
  • 8bcdb25ff1 Merge m3b: the runner and the tools (M3b) kyleandClaude Opus 5.5 2026-09-23 16:42:22 -07:00
  • a43362edb4 Review M3b tasks 14 to 17: accept; M3b done kyleandClaude Opus 5.5 2026-09-23 16:42:22 -07:00
  • 9662966b45 toolkit: no thread panic in http_fetch, no casts, exact egress-proxy form kyle 2026-09-23 16:13:43 -07:00
  • e69ba632e6 brokerd: escape container errors in the log; prefix and quote two messages kyle 2026-09-23 16:10:54 -07:00
  • 93539dbead brokerd: start pipe threads safely and collect output within a grace period kyle 2026-09-23 16:07:15 -07:00
  • c87aff0793 brokerd: move the container's pipe handling into pipes.rs kyle 2026-09-23 15:59:44 -07:00
  • a57a1305e7 M3b plan: follow-up tasks 14 to 17 for the review's lower findings kyleandClaude Opus 5.5 2026-09-23 15:33:23 -07:00
  • c3aaecdae2 M3b review fixes by the design model: curl --globoff, podman --pull=never kyleandClaude Opus 5.5 2026-09-23 15:25:51 -07:00
  • 75c2f1adbf Review M3b: accept with follow-ups; add the Nix expression for the image kyleandClaude Opus 5.5 2026-09-23 11:48:31 -07:00
  • feb50abc88 brokerd serve: run tools in containers when [runner] is set kyle 2026-09-23 09:35:46 -07:00
  • e6081a2177 brokerd: start and remove the egress proxy for http_fetch kyle 2026-09-23 09:22:24 -07:00
  • cfe13787b0 brokerd: the Podman runtime kyle 2026-09-23 08:51:44 -07:00
  • 4a1c6fa0a5 M3b plan: task 11's skeleton writes run as glue over small helpers kyleandClaude Opus 5.5 2026-09-23 08:36:00 -07:00
  • 62d1da44d6 M3b plan: task 11 starts from a compiling skeleton of container.rs kyleandClaude Opus 5.5 2026-09-23 07:34:14 -07:00
  • 4458369d64 M3b plan: task 11 gives Podman::egress_dir(), so the field is read kyleandClaude Opus 5.5 2026-09-23 07:16:56 -07:00
  • 49ac8d72d2 brokerd: the podman argument lists kyle 2026-09-23 01:13:25 -07:00
  • 81ce5a3345 brokerd: the [runner] section kyle 2026-09-23 01:07:21 -07:00
  • 95872d94b8 toolkit: the egress proxy kyle 2026-09-23 01:01:13 -07:00
  • e87d876f26 M3b plan: task 08 says not to join handler threads and to skip argv[0] kyleandClaude Opus 5.5 2026-09-23 00:46:23 -07:00
  • 74da0c9d96 toolkit: is_public, the addresses the egress proxy may reach kyle 2026-09-23 00:19:18 -07:00
  • adf6713866 toolkit: http_fetch through curl kyle 2026-09-23 00:14:16 -07:00
  • ac1ecacadc toolkit: shell kyle 2026-09-23 00:06:44 -07:00
  • 5e55fe4c66 M3b plan: every task's git add includes Cargo.lock kyleandClaude Opus 5.5 2026-09-23 00:00:12 -07:00
  • 0d444dd5bf toolkit: the tool program, read_file and write_file kyle 2026-09-22 23:12:28 -07:00
  • 644fda14da Refuse grant paths that cannot be mounted kyle 2026-09-22 23:06:09 -07:00
  • bf9e79ac21 Seal the fetch target: one value holds the URL and its host kyle 2026-09-22 23:03:49 -07:00
  • f095cca1ee Move the tools' arguments and the host rules to proto kyle 2026-09-22 22:59:40 -07:00
  • 655683c9e0 Apply P13: tool containers run from one Nix-built image named by digest kyleandClaude Opus 5.5 2026-09-22 22:30:04 -07:00
  • b426ca1958 Specify and plan M3b: the runner and the tools kyleandClaude Opus 5.5 2026-09-22 22:29:27 -07:00
  • d988edac4a Implementer log: record which model did each M3a task; repair the rows kyleandClaude Opus 5.5 2026-09-22 22:01:14 -07:00
  • 6b9bd7f5f0 CLAUDE.md: M3a is done; M3b next; the new slot layout kyleandClaude Opus 5.5 2026-09-22 21:55:27 -07:00
  • aafd9f930e Merge m3a: brokerd's decision path (M3a) kyleandClaude Opus 5.5 2026-09-22 21:55:11 -07:00
  • f0b39a4766 Record the second review of task 23 and the findings first left out kyleandClaude Opus 5.5 2026-09-22 21:54:28 -07:00
  • fc8befaf5b bxctl audit verify: name the log-like files it did not check kyleandClaude Opus 5.5 2026-09-22 21:52:54 -07:00
  • cfa02479c1 Test --accept-break on a real break through the brokerd binary kyleandClaude Opus 5.5 2026-09-22 21:52:54 -07:00
  • bb4d7c0919 bxctl: escape frame errors; say the outcome is unknown after a timeout kyleandClaude Opus 5.5 2026-09-22 21:48:24 -07:00
  • e08deb39a6 brokerd: recover a torn line in place, real dates only, bounded ttl, EMFILE kyleandClaude Opus 5.5 2026-09-22 21:48:24 -07:00