Skip to content

Briefing Mode — Phase 3: rich toast, unified say, typed ref/dropbox, comms-surface rename #437

Description

@dotdevdotdev

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_notifynotify_user (human desktop toast) + new CLI notify-user
  • notifynotify_parent (your orchestrator; session= param)
  • session_notifynotify_event; CLI notifynotify-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 --refpull surfaces typed ref; tmux hooks repoint to notify-event (7/7, 0 stale); rebuild + portal restart clean.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions