Files
boxmaker/docs/plans/M4b/16-brokerd-refusing-message.md
T
kyleandClaude Opus 5.5 f6dd7f1741 M4b review, and follow-up tasks 16 to 18
The review of tasks 01 to 15 goes in the implementer log, with the
device check against the owner's Mattermost. Three follow-ups:

- 16: the refusal without a runner says why.
- 17: the texts that say who asked.
- 18: approvals from non-approvers in direct or group messages go to
  an approver.

Task 14's given serve_approvals.rs becomes serve_approvals.rs-task14,
since task 18 hands over a new version. Tip T31 is added.

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

2.3 KiB

M4b task 16: brokerd's refusal without a runner says why

Branch: m4b (run git switch m4b; git status --short must be empty, otherwise stop) Commit subject: brokerd: the refusal without a runner names the missing [runner] section

Goal

When brokerd.toml has no [runner] section, every allowed call is answered with the fixed sentence REFUSING. It still says the runner arrives in M3b, which stopped being true when M3b merged: the model, and the owner reading its answer, are told to wait for something that has already happened. Found in the M4b device check (review of 2026-09-24, finding 2). The sentence becomes:

no tool runner is configured: brokerd.toml has no [runner] section

It is still a fixed sentence (it reaches the model), so nothing else changes.

Files

  • Copy: a new version of the given crates/brokerd/tests/runner.rs (one assertion: the new sentence)
  • Modify: crates/brokerd/src/runner.rs, docs/implementer-log.md
  • Do not change crates/loopd/tests/broker_port.rs: it has the old sentence as test data only, and loopd never checks it.

The change, exactly

In crates/brokerd/src/runner.rs, the line

pub const REFUSING: &str = "the runner arrives in M3b";

becomes

pub const REFUSING: &str = "no tool runner is configured: brokerd.toml has no [runner] section";

The doc comment above it stays as it is.

Steps

  • 1. Copy. git switch m4b, then cp docs/plans/M4b/files/crates/brokerd/tests/runner.rs crates/brokerd/tests/
  • 2. See it fail. cargo test -p brokerd --test runner. Expected: one test fails, the_production_runtime_refuses_every_call, on the sentence.
  • 3. Make the change. Run cargo fmt --all.
  • 4. See it pass. cargo test -p brokerd --test runner: every test passes. Then cargo test -p brokerd: every suite passes.
  • 5. Run the gate. make gate. Expected last line: gate: ok, with the same number of tests as before this task (about 846).
  • 6. Log and commit. git add crates/brokerd docs/implementer-log.md Cargo.lock && git commit

Done when

  • cargo test -p brokerd passes; make gate prints gate: ok.

Stop and report if

  • Any other test fails because of the sentence. Do not change that test.