{"version":"2.1.290","anchor":"dedup-of-user-messages-gains-a-withheld-echo-case-and-a-new","canonical_anchor":"dedup-of-user-messages-gains-a-withheld-echo-case-and-a-new","heading":"Repeated messages still waiting in the queue are now held back","tier":"notice","area":"Messaging","scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.290\/e\/dedup-of-user-messages-gains-a-withheld-echo-case-and-a-new","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.290","markdown":"### Repeated messages still waiting in the queue are now held back\n\nA repeat of a message Claude Code is still waiting to process is now marked as a withheld echo, and repeats get new timing diagnostics\n\n**Unclear.** What the skipped release step does, and so what you would notice, is not clear.\n\n**What**\n\nEvery message you send carries its own ID. Sometimes the same message arrives twice. If it arrives again while Claude Code is still waiting to process the first copy, for example because that copy is still in the message queue, Claude Code now marks the repeat as a withheld echo and skips the step that would normally release it. Before, every repeat was logged as skipped and released the same way.\n\nA new diagnostic record also notes how long ago an earlier copy of the message had started. It sorts that time into one of these ranges:\n\n- under 1 minute\n\n- under 10 minutes\n\n- under 1 hour\n\n- under 6 hours\n\n- 6 hours or more\n\nThe record also notes the state of the message queue and whether the conversation had been compacted, which means shortened by summarising earlier parts.\n\n**Why**\n\nThis changes how messages that are delivered more than once are handled in remote sessions and in SDK sessions, which are programs built on top of Claude Code. The new record helps trace duplicate or late-arriving messages.\n\n- Area: Messaging\n- Tier: You'll notice\n- Useful: 1\/5\n- Signal: 1\/5\n- Scope: individual\n- Heads-up: no"}