Abhinav
af49d38373
Support compact SessionStart hooks ( #21272 )
...
# Why
Compaction replaces the live conversation history, so hooks that use
`SessionStart` to re-inject durable model context need a way to run
again after that rewrite.
Related - #19905 adds dedicated compact lifecycle hooks
# What
- add `compact` as a supported `SessionStart` source and matcher value
- change pending `SessionStart` state from a single slot to a small FIFO
queue so `resume` / `startup` / `clear` can be preserved alongside a
later `compact`
- drain all queued `SessionStart` sources before the next model request,
preserving their original order
# Testing
The new integration coverage verifies both the basic `compact` matcher
path and the stacked `resume` -> `compact` case where both hooks
contribute `additionalContext` to the next model turn.
2026-05-20 20:46:19 +00:00
..
2026-05-13 16:43:25 +00:00
2026-05-18 18:48:35 -07:00
2026-03-27 19:00:44 -07:00
2026-05-06 18:00:21 +03:00
2026-05-14 12:40:01 -07:00
2026-05-19 11:03:47 -07:00
2026-05-19 19:46:17 +02:00
2026-05-13 03:08:01 +00:00
2026-05-18 18:48:35 -07:00
2026-05-18 19:56:00 -07:00
2026-05-20 04:02:14 +00:00
2026-05-14 16:15:56 -07:00
2026-05-19 15:04:35 +02:00
2026-05-18 18:48:35 -07:00
2026-05-19 15:04:35 +02:00
2026-05-18 21:03:51 -07:00
2026-05-19 10:19:46 +00:00
2026-05-14 18:04:26 -07:00
2026-05-18 19:56:00 -07:00
2026-04-28 17:05:53 -07:00
2026-05-18 18:48:35 -07:00
2026-05-14 12:40:01 -07:00
2026-05-14 11:52:43 -07:00
2026-05-20 20:46:19 +00:00
2026-05-18 19:56:00 -07:00
2026-05-18 19:56:00 -07:00
2026-05-18 19:56:00 -07:00
2026-05-14 12:59:56 -07:00
2026-05-18 19:56:00 -07:00
2026-05-15 15:26:21 +02:00
2026-05-18 21:03:51 -07:00
2026-05-18 21:03:51 -07:00
2026-05-18 21:03:51 -07:00
2026-05-18 19:56:00 -07:00
2026-05-18 19:56:00 -07:00
2026-05-15 01:26:50 +00:00
2026-05-18 18:48:35 -07:00
2026-05-18 21:03:51 -07:00
2026-05-18 19:56:00 -07:00
2026-05-18 21:03:51 -07:00
2026-05-15 15:04:04 -07:00
2026-05-18 21:03:51 -07:00
2026-05-18 18:48:35 -07:00
2026-05-19 15:04:35 +02:00
2026-05-06 22:48:29 -07:00
2026-05-18 18:48:35 -07:00
2026-05-18 18:48:35 -07:00
2026-05-18 19:56:00 -07:00
2026-05-18 21:03:51 -07:00
2026-05-18 18:48:35 -07:00
2026-05-18 19:56:00 -07:00
2026-05-18 19:56:00 -07:00
2026-05-19 14:45:37 -07:00
2026-05-18 19:56:00 -07:00
2026-05-19 19:46:17 +02:00
2026-05-18 21:54:36 +00:00
2026-05-18 21:03:51 -07:00
2026-05-18 21:03:51 -07:00
2026-05-20 00:25:04 -07:00
2026-05-13 00:28:15 +00:00
2026-05-18 19:56:00 -07:00
2026-05-19 19:46:17 +02:00
2026-05-14 16:15:56 -07:00
2026-05-18 09:57:54 -07:00
2026-05-18 19:56:00 -07:00
2026-05-18 19:56:00 -07:00
2026-05-18 19:56:00 -07:00
2026-05-19 19:46:17 +02:00
2026-05-18 19:56:00 -07:00
2026-05-18 18:48:35 -07:00
2026-05-18 18:48:35 -07:00
2026-05-19 12:45:08 -07:00
2026-05-18 19:56:00 -07:00
2026-05-18 19:56:00 -07:00
2026-05-19 11:03:47 -07:00
2026-05-18 19:56:00 -07:00
2026-03-11 12:33:09 -07:00
2026-05-19 20:48:37 -07:00
2026-05-06 22:48:29 -07:00
2026-05-18 18:48:35 -07:00
2026-05-18 19:56:00 -07:00
2026-05-19 11:03:47 -07:00
2026-04-28 23:01:40 +00:00
2026-05-18 19:56:00 -07:00
2026-05-18 18:48:35 -07:00
2026-05-19 11:03:47 -07:00