mirror of
https://github.com/openai/codex.git
synced 2026-11-10 21:00:47 +00:00
Add opt-in structured errors for Guardian circuit-breaker interruptions (#48796)
## Why Guardian denial-limit interruptions lack a structured error identifying the cause. Make this opt-in because older clients may not recognize the new error in shared history. ## What changed - Add `auto_review.circuit_break_action = "strict"` to attach `TooManyDenials` to the interrupted turn. The default leaves the error unset. - Expose `turn.error.codexErrorInfo = "tooManyDenials"` in app-server notifications and saved history, and update protocol schemas and generated types. - Preserve the warning, denial limit, and interrupted status without emitting a separate error notification. ## Testing Add an integration test covering omitted, `default`, and `strict` settings, checking warnings, live turn errors, the absence of separate error notifications, and persisted turn errors after restart. GitOrigin-RevId: cb5d379e64728d4d7b9daf834c13756e4a70db31
This commit is contained in:
@@ -83,6 +83,7 @@ pub enum CodexErrorInfo {
|
||||
ServerOverloaded,
|
||||
CyberPolicy,
|
||||
MisalignmentPolicyViolation,
|
||||
TooManyDenials,
|
||||
HttpConnectionFailed {
|
||||
#[serde(rename = "httpStatusCode")]
|
||||
#[ts(rename = "httpStatusCode")]
|
||||
@@ -135,6 +136,7 @@ impl From<CoreCodexErrorInfo> for CodexErrorInfo {
|
||||
CoreCodexErrorInfo::MisalignmentPolicyViolation => {
|
||||
CodexErrorInfo::MisalignmentPolicyViolation
|
||||
}
|
||||
CoreCodexErrorInfo::TooManyDenials => CodexErrorInfo::TooManyDenials,
|
||||
CoreCodexErrorInfo::HttpConnectionFailed { http_status_code } => {
|
||||
CodexErrorInfo::HttpConnectionFailed { http_status_code }
|
||||
}
|
||||
|
||||
@@ -392,7 +392,7 @@ pub struct Turn {
|
||||
#[serde(default)]
|
||||
pub items_view: TurnItemsView,
|
||||
pub status: TurnStatus,
|
||||
/// Only populated when the Turn's status is failed.
|
||||
/// Error associated with a failed or interrupted turn.
|
||||
pub error: Option<TurnError>,
|
||||
/// Unix timestamp (in seconds) when the turn started.
|
||||
#[ts(type = "number | null")]
|
||||
|
||||
Reference in New Issue
Block a user