mirror of
https://github.com/openai/codex.git
synced 2026-11-13 14:46:14 +00:00
Include context window IDs in response metadata (#39847)
## What changed - Add `context_window_id` to turn metadata for sampling and compaction requests, using the UUID for the model-visible context window. - Keep the ID stable for requests in the same context window and advance it after compaction, independently of the existing thread-generation `window_id`. - Reserve `context_window_id` so client metadata cannot override it. ## Testing - Cover HTTP and WebSocket metadata, remote compaction, token-budget context alignment, resume behavior, and post-compaction window changes. GitOrigin-RevId: 55cceea377ad509c8dd96ad668f2b5703ea46a63
This commit is contained in:
1 parent
bd19459358
commit
27c05a52e0
14 files changed
+151
-32
No files matched your search
@@ -6,6 +6,8 @@ use crate::config::ConstraintError;
|
||||
use crate::environment_selection::ThreadEnvironments;
|
||||
use crate::environment_selection::TurnEnvironmentSnapshot;
|
||||
use crate::hook_mcp_executor::CoreHookMcpExecutor;
|
||||
use crate::responses_metadata::CodexResponsesMetadata;
|
||||
use crate::responses_metadata::CodexResponsesRequestKind;
|
||||
use crate::shell_snapshot::ShellSnapshot;
|
||||
use crate::state::ActiveTurn;
|
||||
use codex_extension_api::ExtensionDataInit;
|
||||
@@ -638,6 +640,22 @@ impl Session {
|
||||
state.session_configuration.originator.clone()
|
||||
}
|
||||
|
||||
pub(crate) async fn responses_metadata(
|
||||
&self,
|
||||
turn_context: &TurnContext,
|
||||
request_kind: CodexResponsesRequestKind,
|
||||
) -> CodexResponsesMetadata {
|
||||
let (window_id, context_window_id) = self.current_window().await;
|
||||
CodexResponsesMetadata {
|
||||
context_window_id: Some(context_window_id),
|
||||
..turn_context.turn_metadata_state.to_responses_metadata(
|
||||
self.installation_id.clone(),
|
||||
window_id,
|
||||
request_kind,
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
#[instrument(name = "session_init", level = "info", skip_all)]
|
||||
#[allow(clippy::too_many_arguments)]
|
||||
pub(crate) async fn new(
|
||||
|
||||
Reference in new issue
Block a user