{"version":"2.1.277","anchor":"session-tracker-now-tracks-a-distinct-head-hooks-pending-s","canonical_anchor":"session-tracker-now-tracks-a-distinct-head-hooks-pending-s","heading":"Session tracker now tracks a distinct \"head hooks pending\" state before recording transcript history","tier":"internal","area":"Session Lifecycle","scope":null,"heads_up":null,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.277\/e\/session-tracker-now-tracks-a-distinct-head-hooks-pending-s","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.277","markdown":"### Session tracker now tracks a distinct \"head hooks pending\" state before recording transcript history\n\nSession history recorder gains a pending state that holds messages until startup hooks finish\n\n**What**\n\nClaude Code's internal session-history tracker now has a \"head hooks pending\" state. When it's active, incoming messages are held instead of being recorded immediately, and are replayed once the hooks that run at the start of a session finish resolving. The underlying hook lifecycle machinery now publishes this pending state and waits until after the transcript is spliced in before releasing it, rather than releasing right away.\n\n**Why**\n\nThis avoids recording conversation history out of order or before session-start hooks have had a chance to run, keeping the saved transcript consistent.\n\n- Area: Session Lifecycle\n- Tier: Under the hood\n- Useful: 2\/5\n- Signal: 2\/5"}