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 <[email protected]>
This commit is contained in:
2026-10-13 18:43:51 -05:00
co-authored by Claude Opus 5.5
parent 5520ce3481
commit 503a81b506
@@ -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-<row>/`
- 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