{"version":"2.1.281","anchor":"hooks-module-sessionstart-and-sessionend-lifecycle-tweaks","canonical_anchor":"hooks-module-sessionstart-and-sessionend-lifecycle-tweaks","heading":"Hooks-module session.start and session.end lifecycle tweaks","tier":"notice","area":"Hooks","url":"https:\/\/changelogs.core-directive.com\/v\/2.1.281\/e\/hooks-module-sessionstart-and-sessionend-lifecycle-tweaks","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.281","markdown":"### Hooks-module session.start and session.end lifecycle tweaks\n\nHook session.start now skips if it is no longer wanted after modules load, and session.end waits for its fallback under the timeout\n\n**Unclear.** The finding does not say what condition the still-wanted check tests for `session.start`.\n\n**What**\n\nTwo lifecycle events in the hooks module now behave differently. A hook is a small piece of code that runs automatically when something happens in Claude Code.\n\n- `session.start` now checks, after the hook modules have loaded, whether the start is still wanted, and skips it if that check no longer holds.\n\n- `session.end`, on the path that does not use a module, now waits for its fallback step inside the same error handling, and that wait is limited by the timeout.\n\n**Why**\n\nA start that is no longer needed by the time loading finishes is now dropped rather than run anyway. At session end, a slow fallback step is now bound by the timeout, and any failure in it is caught by the surrounding error handling.\n\n- Area: Hooks\n- Tier: You'll notice\n- Useful: 2\/5\n- Signal: 2\/5"}