From 503a81b5061984a2c47f5d6c6bb0403419b616de Mon Sep 17 00:00:00 2001 From: Jason Woltje Date: Tue, 13 Oct 2026 18:43:51 -0500 Subject: [PATCH] docs: rule row 110 tester switch placement (#1604, Darkwing proposal 8eac0acb9) bus.tester business var, default false; tester socket field with no proof, refused on role- or reader-bound connections; tester reply address; the "never Jason's instruction" line in turnRequest() after row 109 lands. Co-Authored-By: Claude Opus 5.5 --- .../2026-10-13_pm-tester-and-fresh-state.md | 35 +++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/docs/plans/2026-10-13_pm-tester-and-fresh-state.md b/docs/plans/2026-10-13_pm-tester-and-fresh-state.md index ecfa8ba49..db4e402e5 100644 --- a/docs/plans/2026-10-13_pm-tester-and-fresh-state.md +++ b/docs/plans/2026-10-13_pm-tester-and-fresh-state.md @@ -47,6 +47,41 @@ changes who can speak on the bus. - `packages/cli/tests/`: the tester cases - `packages/bus/README.md` and `packages/cli/README.md`, one paragraph each - `agents/darkwing/work/queue-/` +- Added by the placement ruling below: `packages/business/src/vars.mjs` + (one registry line), its case in `packages/business/tests/`, one + sentence in `packages/business/README.md` "Variables", + `packages/harness/src/runner.mjs` (`turnRequest()` only) and its case + in `packages/harness/tests/runner.test.mjs` + +### Placement ruling (Sage, 2026-10-13) + +Darkwing's proposal is `agents/darkwing/work/queue-110/placement.md` +(commit 8eac0acb9). Rulings: + +1. The switch is the business var `bus.tester`: boolean, settable at the + business layer only, default false. The broker binds a tester only + when it is exactly `true`. The business file is Jason's, so only Jason + or Mos turns it on, and a change takes a bus restart under Mos's go. + No live off switch and no expiry date. This binding replaces the tmux + path for good. +2. A tester binds through a `tester: { business }` field on a socket + request, with no human proof. Two limits come with it. A connection + already bound as a role or a reader can't rebind as a tester, and a + test covers each. The packet states, from the row 92 sandbox code, + whether a role session can reach `broker.sock` at all. If it can, a + test shows a role session's tester bind refuses. +3. Replies to a tester go to a new `tester` address. A role may send to + `tester` only with `in_reply_to` naming a tester message. A tester + reply never appears in the human's inbox or the Console's Messages + page, and a test checks both. `messages` and `replies` stay readable + as the brief says. A reader can already read them. +4. The "never Jason's instruction" line goes in `turnRequest()`, built + on row 109's landing commit, with its case in `runner.test.mjs`. + The proposed test that a tester message can't back a `task_create` + is part of the row. + +The build starts on row 109's landing commit, and the packet's gate +runs every package node suite plus every `scripts/test-*.sh`. ### What ships