Why: D50 approved — the project inbox needs its own SSE stream reusing the
conversation event mechanism via the pseudo-key project:<projectId>; the
envelope stamps project ownership (additive field).
Evidence: conformance golden event_project_stream; go test green.
Impact: additive only (omitempty); consumers ignore unknown fields.
Refs: documents proposal 2026-09-30-card-stream-artifact-unify-project-inbox.md (D50).
Why: cross-session transcript reading needs per-conversation outbound
(allowCrossRead, default true) and inbound (crossPrivate, default false)
flags alongside the project-level gate; see the approved proposal.
Evidence: go test ./... passes with golden conversation.json regenerated
to exercise both wire fields.
Impact: additive contract fields (omitempty), wire-compatible for
existing clients that ignore unknown fields.
Refs: Agent-System-Documents proposals/2026-09-30-cross-session-reading.md
(Dev task feature/cross-session-reading).
Why: plugins and the host need one shared avatar primitive for member/
owner displays in cards, messages, and admin surfaces (user decision
2026-09-30: avatars, cards, settings become base capabilities plugins
reuse directly).
Evidence: go test green with regenerated golden (single avatar with
sub/tone plus a stacked group); omitempty keeps existing wire samples
byte-stable.
Impact: additive optional UINode field + type; unknown-type consumers
ignore it (forward compat). Renderers gain 'avatar' via the ui repo.
Refs: Agent-System-Documents proposal 2026-09-30-ui-redesign-and-auth.md
Why: Contract foundation for the inbox/command-bus/workspaces phase (proposal
D28/D30): ActivityCard as the first-class state object behind the right-rail
inbox, card.* stream events, inline-confirm anchoring (anchorMessageId +
blocked/blockReason) on HITL, seven new UI schema vocabularies, plugin
provides.commands/workspaces, workflow card step and workspace declarations.
Evidence: go vet clean; conformance goldens regenerated and verified — new
activity_card / hitl_card_blocked / event_card_created / event_card_resolved /
ui_vocabularies samples plus extended plugin_manifest; CardStatus.Terminal
helper unit-covered via build; ts/types.ts mirrors all additions.
Impact: Additive only (omitempty fields, new types, new event types) — existing
consumers ignore unknown values per forward-compat rule; vocabulary spec types
carry a Spec suffix to avoid const-name collisions.
Refs: modules/documents docs/proposals/2026-09-30-ui-inbox-command-workspace.md