Design 36: the waits mirror is the module's own entry in the agent's home; the hook tools refuse mesh and node scope

Review of the hooks paragraph: the mirror in the agent's home was not in the home's table, so the home look would count it as drift.
This commit is contained in:
jochen
2026-10-21 19:29:38 +02:00
parent 302ab2856a
commit 9483caae2d
@@ -165,7 +165,7 @@ in the module's state under the session's name (who@node) and mirrors into the a
while a wait is within its bound and nothing follows it, or past its bound and not yet told to the operator; it
lets the stop through silently when there are no waits, says so on the screen when the list cannot be read, and
refuses the same stop at most three times. Like the guard, both hooks ship in the plugin only: the hook
registration tools still refuse every hook (issue 340).
registration tools refuse a hook at mesh or node scope (issue 340).
## 4. The mesh MCP server
@@ -415,6 +415,7 @@ the helper of §9 where that is an agent account):
| `rules/<name>.md` | one personal rule each |
| `skills/<name>/`, `commands/<name>.md`, `agents/<name>.md` | the operator's own skills, commands and subagents at the operator scope, under their own names; and the home-scope items where the home is an agent account's own |
| `hooks/` | nothing: a hook is the terminal's, in the managed settings. The directory is kept empty |
| `nox-mesh/waits/<session>.json`, `nox-mesh/waits/_index.json` | the module's own mirror of each session's waits and the machine's open names (ADR 0489, ADR 0490), written whole by `claude_code_wait` and read by the plugin's session-start and Stop hooks; rebuilt from the module's state, never a person's |
| `output-styles/<name>.md`, `keybindings.json` | the operator's output styles and keybindings at the operator scope |
| `settings.json` | the operator's registered settings, preference keys only, with the keys the program itself writes on a person's choice (the model, the spinner, the drafts, the other preferences the vendor's own commands set) taken over into the registration when the program changes them, so a choice made in one session follows the operator. A key that decides what runs (`hooks`, `permissions`, `mcpServers`, `env`, `apiKeyHelper`, `statusLine`, `autoMode`, any key not on the list) is never taken over: changed on disk, it is written back on the look that finds it. `autoMode` is a permission rule, so it lives in the managed settings at the terminal |