chore(comms): purge dead say()/channel refs the first sweep missed

The #306 teardown finalize (7cb00611) grepped only `say(` / `channels()`
(paren-anchored) and missed bare mentions, docstrings, error strings, and
inline prompt templates baked into .py. This catches them:

- content_actions.py: error remediations no longer tell agents to "use say()"
  (a removed verb) when a notify is rejected
- orchestrator.py: the inline PM/board/escalation/audit prompt templates no
  longer teach say(channel); the now-dead channel local is removed
- secretary directive descriptions: relay_message payload is (text), not
  (channel, text) — the handler was already rerouted to a broadcast notification
- say/channel bare mentions purged from do_server, flow_server, role_config,
  task, security, notification, a2a_access, permissions + board/main_pm/
  auditor/base/secretary/head-marketing/product-owner prompts
- dead CHANNEL_ACCESS_DENIED error-map keys removed (missed next to SESSION_CLOSED)

Pending (dead-vs-live pass, not in this commit): panel stream.ts channel-perms
client (unimported), agents.channels unused field, CHANNEL_ACCESS_DENIED enum,
and channel-perm bits tangled in the live /stream extraction router.
This commit is contained in:
Renn F
2026-07-04 05:20:17 +02:00
parent 7cb00611e1
commit 925e00d483
22 changed files with 54 additions and 60 deletions
+2 -3
View File
@@ -3,7 +3,7 @@
Forwards to /api/v1/do/* on the orchestrator. Tools are role-scoped at *spawn*
time: the orchestrator writes ``do_tools`` into the per-agent manifest and we
register only those names on this server. The orchestrator's API is not
role-scoped here (any allowed role can call commit/note/say/dm/notify/evidence),
role-scoped here (any allowed role can call commit/note/dm/notify/evidence),
so the path is fixed (no role segment). Per-tool role gates (e.g., notify
restricting to PMs/Board) live inside the gateway verbs.
@@ -72,7 +72,6 @@ _CIRCUIT_REJECTION_KINDS: frozenset[str] = frozenset(
# counted kind without a map update. Mirrors flow_server.
_DICT_ERROR_CODE_MAP: dict[str, str | None] = {
"AUTHENTICATION_REQUIRED": "not_authorized",
"CHANNEL_ACCESS_DENIED": "not_authorized",
"JOURNAL_ACCESS_DENIED": "not_authorized",
"PERMISSION_DENIED": "not_authorized",
"INVALID_INPUT": "incomplete_input",
@@ -576,7 +575,7 @@ def notify(
) -> dict[str, Any]:
"""Send a formal ack-required notification (PMs and Board only).
Distinct from say (channel post) and dm (informal A2A): notify creates
Distinct from dm (informal A2A): notify creates
a notification the recipient must acknowledge. priority in
normal|high|urgent. task_id auto-injected from active task when omitted.
"""