Context
Upstream implementation for nyxid-chat#6 and milestone M1 · Chat 执行闭环. Extend the existing canonical /api/chat and /api/chat/conversations/** actor/projection path; do not add a second Chat API.
Scope
- Add actor-owned
pendingInput with requestId / turnId / taskId / stepId / prompt / options / askedAt.
- Emit committed
nyxid.input.request and nyxid.input.changed frames.
- Add typed
input.resolve with stable clientRequestId and expectedStateVersion.
- Enrich pending approval safe presentation with action, target, actor label, reversibility, expiry, grant boundary and optional NyxID request identity.
- Add actor/readmodel-authored conversation attention summaries:
taskStatus / attentionKind / attentionSince / activeStepSummary / stateVersion.
- Preserve existing effect evidence and actor-computed available actions.
- Check in versioned live-frame, current-state and conversation-summary fixtures that converge.
Architecture
- Conversation actor committed state is the sole task/input/approval authority.
- Current-state and conversation summaries are projection-pipeline readmodels, not query-time replay or browser inference.
- Commands carry exact identity and expected actor version; first committed decision wins and duplicates are idempotent.
- HTTP acceptance is transport-only; business completion is observed from committed actor/current-state facts.
Acceptance
Non-scope
No browser heuristics, generic actor request/reply, second workflow engine, credential/grant authority, query-time replay, or global Activity aggregate.
Context
Upstream implementation for nyxid-chat#6 and milestone
M1 · Chat 执行闭环. Extend the existing canonical/api/chatand/api/chat/conversations/**actor/projection path; do not add a second Chat API.Scope
pendingInputwithrequestId / turnId / taskId / stepId / prompt / options / askedAt.nyxid.input.requestandnyxid.input.changedframes.input.resolvewith stableclientRequestIdandexpectedStateVersion.taskStatus / attentionKind / attentionSince / activeStepSummary / stateVersion.Architecture
Acceptance
Non-scope
No browser heuristics, generic actor request/reply, second workflow engine, credential/grant authority, query-time replay, or global Activity aggregate.