Second slice of Briefing Mode, per docs/wiki/research/briefing-mode-feasibility.md (§D, §C, §9 Phase 2). Builds on #433 (Phase 1 roles).
Goal
Ship the one genuinely new primitive — awareness without being driven — plus the plumbing to spawn+seed correspondents from one call.
Scope
- Passive
ingest message kind (§D): never auto-delivered. Routes to a reserved ingest/ subdir the drain already skips (zero drain-logic changes — 'ls is the protocol'). Pulled voluntarily with agentwire msg pull / MCP msg_pull. msg inbox shows passive messages without consuming.
- MCP
worktree_create + a --prompt seed flag on agentwire worktree (§C): spawn a worktree session and deliver the task in one call (reuses cmd_new's verified --first-message delivery). Completes the lifecycle quartet (create/status/list/remove). Also fixes cmd_worktree emitting double-JSON in --json mode.
- Role updates: correspondent drops a passive
ingest pointer (not a driving msg); anchor msg pulls on the human's cue.
Out (Phase 3)
Unified say(text=, display=), markdown/links in the portal_notify toast, blessed dropbox resolver + typed ref field on Message.
Verification
Passive invariants (ingest excluded from drain + watchdog, pull consumes); CLI send/inbox/pull; MCP msg_pull + worktree_create register; worktree --prompt emits single JSON and delivers the seed (agent replied to a seeded prompt end-to-end).
Second slice of Briefing Mode, per
docs/wiki/research/briefing-mode-feasibility.md(§D, §C, §9 Phase 2). Builds on #433 (Phase 1 roles).Goal
Ship the one genuinely new primitive — awareness without being driven — plus the plumbing to spawn+seed correspondents from one call.
Scope
ingestmessage kind (§D): never auto-delivered. Routes to a reservedingest/subdir the drain already skips (zero drain-logic changes — 'ls is the protocol'). Pulled voluntarily withagentwire msg pull/ MCPmsg_pull.msg inboxshows passive messages without consuming.worktree_create+ a--promptseed flag onagentwire worktree(§C): spawn a worktree session and deliver the task in one call (reusescmd_new's verified--first-messagedelivery). Completes the lifecycle quartet (create/status/list/remove). Also fixescmd_worktreeemitting double-JSON in--jsonmode.ingestpointer (not a driving msg); anchormsg pulls on the human's cue.Out (Phase 3)
Unified
say(text=, display=), markdown/links in theportal_notifytoast, blessed dropbox resolver + typedreffield on Message.Verification
Passive invariants (ingest excluded from drain + watchdog, pull consumes); CLI send/inbox/pull; MCP
msg_pull+worktree_createregister;worktree --promptemits single JSON and delivers the seed (agent replied to a seeded prompt end-to-end).