From 6cadc1e883a46d3313d66a9ee2f740213a854b82 Mon Sep 17 00:00:00 2001 From: Ahmed Ibrahim Date: Sat, 7 Mar 2026 10:49:57 -0800 Subject: [PATCH] codex: sort guardian action json (#13593) --- codex-rs/core/src/guardian.rs | 10 ++++++---- codex-rs/core/src/guardian_tests.rs | 20 ++++++++++++++++++++ 2 files changed, 26 insertions(+), 4 deletions(-) diff --git a/codex-rs/core/src/guardian.rs b/codex-rs/core/src/guardian.rs index 2bdca0da01..22a4db9f8f 100644 --- a/codex-rs/core/src/guardian.rs +++ b/codex-rs/core/src/guardian.rs @@ -664,12 +664,14 @@ fn truncate_guardian_action_value(value: Value) -> Value { .map(truncate_guardian_action_value) .collect::>(), ), - Value::Object(values) => Value::Object( - values + Value::Object(values) => { + let mut entries = values .into_iter() .map(|(key, value)| (key, truncate_guardian_action_value(value))) - .collect(), - ), + .collect::>(); + entries.sort_by(|(left, _), (right, _)| left.cmp(right)); + Value::Object(entries.into_iter().collect()) + } other => other, } } diff --git a/codex-rs/core/src/guardian_tests.rs b/codex-rs/core/src/guardian_tests.rs index 5426891f39..55d61a2c77 100644 --- a/codex-rs/core/src/guardian_tests.rs +++ b/codex-rs/core/src/guardian_tests.rs @@ -169,8 +169,28 @@ fn format_guardian_action_pretty_truncates_large_string_fields() { .as_str() .expect("test patch should serialize as a string"); + let change_count_index = rendered + .find("\"change_count\"") + .expect("rendered json should contain change_count"); + let cwd_index = rendered + .find("\"cwd\"") + .expect("rendered json should contain cwd"); + let files_index = rendered + .find("\"files\"") + .expect("rendered json should contain files"); + let patch_index = rendered + .find("\"patch\"") + .expect("rendered json should contain patch"); + let tool_index = rendered + .find("\"tool\"") + .expect("rendered json should contain tool"); + assert!(rendered.contains("\"tool\": \"apply_patch\"")); assert!(rendered.len() < original_patch.len()); + assert!(change_count_index < cwd_index); + assert!(cwd_index < files_index); + assert!(files_index < patch_index); + assert!(patch_index < tool_index); } #[test]