Return assistant_msg_id from createTaskRun so live bubbles merge with history,
hide continue on terminal failed runs, and restart via a fresh turn/bubble.
T20-F2/F3/F5/F6: reset stuck executing cards, reclaim AbortControllers via removeTurn, wrap chat/doc panes, and split SSE on CRLF blank lines as well as LF.
The document list now reports WORKFLOW_SCOPE_MODE, and weighted mode only blocks a cross-workflow write when that title outscores the active workflow.
Co-authored-by: Cursor <cursoragent@cursor.com>
Keep weak write verbs off the task shortcut path, and once-only fall back
to chat when TASK_SCOPE_UNRESOLVED or DOC_TASK_NOT_IN_ACTIVE_STAGE.
Co-authored-by: Cursor <cursoragent@cursor.com>
- Document list returns workflow_key per item and active_workflow_key
- DeliverableItem keeps workflowKey through server sync
- resolveTaskTemplateForMessage filters the match pool and blocks
cross-workflow mentions with switch guidance
Co-authored-by: Cursor <cursoragent@cursor.com>
The chat window hook only exposed refresh helpers, so the continue path did not type-check after it started reading history bubbles.
Co-authored-by: Cursor <cursoragent@cursor.com>
Continue looked up only the in-memory message list, so a refreshed card did nothing, and the stream path also dropped the stored workspace.
Co-authored-by: Cursor <cursoragent@cursor.com>
Progress lived only in the open SSE stream, and interrupted history was shown as completed so the card could not be continued.
Co-authored-by: Cursor <cursoragent@cursor.com>
Show error_message for failed runs, a distinct cancelled state, and business 4xx codes instead of a generic network message.
Co-authored-by: Cursor <cursoragent@cursor.com>