Skip to content

Add opt-in structured errors for Guardian circuit-breaker interruptions - #48796

Merged
copyberry[bot] merged 1 commit into
mainfrom
copyberry/codex-internal-to-codex-oss/cb5d379e64728d4d7b9daf834c13756e4a70db31
Sep 27, 2026
Merged

copyberry[bot] merged 1 commit into
mainfrom
copyberry/codex-internal-to-codex-oss/cb5d379e64728d4d7b9daf834c13756e4a70db31

Conversation

@copyberry

@copyberry copyberry Bot commented Sep 27, 2026 •

Copy link
Copy Markdown

Add opt-in structured errors for Guardian circuit-breaker interruptions

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.

…ns (#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
@copyberry
copyberry Bot force-pushed the copyberry/codex-internal-to-codex-oss/cb5d379e64728d4d7b9daf834c13756e4a70db31 branch from a0560d2 to d7748e1 Compare September 27, 2026 22:05
@copyberry
copyberry Bot merged commit d7748e1 into main Sep 27, 2026
13 of 18 checks passed
@copyberry
copyberry Bot deleted the copyberry/codex-internal-to-codex-oss/cb5d379e64728d4d7b9daf834c13756e4a70db31 branch September 27, 2026 22:05
@github-actions github-actions Bot locked and limited conversation to collaborators Sep 27, 2026
@qooksgit
qooksgit deployed to issue-triage September 27, 2026 22:06 — with GitHub Actions Active
@qooksgit
qooksgit deployed to issue-triage September 27, 2026 22:06 — with GitHub Actions Active
@qooksgit
qooksgit deployed to issue-triage September 27, 2026 22:06 — with GitHub Actions Active
@qooksgit
qooksgit deployed to issue-triage September 27, 2026 22:08 — with GitHub Actions Active

This branch was successfully deployed

1 active deployment
issue-triage — d7748e11 Deployed Sep 27, 2026 by SoleCloth7 via Translate non-English issue #15700
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants