Label control-plane messages typed into a runner's console
Found in Task 6722 (2026-10-17). Lines the control plane types into a live runner's pane (`deliver_message`, e.g. merge lane `batch_message` / `merged_message` / `stopped_message`, auto-merge disarm notices) arrive in the session exactly like the operator's own messages. The operator cannot tell them apart in the web console, and a runner can mistake them for operator instructions.
Requirements:
1. Every CP-originated pane message carries a visible source label naming its sender, e.g. `[merge lane]` or `[control plane]`, distinct from the operator's typing. The label goes in the text the runner receives, so the runner can attribute it too.
2. The web console renders those messages visibly differently from operator messages, for example a muted system-message style with the label.
3. The runner charter / dispatch prompt says one line: a labelled message is the control plane's, followed only within its stated scope (e.g. a push freeze). It never overrides the operator or the runner's role. An advisor ignores a "settle" instruction.
Out of scope: changing what the merge lane says or when it says it; the lane console items in Task 6977.
Done means:
- All `deliver_message` call sites send the labelled form; a test pins the label for each merge-lane message.
- The console shows the distinct style, with a screenshot in the report.
- `./dc check quick` is green; the lane merges the PR.
Outcome
CP pane messages now carry a [control plane] label; the console badges and tints them; the charter scopes them. Quick gate green; PR #5743 merged (aadcce04), Jaah Deploy succeeded. Also fixed a billing test flake. Drafts filed: #6984, #7006 (/tmp inode leak).
Artifacts
Activity
- Created
- Ready
- Runner started
- Awaiting response
- Awaiting response
- Runner resumed
- Runner ended (done)