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>
2.3 KiB
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, andloopdnever 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, thencp 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. Thencargo 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 brokerdpasses;make gateprintsgate: ok.
Stop and report if
- Any other test fails because of the sentence. Do not change that test.