fix: optional schema of memories (#11454)

This commit is contained in:
jif-oai
2026-02-11 15:05:36 +00:00
committed by GitHub
Unverified
parent 156f47edd0
commit bd3bf6eda1
4 changed files with 29 additions and 5 deletions
+1 -1
View File
@@ -32,7 +32,7 @@ pub(super) fn stage_one_output_schema() -> Value {
"rollout_slug": { "type": "string" },
"raw_memory": { "type": "string" }
},
"required": ["rollout_summary", "raw_memory"],
"required": ["rollout_summary", "rollout_slug", "raw_memory"],
"additionalProperties": false
})
}
+25
View File
@@ -17,6 +17,7 @@ use codex_protocol::protocol::CompactedItem;
use codex_protocol::protocol::RolloutItem;
use codex_state::Stage1Output;
use pretty_assertions::assert_eq;
use serde_json::Value;
use tempfile::tempdir;
#[test]
@@ -57,6 +58,30 @@ fn parse_stage_one_output_accepts_optional_rollout_slug() {
assert_eq!(parsed._rollout_slug, Some("my-slug".to_string()));
}
#[test]
fn stage_one_output_schema_requires_all_declared_properties() {
let schema = super::stage_one::stage_one_output_schema();
let properties = schema
.get("properties")
.and_then(Value::as_object)
.expect("properties object");
let required = schema
.get("required")
.and_then(Value::as_array)
.expect("required array");
let mut property_keys = properties.keys().map(String::as_str).collect::<Vec<_>>();
property_keys.sort_unstable();
let mut required_keys = required
.iter()
.map(|key| key.as_str().expect("required key string"))
.collect::<Vec<_>>();
required_keys.sort_unstable();
assert_eq!(required_keys, property_keys);
}
#[test]
fn serialize_filtered_rollout_response_items_keeps_response_and_compacted() {
let input = vec![