Hey, thanks for the detailed report with clear repro steps.
This is a confirmed bug. In the IDE, the sessionStart hook runs async before the composer handle is fully created, so additional_context can get silently dropped even if the log says “merged successfully”. Basically, it’s a race condition between the hook finishing and the composer being ready to accept context.
The ironic part is that sessionStart was recommended as a workaround for a similar bug with postToolUse additional_context Native postToolUse hooks accept and log additional_context successfully, but the injected context is not surfaced to the model, but as you can see, the context delivery path is also broken for sessionStart in the IDE.
I’ve passed this to the team. No timelines yet, but your report helps with prioritization.
As a temporary workaround, you can try duplicating the context in a .cursor/rules file if the instructions are fairly static. Not ideal, but it should at least get your preferences through to the model.