Queued /compact typed mid-turn is silently dropped (second /compact minutes later executes)
Environment: Claude Code 2.1.222, desktop app (entrypoint claude-desktop), macOS (darwin 25.5.0).
What happened
While the agent's turn was in flight (long-running background builds + tool calls), the user typed /compact. The session transcript (.jsonl) records it only as a queue-operation entry — no <command-name>/compact user record, no compact_boundary, no Compacted stdout ever follows it. The command was silently discarded. Regular text messages queued after it ("continue", "stop") were all delivered to the model normally.
A second /compact typed ~76s later (also mid-turn) was honored: it produced the <command-name>/compact record immediately and executed ~2 minutes later when the turn yielded (compact_boundary + Compacted).
Transcript evidence (timestamps UTC, one session)
- 02:55:02
queue-operationpayload/compact← never executed, no further trace - 02:55:23
queue-operationcontinue← delivered mid-turn, model responded - 02:55:59–02:56:18 three
queue-operationstopentries - 02:56:18 second
/compact→<command-name>/compactuser record written - 02:58:27
compact_boundary+ summary +<local-command-stdout>Compacted</local-command-stdout>
Expected: a slash command queued mid-turn should execute when the turn yields (as the second one did), or the UI should say it was dropped. Silently discarding it makes it look like the agent ignored the user, and the model has no visibility into it at all.
Impact: user typed /compact twice across two sessions the same day with the same apparent no-op; trust cost lands on the agent even though this is queue handling in the app.
🤖 Filed by Claude Code on user instruction