Repository navigation
Project a task-notification delivered as an attachment - #1045
Conversation
Claude Code writes a notification that lands mid-turn as a queued_command attachment, never as the user line the chat rules read, so the leaf projects that shape as if it were one. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
PR Summary by QodoProject task-notification attachments as subagent completions
AI Description
Diagram
High-Level Assessment
Files changed (4)
|
Code Review by Qodo
1.
|
An attachment the leaf does not read is ignored whatever its uuid holds, and meta hides a notification's row on either delivery. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Closes #1041 — AI-2990
What & why
The chat's subagent strip and SUBAGENTS section read a subagent's end from the transcript's task-notification, and the Claude leaf projected only
userandassistantrecords. Claude Code writes a notification that lands while the parent is mid-turn as anattachmentrecord (attachment.type: queued_command,commandMode: task-notification, the notification inprompt), so most background agents never got their finish signal and the strip kept counting them. The leaf now projects that attachment as the user line it would otherwise have been, withorigin_kind: task-notification; the rules and the tracker are unchanged, and every other attachment type stays ignored.Where to look
ClaudeTranscriptEvents.ProjectAttachment: only aqueued_commandintask-notificationmode passes; a queued user prompt, a prompt snapshot or a file still project nothing, and the event id is the record's ownuuid, as for a user line. A notification delivered both ways (mid-turn, then again once idle) settles its row once and shows its note twice.Verification
dotnet run --project test/Capacitor.Models.Transcripts.Tests.Unit/Capacitor.Models.Transcripts.Tests.Unit.csproj— 151 total, 0 faileddotnet run --project test/Capacitor.Cli.Core.Tests.Unit/Capacitor.Cli.Core.Tests.Unit.csproj -- --treenode-filter "/*/*/ClaudeChatRulesTests/*"— 28/28;TranscriptChatCanonicalTests8/8dotnet publish src/Capacitor.Cli/Capacitor.Cli.csproj -c Release 2>&1 | grep -E 'IL[23][01][0-9]{2}'— no output🤖 Generated with Claude Code