mirror of
https://github.com/openai/codex.git
synced 2026-11-06 00:30:29 +00:00
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.
This commit is contained in:
1 parent
9265701b7f
commit
af49d38373
8 files changed
+476
-55
No files matched your search
@@ -1184,7 +1184,7 @@ impl Session {
|
||||
Box::pin(sess.record_initial_history(initial_history)).await;
|
||||
{
|
||||
let mut state = sess.state.lock().await;
|
||||
state.set_pending_session_start_source(Some(session_start_source));
|
||||
state.queue_pending_session_start_source(session_start_source);
|
||||
}
|
||||
|
||||
Ok(sess)
|
||||
|
||||
Reference in new issue
Block a user