mirror of
https://github.com/openai/codex.git
synced 2026-08-23 13:09:46 +00:00
Identify detached memory requests as memory consolidation (#40186)
## What changed - Set `thread_source` to `memory_consolidation` in turn metadata for detached memory requests. - Verify that startup requests carry matching turn metadata in the request header and nested `client_metadata`. GitOrigin-RevId: 318d6f097e07463ac7a1c52b35a926532e67b83d
This commit is contained in:
@@ -87,6 +87,7 @@ pub async fn detached_memory_responses_metadata(
|
||||
) -> CodexResponsesMetadata {
|
||||
CodexResponsesMetadata {
|
||||
request_kind: Some(CodexResponsesRequestKind::Memory),
|
||||
thread_source: Some(ThreadSource::MemoryConsolidation),
|
||||
subagent_header: subagent_header_value(session_source),
|
||||
sandbox: sandbox.map(ToString::to_string),
|
||||
sandbox_mode: Some(
|
||||
|
||||
@@ -153,6 +153,10 @@ async fn detached_memory_responses_metadata_omits_turn_identity() {
|
||||
assert!(!header.contains("東京"));
|
||||
let parsed: Value = serde_json::from_str(&header).expect("valid json");
|
||||
assert_eq!(parsed["request_kind"].as_str(), Some("memory"));
|
||||
assert_eq!(
|
||||
parsed["thread_source"].as_str(),
|
||||
Some("memory_consolidation")
|
||||
);
|
||||
assert_eq!(parsed[SANDBOX_MODE_KEY].as_str(), Some("read-only"));
|
||||
assert!(parsed.get("session_id").is_none());
|
||||
assert!(parsed.get("thread_id").is_none());
|
||||
@@ -205,6 +209,7 @@ async fn detached_memory_responses_metadata_omits_empty_workspace_metadata() {
|
||||
serde_json::json!({
|
||||
"request_kind": "memory",
|
||||
"sandbox_mode": "read-only",
|
||||
"thread_source": "memory_consolidation",
|
||||
})
|
||||
);
|
||||
}
|
||||
|
||||
@@ -507,7 +507,18 @@ async fn memories_startup_phase1_uses_live_thread_service_tier_and_detached_meta
|
||||
.expect("detached memory request should include workspace metadata");
|
||||
let metadata: serde_json::Value =
|
||||
serde_json::from_str(&metadata_header).expect("turn metadata json");
|
||||
let client_metadata: serde_json::Value = serde_json::from_str(
|
||||
request.body_json()["client_metadata"]["x-codex-turn-metadata"]
|
||||
.as_str()
|
||||
.expect("detached memory request should include client metadata"),
|
||||
)
|
||||
.expect("client metadata json");
|
||||
assert_eq!(client_metadata, metadata);
|
||||
assert_eq!(metadata["request_kind"].as_str(), Some("memory"));
|
||||
assert_eq!(
|
||||
metadata["thread_source"].as_str(),
|
||||
Some("memory_consolidation")
|
||||
);
|
||||
assert_eq!(metadata["sandbox_mode"].as_str(), Some("workspace-write"));
|
||||
assert!(metadata.get("session_id").is_none());
|
||||
assert!(metadata.get("thread_id").is_none());
|
||||
|
||||
Reference in New Issue
Block a user