`ao start` was emitting:
- Three `[notifier-*] No <thing> configured` warnings, twice each, from
every plugin registry init (CLI process + supervisor reconcile against
the global config picked up a different cache key).
- `[direct-terminal] Using tmux: /opt/homebrew/bin/tmux`,
`[MuxServer] Mux WebSocket server created (noServer mode)`, and
`[direct-terminal] WebSocket server listening on port 14801` — three
unconditional boot pings from the dashboard's terminal websocket
servers that no user ever needs to see.
- `Tip: use --dev for hot reload …` on every start (discoverable via
`--help`), and `Dashboard starting on http://localhost:N` /
`(Dashboard will be ready in a few seconds)` redundant with the
`[next] - Local: …` line that prints right after.
All fixed at the source — no downstream filter, no env var gate:
- notifier-openclaw/slack/webhook `create()` no longer print `console.warn`
when their config is missing. Missing config = silent no-op notifier.
Setup tooling and `ao doctor` are the right surface for "you forgot to
configure this", not every plugin registry instantiation.
- direct-terminal-ws.ts boot pings deleted. Kept the "no tmux available"
line as `console.warn` because it signals a degraded mode worth
surfacing.
- mux-websocket.ts "Mux WebSocket server created" line deleted.
- start.ts dashboard banner trimmed: `Tip: use --dev`, the
`spinner.succeed(\`Dashboard starting on …\`)`, and the
`(Dashboard will be ready in a few seconds)` line all removed.
Tests updated: the three notifier plugins now assert that `create()` is
silent when its config is missing, and that `notify()` is still a no-op
in that state.
Closes#1951