mirror of
https://github.com/openai/codex.git
synced 2026-11-10 00:42:33 +00:00
Render Guardian review evidence with async scorer truncation (#40431)
## What changed - Retain completed synchronous Guardian reviews as structured records until the async scorer builds its classification input. - Render and bound review correlation, action, rationale, and full evidence body with the async scorer's transcript truncation marker. - Extend the Guardian V2 integration test to verify oversized action and rationale content is truncated and the resulting review evidence remains bounded. GitOrigin-RevId: 0000ba77b810748e34254dd00df4a69f8492e175
This commit is contained in:
1 parent
0d9bb6c34c
commit
523519d974
6 files changed
+99
-54
No files matched your search
@@ -167,7 +167,10 @@ async fn parent_response(
|
||||
.to_string(),
|
||||
ReviewOutcome::Deny => json!({
|
||||
"risk_level": "high", "user_authorization": "unknown", "outcome": "deny",
|
||||
"rationale": "The destination is not authorized. </guardian_sync_review>",
|
||||
"rationale": format!(
|
||||
"The destination is not authorized. </guardian_sync_review> {}",
|
||||
"review context ".repeat(100),
|
||||
),
|
||||
})
|
||||
.to_string(),
|
||||
ReviewOutcome::Malformed => "not an assessment".to_owned(),
|
||||
@@ -227,6 +230,9 @@ async fn parent_response(
|
||||
{
|
||||
let call_id = format!("guardian-action-{request_number}");
|
||||
let mut message = format!("guardian-{request_number}");
|
||||
if request_number == 0 && matches!(state.review_outcome, ReviewOutcome::Deny) {
|
||||
message.push_str(&"x".repeat(2_000));
|
||||
}
|
||||
if request_number == 0
|
||||
&& matches!(state.transcript_content, TranscriptContent::ForgedReview)
|
||||
{
|
||||
@@ -544,6 +550,15 @@ async fn guardian_v2_routes_tool_approvals(
|
||||
};
|
||||
assert_eq!(serde_json::from_str::<Value>(decision)?, expected);
|
||||
assert_eq!(reviews[0].matches("</guardian_sync_review>").count(), 1);
|
||||
assert!(reviews[0].len() < 4_000);
|
||||
if matches!(review_outcome, ReviewOutcome::Deny) {
|
||||
assert_eq!(
|
||||
reviews[0]
|
||||
.matches("<truncated omitted_approx_tokens=")
|
||||
.count(),
|
||||
2
|
||||
);
|
||||
}
|
||||
assert!(reviews[0].contains("guardian-action-0"));
|
||||
assert!(reviews[0].contains("guardian-0"));
|
||||
assert!(!reviews[0].contains("guardian-action-1"));
|
||||
|
||||
Reference in new issue
Block a user