mirror of
https://github.com/openai/codex.git
synced 2026-11-09 20:50:33 +00:00
Preserve complete actions in Guardian approval reviews (#44569)
## Why Truncating action arguments can leave approval reviewers evaluating incomplete actions. Large actions need complete review input and explicit handling when they exceed the review budget. ## What changed - Remove action truncation and the fixed synchronous action byte limit. Admit complete actions against the whole-request budget, splitting long text losslessly into bounded transport parts and accounting for their framing. - Route actions exceeding the asynchronous action budget to synchronous review. Prevent cached scores from covering oversized calls, including expanded approval arguments, while allowing later small actions to recover score reuse. - Request user approval when optional review exhausts its local input budget. Keep required review and compaction service failures closed to approval, and retire exhausted review sessions. ## Testing Add coverage for complete large-action delivery, optional user fallback, required-review denial, subsequent review recovery, async overflow through MCP approval routing, and lossless text splitting with budget accounting. GitOrigin-RevId: 08f06e68a94b2f779480dd6b6cf5bc30b241f6dd
This commit is contained in:
@@ -333,6 +333,9 @@ pub(crate) async fn run_turn(
|
||||
}
|
||||
// Incoming evidence can overflow even below the normal history
|
||||
// threshold. Keep it pending while compacting, then select once more.
|
||||
sess.services
|
||||
.thread_extension_data
|
||||
.insert(crate::guardian::ExhaustedReviewBudget::Compacting);
|
||||
run_auto_compact(
|
||||
&sess,
|
||||
Arc::clone(&first_step_context),
|
||||
@@ -704,6 +707,9 @@ pub(crate) async fn run_turn(
|
||||
// token-budget resets must fail closed and retire the reviewer.
|
||||
// Retry once per model step, so ineffective compaction cannot loop.
|
||||
guardian_budget_compacted = true;
|
||||
sess.services
|
||||
.thread_extension_data
|
||||
.insert(crate::guardian::ExhaustedReviewBudget::Compacting);
|
||||
run_auto_compact(
|
||||
&sess,
|
||||
Arc::clone(&step_context),
|
||||
|
||||
Reference in New Issue
Block a user