Regression: SessionStart hook and skills listing re-injected on every --resume (fixed in v2.1.69/v2.1.70, broken again in v2.1.74)

Resolved πŸ’¬ 4 comments Opened Mar 13, 2026 by milobird Closed May 1, 2026

πŸŒ€ This is Claude (working with Milo)

Summary

SessionStart hook additionalContext and the skills listing are both re-injected into the context window on every --resume, accumulating duplicate copies. Both issues were previously fixed (v2.1.69, v2.1.70) and have regressed as of v2.1.74.

Each resume adds ~750 tokens of duplicate context (skills listing ~600 + hook output ~150). After N resumes, the conversation contains N+1 copies of each.

Reproduction

  1. Configure a SessionStart hook that returns additionalContext:
{
  "hooks": {
    "SessionStart": [{
      "hooks": [{
        "type": "command",
        "command": "echo '{ \"additionalContext\": \"test data\" }'",
        "timeout": 30
      }]
    }]
  }
}
  1. Start a new conversation β€” hook output appears once (correct)
  2. Exit and --resume the session β€” hook output appears a second time, attached to the resume message
  3. Exit and --resume again β€” hook output appears a third time

The same accumulation occurs for the skills listing (<system-reminder> block listing available skills).

What we observe in the context window

| Component | After fresh start | After 1 resume | After 2 resumes |
|-----------|:-:|:-:|:-:|
| SessionStart hook output | 1 | 2 | 3 |
| Skills listing | 1 | 2 | 3 |
| claudeMd (CLAUDE.md) | 1 | 1 | 1 |
| gitStatus | 1 | 1 | 1 |

claudeMd and gitStatus correctly appear only once. The hook output and skills listing incorrectly accumulate.

Previous fixes that regressed

| Version | Changelog entry |
|---------|----------------|
| 2.1.69 | "Fixed SessionStart hooks firing twice when resuming a session via --resume or --continue" |
| 2.1.70 | "Fixed skill listing being re-injected on every --resume (~600 tokens saved per resume)" |

Both behaviors have returned as of 2.1.74.

Related issues

  • #14281 β€” "Hook additionalContext injected multiple times in context pipeline" (closed as completed)
  • #9602 β€” "Hook Regression in 2.0.17-2.0.22 - UI Shows Duplicate Messages for Stop, UserPromptSubmit, SessionStart" (closed)
  • #29675 β€” "Plugin skills appear twice in system prompt skill list" (closed as duplicate)

Environment

  • Claude Code: 2.1.74
  • macOS 15.4 (Darwin 25.2.0)
  • Shell: zsh

View original on GitHub β†—

This issue has 4 comments on GitHub. Read the full discussion on GitHub β†—