{"version":"2.1.295","anchor":"async-sessionstart-hook-output-deduplicated","canonical_anchor":"async-sessionstart-hook-output-deduplicated","heading":"Repeated output from background SessionStart hooks is no longer added twice","tier":"notice","area":"Hooks","scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.295\/e\/async-sessionstart-hook-output-deduplicated","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.295","markdown":"### Repeated output from background SessionStart hooks is no longer added twice\n\nBackground SessionStart hook output is skipped when Claude already has the same text from an earlier run, so the conversation is not padded with duplicates\n\n**What**\n\nA hook is a command or script you configure to run automatically at a set moment. A `SessionStart` hook runs when a session (one continuous conversation with Claude Code) begins or resumes. Some hooks run asynchronously, which means in the background without holding up the session, and their output is added to the conversation once it arrives.\n\nBefore, every response from such a background hook was added to the conversation. Now Claude Code drops a background `SessionStart` response when Claude already has the same text from an earlier `SessionStart` run. Output that is added now also records which command produced it and which plugin it came from. A plugin is an add-on package that extends Claude Code.\n\n**Why**\n\nIf you resume a session or a `SessionStart` hook runs more than once, Claude no longer receives the same context again and again, and the conversation stays shorter.\n\n- Area: Hooks\n- Tier: You'll notice\n- Useful: 2\/5\n- Signal: 1\/5\n- Scope: individual\n- Heads-up: no"}