mirror of
https://github.com/pchuan98/codex.git
synced 2026-07-01 00:31:56 +08:00
fix: optional schema of memories (#11454)
This commit is contained in:
committed by
GitHub
Unverified
parent
156f47edd0
commit
bd3bf6eda1
@@ -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
|
||||
})
|
||||
}
|
||||
|
||||
@@ -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![
|
||||
|
||||
Reference in New Issue
Block a user