Final Briefing Mode phase + a CLI/MCP consistency pass, per docs/wiki/research/briefing-mode-feasibility.md (§9 Phase 3). Builds on #433/#435.
Scope
Feature polish
- Rich toast:
notify_user (the renamed portal_notify) renders a safe markdown subset — bold, links, line breaks. Escape-first + controlled tags + href allowlist (no marked, no XSS).
- Unified
say(text=, display=): one call speaks a headline AND shows a different text card — the asymmetric brief atomically.
- Typed
ref + dropbox resolver: ref field on messages (machine-readable pointer); new agentwire research CLI + research_dir() MCP under ~/.agentwire/research/<session>/.
Comms-surface rename (consistency) — three confusable notify-* tools disambiguated by target:
portal_notify → notify_user (human desktop toast) + new CLI notify-user
notify → notify_parent (your orchestrator; session= param)
session_notify → notify_event; CLI notify → notify-event (+ 9 tmux hook strings)
Parity helpers
- MCP
msg_flush, worktree_prune (closing CLI↔MCP gaps); _mcp_result helper to standardize wrapper success/error strings.
- Bug fix: global tmux hook installer now overwrites when the command string changes (was install-if-absent → stale hooks survived renames).
Verification
All 6 new/renamed MCP tools register, 3 old names gone; toast renderer correctness + XSS (img/js/attr-breakout all neutralized); research resolver; msg --ref→pull surfaces typed ref; tmux hooks repoint to notify-event (7/7, 0 stale); rebuild + portal restart clean.
Final Briefing Mode phase + a CLI/MCP consistency pass, per
docs/wiki/research/briefing-mode-feasibility.md(§9 Phase 3). Builds on #433/#435.Scope
Feature polish
notify_user(the renamedportal_notify) renders a safe markdown subset — bold, links, line breaks. Escape-first + controlled tags + href allowlist (nomarked, no XSS).say(text=, display=): one call speaks a headline AND shows a different text card — the asymmetric brief atomically.ref+ dropbox resolver:reffield on messages (machine-readable pointer); newagentwire researchCLI +research_dir()MCP under~/.agentwire/research/<session>/.Comms-surface rename (consistency) — three confusable notify-* tools disambiguated by target:
portal_notify→notify_user(human desktop toast) + new CLInotify-usernotify→notify_parent(your orchestrator;session=param)session_notify→notify_event; CLInotify→notify-event(+ 9 tmux hook strings)Parity helpers
msg_flush,worktree_prune(closing CLI↔MCP gaps);_mcp_resulthelper to standardize wrapper success/error strings.Verification
All 6 new/renamed MCP tools register, 3 old names gone; toast renderer correctness + XSS (img/js/attr-breakout all neutralized); research resolver;
msg --ref→pullsurfaces typed ref; tmux hooks repoint tonotify-event(7/7, 0 stale); rebuild + portal restart clean.