fix(codex): accept rate limit errors on thread resume - #8897

Open
nateEc wants to merge 3 commits into
pingdotgg:mainfrom
nateEc:codex/fix-8875-codex-rate-limit-resume
Open

fix(codex): accept rate limit errors on thread resume#8897
nateEc wants to merge 3 commits into
pingdotgg:mainfrom
nateEc:codex/fix-8875-codex-rate-limit-resume

Conversation

@nateEc

@nateEcnateEc commented Aug 31, 2026

Copy link
Copy Markdown
Contributor

Fixes#8875.

A persisted Codex rateLimitExceeded value was rejected while decoding thread/resume, making affected historical threads permanently unresumable.

The generated resume schema now accepts the value, and the generator retains the narrow compatibility override so the next protocol refresh preserves it.

Verification: focused schema test and effect-codex-app-server typecheck.

Model and harness: GPT-5 Codex via Codex CLI.


Note

Low Risk
Adds a backward-compatible enum variant to runtime validation only; no auth or persistence logic changes.

Overview
Fixes decoding failures when persisted thread data includes rateLimitExceeded in turn errors, which blocked read, resume, and rollback for affected threads.

Adds applyCodex0151DefinitionCompatibility in the schema generator so CodexErrorInfo on V2ThreadReadResponse, V2ThreadResumeResponse, and V2ThreadRollbackResponse gains that enum value when upstream JSON schema omits it (same pattern as existing 0.150 overrides). Regenerated schema.gen.ts and a focused test assert all three response schemas accept the value.

Reviewed by Cursor Bugbot for commit 3a4b9fa. Bugbot is set up for automated code reviews on this repo. Configure here.

Note

Add rate-limit error variant to thread response schemas in codex-app-server

  • Adds a compatibility transformation in generate.ts that appends the rate-limit error value to the CodexErrorInfo enum for thread read, resume, and rollback responses when the upstream definition lacks it.
  • The transformation preserves existing Codex 0.150 compatibility overrides and only applies when no override is present.
  • Regenerates schema.gen.ts and adds tests in schema.test.ts verifying all three response schemas accept a failed turn with the rate-limit error.

Macroscope summarized 3a4b9fa.

- Add rateLimitExceeded to the thread resume error schema.
- Preserve the compatibility rule in the schema generator.
- Verify with the focused schema test and package typecheck.
@coderabbitai

coderabbitaiBot commented Aug 31, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Team

Run ID: c28c0dcd-f3ab-4817-a24b-0d0108dd616c

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Warning

Your free Security trial is over. An organization admin can upgrade to Advanced for continuous pull request security review or dismiss this notice.


Comment @coderabbitai help to get the list of available commands.

@github-actionsgithub-actionsBot added vouch:unvouched PR author is not yet trusted in the VOUCHED list. size:M 30-99 changed lines (additions + deletions). labels Aug 31, 2026
Comment threadpackages/effect-codex-app-server/scripts/generate.ts
@macroscopeapp

macroscopeappBot commented Aug 31, 2026

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Approved at 3a4b9fa

Macroscope's review found this PR approvable — This is a small, backwards-compatible schema compatibility fix that allows an existing thread response path to accept persisted rate-limit errors without changing other payload handling. The generator, generated schemas, and focused nested-response tests are all confined to the codex app-server package.

Notes:

  • No code objects were reviewed. Approvability was decided on eligibility alone.

You can add or adjust custom eligibility rules. Learn more.

将 Codex 的 rateLimitExceeded 兼容范围扩展至读取、恢复和回滚线程响应。
同步生成器规则与生成 schema,并新增三类响应的回归断言。
验证:schema 测试 3/3、effect-codex-app-server typecheck、格式检查通过。
@github-actionsgithub-actionsBot added vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. and removed vouch:unvouched PR author is not yet trusted in the VOUCHED list. labels Sep 2, 2026

@cursorcursorBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes using high effort and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit 66d0cf1. Configure here.

Comment threadpackages/effect-codex-app-server/src/schema.test.ts Outdated
通过完整 thread/read、thread/resume 与 thread/rollback 响应验证限流错误的嵌套解码。\n\n将响应断言函数提升到模块作用域,避免每次测试重复编译 Schema。\n\n验证:聚焦 schema 测试与包类型检查通过。
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:M30-99 changed lines (additions + deletions).vouch:trustedPR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Codex rateLimitExceeded error makes threads permanently unresumable

1 participant

@nateEc
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

fix(codex): accept rate limit errors on thread resume - #8897

Open
nateEc wants to merge 3 commits into
pingdotgg:mainfrom
nateEc:codex/fix-8875-codex-rate-limit-resume
Open

fix(codex): accept rate limit errors on thread resume#8897
nateEc wants to merge 3 commits into
pingdotgg:mainfrom
nateEc:codex/fix-8875-codex-rate-limit-resume

Conversation

@nateEc

@nateEcnateEc commented Aug 31, 2026

Copy link
Copy Markdown
Contributor

Fixes#8875.

A persisted Codex rateLimitExceeded value was rejected while decoding thread/resume, making affected historical threads permanently unresumable.

The generated resume schema now accepts the value, and the generator retains the narrow compatibility override so the next protocol refresh preserves it.

Verification: focused schema test and effect-codex-app-server typecheck.

Model and harness: GPT-5 Codex via Codex CLI.


Note

Low Risk
Adds a backward-compatible enum variant to runtime validation only; no auth or persistence logic changes.

Overview
Fixes decoding failures when persisted thread data includes rateLimitExceeded in turn errors, which blocked read, resume, and rollback for affected threads.

Adds applyCodex0151DefinitionCompatibility in the schema generator so CodexErrorInfo on V2ThreadReadResponse, V2ThreadResumeResponse, and V2ThreadRollbackResponse gains that enum value when upstream JSON schema omits it (same pattern as existing 0.150 overrides). Regenerated schema.gen.ts and a focused test assert all three response schemas accept the value.

Reviewed by Cursor Bugbot for commit 3a4b9fa. Bugbot is set up for automated code reviews on this repo. Configure here.

Note

Add rate-limit error variant to thread response schemas in codex-app-server

  • Adds a compatibility transformation in generate.ts that appends the rate-limit error value to the CodexErrorInfo enum for thread read, resume, and rollback responses when the upstream definition lacks it.
  • The transformation preserves existing Codex 0.150 compatibility overrides and only applies when no override is present.
  • Regenerates schema.gen.ts and adds tests in schema.test.ts verifying all three response schemas accept a failed turn with the rate-limit error.

Macroscope summarized 3a4b9fa.

- Add rateLimitExceeded to the thread resume error schema.
- Preserve the compatibility rule in the schema generator.
- Verify with the focused schema test and package typecheck.
@coderabbitai

coderabbitaiBot commented Aug 31, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Team

Run ID: c28c0dcd-f3ab-4817-a24b-0d0108dd616c

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Warning

Your free Security trial is over. An organization admin can upgrade to Advanced for continuous pull request security review or dismiss this notice.


Comment @coderabbitai help to get the list of available commands.

@github-actionsgithub-actionsBot added vouch:unvouched PR author is not yet trusted in the VOUCHED list. size:M 30-99 changed lines (additions + deletions). labels Aug 31, 2026
Comment threadpackages/effect-codex-app-server/scripts/generate.ts
@macroscopeapp

macroscopeappBot commented Aug 31, 2026

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Approved at 3a4b9fa

Macroscope's review found this PR approvable — This is a small, backwards-compatible schema compatibility fix that allows an existing thread response path to accept persisted rate-limit errors without changing other payload handling. The generator, generated schemas, and focused nested-response tests are all confined to the codex app-server package.

Notes:

  • No code objects were reviewed. Approvability was decided on eligibility alone.

You can add or adjust custom eligibility rules. Learn more.

将 Codex 的 rateLimitExceeded 兼容范围扩展至读取、恢复和回滚线程响应。
同步生成器规则与生成 schema,并新增三类响应的回归断言。
验证:schema 测试 3/3、effect-codex-app-server typecheck、格式检查通过。
@github-actionsgithub-actionsBot added vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. and removed vouch:unvouched PR author is not yet trusted in the VOUCHED list. labels Sep 2, 2026

@cursorcursorBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes using high effort and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit 66d0cf1. Configure here.

Comment threadpackages/effect-codex-app-server/src/schema.test.ts Outdated
通过完整 thread/read、thread/resume 与 thread/rollback 响应验证限流错误的嵌套解码。\n\n将响应断言函数提升到模块作用域,避免每次测试重复编译 Schema。\n\n验证:聚焦 schema 测试与包类型检查通过。
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:M30-99 changed lines (additions + deletions).vouch:trustedPR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Codex rateLimitExceeded error makes threads permanently unresumable

1 participant

@nateEc
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

fix(codex): accept rate limit errors on thread resume - #8897

Open
nateEc wants to merge 3 commits into
pingdotgg:mainfrom
nateEc:codex/fix-8875-codex-rate-limit-resume
Open

fix(codex): accept rate limit errors on thread resume#8897
nateEc wants to merge 3 commits into
pingdotgg:mainfrom
nateEc:codex/fix-8875-codex-rate-limit-resume

Conversation

@nateEc

@nateEcnateEc commented Aug 31, 2026

Copy link
Copy Markdown
Contributor

Fixes#8875.

A persisted Codex rateLimitExceeded value was rejected while decoding thread/resume, making affected historical threads permanently unresumable.

The generated resume schema now accepts the value, and the generator retains the narrow compatibility override so the next protocol refresh preserves it.

Verification: focused schema test and effect-codex-app-server typecheck.

Model and harness: GPT-5 Codex via Codex CLI.


Note

Low Risk
Adds a backward-compatible enum variant to runtime validation only; no auth or persistence logic changes.

Overview
Fixes decoding failures when persisted thread data includes rateLimitExceeded in turn errors, which blocked read, resume, and rollback for affected threads.

Adds applyCodex0151DefinitionCompatibility in the schema generator so CodexErrorInfo on V2ThreadReadResponse, V2ThreadResumeResponse, and V2ThreadRollbackResponse gains that enum value when upstream JSON schema omits it (same pattern as existing 0.150 overrides). Regenerated schema.gen.ts and a focused test assert all three response schemas accept the value.

Reviewed by Cursor Bugbot for commit 3a4b9fa. Bugbot is set up for automated code reviews on this repo. Configure here.

Note

Add rate-limit error variant to thread response schemas in codex-app-server

  • Adds a compatibility transformation in generate.ts that appends the rate-limit error value to the CodexErrorInfo enum for thread read, resume, and rollback responses when the upstream definition lacks it.
  • The transformation preserves existing Codex 0.150 compatibility overrides and only applies when no override is present.
  • Regenerates schema.gen.ts and adds tests in schema.test.ts verifying all three response schemas accept a failed turn with the rate-limit error.

Macroscope summarized 3a4b9fa.

- Add rateLimitExceeded to the thread resume error schema.
- Preserve the compatibility rule in the schema generator.
- Verify with the focused schema test and package typecheck.
@coderabbitai

coderabbitaiBot commented Aug 31, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Team

Run ID: c28c0dcd-f3ab-4817-a24b-0d0108dd616c

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Warning

Your free Security trial is over. An organization admin can upgrade to Advanced for continuous pull request security review or dismiss this notice.


Comment @coderabbitai help to get the list of available commands.

@github-actionsgithub-actionsBot added vouch:unvouched PR author is not yet trusted in the VOUCHED list. size:M 30-99 changed lines (additions + deletions). labels Aug 31, 2026
Comment threadpackages/effect-codex-app-server/scripts/generate.ts
@macroscopeapp

macroscopeappBot commented Aug 31, 2026

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Approved at 3a4b9fa

Macroscope's review found this PR approvable — This is a small, backwards-compatible schema compatibility fix that allows an existing thread response path to accept persisted rate-limit errors without changing other payload handling. The generator, generated schemas, and focused nested-response tests are all confined to the codex app-server package.

Notes:

  • No code objects were reviewed. Approvability was decided on eligibility alone.

You can add or adjust custom eligibility rules. Learn more.

将 Codex 的 rateLimitExceeded 兼容范围扩展至读取、恢复和回滚线程响应。
同步生成器规则与生成 schema,并新增三类响应的回归断言。
验证:schema 测试 3/3、effect-codex-app-server typecheck、格式检查通过。
@github-actionsgithub-actionsBot added vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. and removed vouch:unvouched PR author is not yet trusted in the VOUCHED list. labels Sep 2, 2026

@cursorcursorBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes using high effort and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit 66d0cf1. Configure here.

Comment threadpackages/effect-codex-app-server/src/schema.test.ts Outdated
通过完整 thread/read、thread/resume 与 thread/rollback 响应验证限流错误的嵌套解码。\n\n将响应断言函数提升到模块作用域,避免每次测试重复编译 Schema。\n\n验证:聚焦 schema 测试与包类型检查通过。
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:M30-99 changed lines (additions + deletions).vouch:trustedPR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Codex rateLimitExceeded error makes threads permanently unresumable

1 participant

@nateEc
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

fix(codex): accept rate limit errors on thread resume - #8897

Open
nateEc wants to merge 3 commits into
pingdotgg:mainfrom
nateEc:codex/fix-8875-codex-rate-limit-resume
Open

fix(codex): accept rate limit errors on thread resume#8897
nateEc wants to merge 3 commits into
pingdotgg:mainfrom
nateEc:codex/fix-8875-codex-rate-limit-resume

Conversation

@nateEc

@nateEcnateEc commented Aug 31, 2026

Copy link
Copy Markdown
Contributor

Fixes#8875.

A persisted Codex rateLimitExceeded value was rejected while decoding thread/resume, making affected historical threads permanently unresumable.

The generated resume schema now accepts the value, and the generator retains the narrow compatibility override so the next protocol refresh preserves it.

Verification: focused schema test and effect-codex-app-server typecheck.

Model and harness: GPT-5 Codex via Codex CLI.


Note

Low Risk
Adds a backward-compatible enum variant to runtime validation only; no auth or persistence logic changes.

Overview
Fixes decoding failures when persisted thread data includes rateLimitExceeded in turn errors, which blocked read, resume, and rollback for affected threads.

Adds applyCodex0151DefinitionCompatibility in the schema generator so CodexErrorInfo on V2ThreadReadResponse, V2ThreadResumeResponse, and V2ThreadRollbackResponse gains that enum value when upstream JSON schema omits it (same pattern as existing 0.150 overrides). Regenerated schema.gen.ts and a focused test assert all three response schemas accept the value.

Reviewed by Cursor Bugbot for commit 3a4b9fa. Bugbot is set up for automated code reviews on this repo. Configure here.

Note

Add rate-limit error variant to thread response schemas in codex-app-server

  • Adds a compatibility transformation in generate.ts that appends the rate-limit error value to the CodexErrorInfo enum for thread read, resume, and rollback responses when the upstream definition lacks it.
  • The transformation preserves existing Codex 0.150 compatibility overrides and only applies when no override is present.
  • Regenerates schema.gen.ts and adds tests in schema.test.ts verifying all three response schemas accept a failed turn with the rate-limit error.

Macroscope summarized 3a4b9fa.

- Add rateLimitExceeded to the thread resume error schema.
- Preserve the compatibility rule in the schema generator.
- Verify with the focused schema test and package typecheck.
@coderabbitai

coderabbitaiBot commented Aug 31, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Team

Run ID: c28c0dcd-f3ab-4817-a24b-0d0108dd616c

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Warning

Your free Security trial is over. An organization admin can upgrade to Advanced for continuous pull request security review or dismiss this notice.


Comment @coderabbitai help to get the list of available commands.

@github-actionsgithub-actionsBot added vouch:unvouched PR author is not yet trusted in the VOUCHED list. size:M 30-99 changed lines (additions + deletions). labels Aug 31, 2026
Comment threadpackages/effect-codex-app-server/scripts/generate.ts
@macroscopeapp

macroscopeappBot commented Aug 31, 2026

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Approved at 3a4b9fa

Macroscope's review found this PR approvable — This is a small, backwards-compatible schema compatibility fix that allows an existing thread response path to accept persisted rate-limit errors without changing other payload handling. The generator, generated schemas, and focused nested-response tests are all confined to the codex app-server package.

Notes:

  • No code objects were reviewed. Approvability was decided on eligibility alone.

You can add or adjust custom eligibility rules. Learn more.

将 Codex 的 rateLimitExceeded 兼容范围扩展至读取、恢复和回滚线程响应。
同步生成器规则与生成 schema,并新增三类响应的回归断言。
验证:schema 测试 3/3、effect-codex-app-server typecheck、格式检查通过。
@github-actionsgithub-actionsBot added vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. and removed vouch:unvouched PR author is not yet trusted in the VOUCHED list. labels Sep 2, 2026

@cursorcursorBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes using high effort and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit 66d0cf1. Configure here.

Comment threadpackages/effect-codex-app-server/src/schema.test.ts Outdated
通过完整 thread/read、thread/resume 与 thread/rollback 响应验证限流错误的嵌套解码。\n\n将响应断言函数提升到模块作用域,避免每次测试重复编译 Schema。\n\n验证:聚焦 schema 测试与包类型检查通过。
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:M30-99 changed lines (additions + deletions).vouch:trustedPR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Codex rateLimitExceeded error makes threads permanently unresumable

1 participant

@nateEc
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

fix(codex): accept rate limit errors on thread resume - #8897

Open
nateEc wants to merge 3 commits into
pingdotgg:mainfrom
nateEc:codex/fix-8875-codex-rate-limit-resume
Open

fix(codex): accept rate limit errors on thread resume#8897
nateEc wants to merge 3 commits into
pingdotgg:mainfrom
nateEc:codex/fix-8875-codex-rate-limit-resume

Conversation

@nateEc

@nateEcnateEc commented Aug 31, 2026

Copy link
Copy Markdown
Contributor

Fixes#8875.

A persisted Codex rateLimitExceeded value was rejected while decoding thread/resume, making affected historical threads permanently unresumable.

The generated resume schema now accepts the value, and the generator retains the narrow compatibility override so the next protocol refresh preserves it.

Verification: focused schema test and effect-codex-app-server typecheck.

Model and harness: GPT-5 Codex via Codex CLI.


Note

Low Risk
Adds a backward-compatible enum variant to runtime validation only; no auth or persistence logic changes.

Overview
Fixes decoding failures when persisted thread data includes rateLimitExceeded in turn errors, which blocked read, resume, and rollback for affected threads.

Adds applyCodex0151DefinitionCompatibility in the schema generator so CodexErrorInfo on V2ThreadReadResponse, V2ThreadResumeResponse, and V2ThreadRollbackResponse gains that enum value when upstream JSON schema omits it (same pattern as existing 0.150 overrides). Regenerated schema.gen.ts and a focused test assert all three response schemas accept the value.

Reviewed by Cursor Bugbot for commit 3a4b9fa. Bugbot is set up for automated code reviews on this repo. Configure here.

Note

Add rate-limit error variant to thread response schemas in codex-app-server

  • Adds a compatibility transformation in generate.ts that appends the rate-limit error value to the CodexErrorInfo enum for thread read, resume, and rollback responses when the upstream definition lacks it.
  • The transformation preserves existing Codex 0.150 compatibility overrides and only applies when no override is present.
  • Regenerates schema.gen.ts and adds tests in schema.test.ts verifying all three response schemas accept a failed turn with the rate-limit error.

Macroscope summarized 3a4b9fa.

- Add rateLimitExceeded to the thread resume error schema.
- Preserve the compatibility rule in the schema generator.
- Verify with the focused schema test and package typecheck.
@coderabbitai

coderabbitaiBot commented Aug 31, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Team

Run ID: c28c0dcd-f3ab-4817-a24b-0d0108dd616c

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Warning

Your free Security trial is over. An organization admin can upgrade to Advanced for continuous pull request security review or dismiss this notice.


Comment @coderabbitai help to get the list of available commands.

@github-actionsgithub-actionsBot added vouch:unvouched PR author is not yet trusted in the VOUCHED list. size:M 30-99 changed lines (additions + deletions). labels Aug 31, 2026
Comment threadpackages/effect-codex-app-server/scripts/generate.ts
@macroscopeapp

macroscopeappBot commented Aug 31, 2026

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Approved at 3a4b9fa

Macroscope's review found this PR approvable — This is a small, backwards-compatible schema compatibility fix that allows an existing thread response path to accept persisted rate-limit errors without changing other payload handling. The generator, generated schemas, and focused nested-response tests are all confined to the codex app-server package.

Notes:

  • No code objects were reviewed. Approvability was decided on eligibility alone.

You can add or adjust custom eligibility rules. Learn more.

将 Codex 的 rateLimitExceeded 兼容范围扩展至读取、恢复和回滚线程响应。
同步生成器规则与生成 schema,并新增三类响应的回归断言。
验证:schema 测试 3/3、effect-codex-app-server typecheck、格式检查通过。
@github-actionsgithub-actionsBot added vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. and removed vouch:unvouched PR author is not yet trusted in the VOUCHED list. labels Sep 2, 2026

@cursorcursorBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes using high effort and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit 66d0cf1. Configure here.

Comment threadpackages/effect-codex-app-server/src/schema.test.ts Outdated
通过完整 thread/read、thread/resume 与 thread/rollback 响应验证限流错误的嵌套解码。\n\n将响应断言函数提升到模块作用域,避免每次测试重复编译 Schema。\n\n验证:聚焦 schema 测试与包类型检查通过。
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:M30-99 changed lines (additions + deletions).vouch:trustedPR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Codex rateLimitExceeded error makes threads permanently unresumable

1 participant

@nateEc
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

fix(codex): accept rate limit errors on thread resume - #8897

Open
nateEc wants to merge 3 commits into
pingdotgg:mainfrom
nateEc:codex/fix-8875-codex-rate-limit-resume
Open

fix(codex): accept rate limit errors on thread resume#8897
nateEc wants to merge 3 commits into
pingdotgg:mainfrom
nateEc:codex/fix-8875-codex-rate-limit-resume

Conversation

@nateEc

@nateEcnateEc commented Aug 31, 2026

Copy link
Copy Markdown
Contributor

Fixes#8875.

A persisted Codex rateLimitExceeded value was rejected while decoding thread/resume, making affected historical threads permanently unresumable.

The generated resume schema now accepts the value, and the generator retains the narrow compatibility override so the next protocol refresh preserves it.

Verification: focused schema test and effect-codex-app-server typecheck.

Model and harness: GPT-5 Codex via Codex CLI.


Note

Low Risk
Adds a backward-compatible enum variant to runtime validation only; no auth or persistence logic changes.

Overview
Fixes decoding failures when persisted thread data includes rateLimitExceeded in turn errors, which blocked read, resume, and rollback for affected threads.

Adds applyCodex0151DefinitionCompatibility in the schema generator so CodexErrorInfo on V2ThreadReadResponse, V2ThreadResumeResponse, and V2ThreadRollbackResponse gains that enum value when upstream JSON schema omits it (same pattern as existing 0.150 overrides). Regenerated schema.gen.ts and a focused test assert all three response schemas accept the value.

Reviewed by Cursor Bugbot for commit 3a4b9fa. Bugbot is set up for automated code reviews on this repo. Configure here.

Note

Add rate-limit error variant to thread response schemas in codex-app-server

  • Adds a compatibility transformation in generate.ts that appends the rate-limit error value to the CodexErrorInfo enum for thread read, resume, and rollback responses when the upstream definition lacks it.
  • The transformation preserves existing Codex 0.150 compatibility overrides and only applies when no override is present.
  • Regenerates schema.gen.ts and adds tests in schema.test.ts verifying all three response schemas accept a failed turn with the rate-limit error.

Macroscope summarized 3a4b9fa.

- Add rateLimitExceeded to the thread resume error schema.
- Preserve the compatibility rule in the schema generator.
- Verify with the focused schema test and package typecheck.
@coderabbitai

coderabbitaiBot commented Aug 31, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Team

Run ID: c28c0dcd-f3ab-4817-a24b-0d0108dd616c

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Warning

Your free Security trial is over. An organization admin can upgrade to Advanced for continuous pull request security review or dismiss this notice.


Comment @coderabbitai help to get the list of available commands.

@github-actionsgithub-actionsBot added vouch:unvouched PR author is not yet trusted in the VOUCHED list. size:M 30-99 changed lines (additions + deletions). labels Aug 31, 2026
Comment threadpackages/effect-codex-app-server/scripts/generate.ts
@macroscopeapp

macroscopeappBot commented Aug 31, 2026

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Approved at 3a4b9fa

Macroscope's review found this PR approvable — This is a small, backwards-compatible schema compatibility fix that allows an existing thread response path to accept persisted rate-limit errors without changing other payload handling. The generator, generated schemas, and focused nested-response tests are all confined to the codex app-server package.

Notes:

  • No code objects were reviewed. Approvability was decided on eligibility alone.

You can add or adjust custom eligibility rules. Learn more.

将 Codex 的 rateLimitExceeded 兼容范围扩展至读取、恢复和回滚线程响应。
同步生成器规则与生成 schema,并新增三类响应的回归断言。
验证:schema 测试 3/3、effect-codex-app-server typecheck、格式检查通过。
@github-actionsgithub-actionsBot added vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. and removed vouch:unvouched PR author is not yet trusted in the VOUCHED list. labels Sep 2, 2026

@cursorcursorBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes using high effort and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit 66d0cf1. Configure here.

Comment threadpackages/effect-codex-app-server/src/schema.test.ts Outdated
通过完整 thread/read、thread/resume 与 thread/rollback 响应验证限流错误的嵌套解码。\n\n将响应断言函数提升到模块作用域,避免每次测试重复编译 Schema。\n\n验证:聚焦 schema 测试与包类型检查通过。
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:M30-99 changed lines (additions + deletions).vouch:trustedPR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Codex rateLimitExceeded error makes threads permanently unresumable

1 participant

@nateEc
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

fix(codex): accept rate limit errors on thread resume - #8897

Open
nateEc wants to merge 3 commits into
pingdotgg:mainfrom
nateEc:codex/fix-8875-codex-rate-limit-resume
Open

fix(codex): accept rate limit errors on thread resume#8897
nateEc wants to merge 3 commits into
pingdotgg:mainfrom
nateEc:codex/fix-8875-codex-rate-limit-resume

Conversation

@nateEc

@nateEcnateEc commented Aug 31, 2026

Copy link
Copy Markdown
Contributor

Fixes#8875.

A persisted Codex rateLimitExceeded value was rejected while decoding thread/resume, making affected historical threads permanently unresumable.

The generated resume schema now accepts the value, and the generator retains the narrow compatibility override so the next protocol refresh preserves it.

Verification: focused schema test and effect-codex-app-server typecheck.

Model and harness: GPT-5 Codex via Codex CLI.


Note

Low Risk
Adds a backward-compatible enum variant to runtime validation only; no auth or persistence logic changes.

Overview
Fixes decoding failures when persisted thread data includes rateLimitExceeded in turn errors, which blocked read, resume, and rollback for affected threads.

Adds applyCodex0151DefinitionCompatibility in the schema generator so CodexErrorInfo on V2ThreadReadResponse, V2ThreadResumeResponse, and V2ThreadRollbackResponse gains that enum value when upstream JSON schema omits it (same pattern as existing 0.150 overrides). Regenerated schema.gen.ts and a focused test assert all three response schemas accept the value.

Reviewed by Cursor Bugbot for commit 3a4b9fa. Bugbot is set up for automated code reviews on this repo. Configure here.

Note

Add rate-limit error variant to thread response schemas in codex-app-server

  • Adds a compatibility transformation in generate.ts that appends the rate-limit error value to the CodexErrorInfo enum for thread read, resume, and rollback responses when the upstream definition lacks it.
  • The transformation preserves existing Codex 0.150 compatibility overrides and only applies when no override is present.
  • Regenerates schema.gen.ts and adds tests in schema.test.ts verifying all three response schemas accept a failed turn with the rate-limit error.

Macroscope summarized 3a4b9fa.

- Add rateLimitExceeded to the thread resume error schema.
- Preserve the compatibility rule in the schema generator.
- Verify with the focused schema test and package typecheck.
@coderabbitai

coderabbitaiBot commented Aug 31, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Team

Run ID: c28c0dcd-f3ab-4817-a24b-0d0108dd616c

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Warning

Your free Security trial is over. An organization admin can upgrade to Advanced for continuous pull request security review or dismiss this notice.


Comment @coderabbitai help to get the list of available commands.

@github-actionsgithub-actionsBot added vouch:unvouched PR author is not yet trusted in the VOUCHED list. size:M 30-99 changed lines (additions + deletions). labels Aug 31, 2026
Comment threadpackages/effect-codex-app-server/scripts/generate.ts
@macroscopeapp

macroscopeappBot commented Aug 31, 2026

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Approved at 3a4b9fa

Macroscope's review found this PR approvable — This is a small, backwards-compatible schema compatibility fix that allows an existing thread response path to accept persisted rate-limit errors without changing other payload handling. The generator, generated schemas, and focused nested-response tests are all confined to the codex app-server package.

Notes:

  • No code objects were reviewed. Approvability was decided on eligibility alone.

You can add or adjust custom eligibility rules. Learn more.

将 Codex 的 rateLimitExceeded 兼容范围扩展至读取、恢复和回滚线程响应。
同步生成器规则与生成 schema,并新增三类响应的回归断言。
验证:schema 测试 3/3、effect-codex-app-server typecheck、格式检查通过。
@github-actionsgithub-actionsBot added vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. and removed vouch:unvouched PR author is not yet trusted in the VOUCHED list. labels Sep 2, 2026

@cursorcursorBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes using high effort and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit 66d0cf1. Configure here.

Comment threadpackages/effect-codex-app-server/src/schema.test.ts Outdated
通过完整 thread/read、thread/resume 与 thread/rollback 响应验证限流错误的嵌套解码。\n\n将响应断言函数提升到模块作用域,避免每次测试重复编译 Schema。\n\n验证:聚焦 schema 测试与包类型检查通过。
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:M30-99 changed lines (additions + deletions).vouch:trustedPR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Codex rateLimitExceeded error makes threads permanently unresumable

1 participant

@nateEc
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

fix(codex): accept rate limit errors on thread resume - #8897

Open
nateEc wants to merge 3 commits into
pingdotgg:mainfrom
nateEc:codex/fix-8875-codex-rate-limit-resume
Open

fix(codex): accept rate limit errors on thread resume#8897
nateEc wants to merge 3 commits into
pingdotgg:mainfrom
nateEc:codex/fix-8875-codex-rate-limit-resume

Conversation

@nateEc

@nateEcnateEc commented Aug 31, 2026

Copy link
Copy Markdown
Contributor

Fixes#8875.

A persisted Codex rateLimitExceeded value was rejected while decoding thread/resume, making affected historical threads permanently unresumable.

The generated resume schema now accepts the value, and the generator retains the narrow compatibility override so the next protocol refresh preserves it.

Verification: focused schema test and effect-codex-app-server typecheck.

Model and harness: GPT-5 Codex via Codex CLI.


Note

Low Risk
Adds a backward-compatible enum variant to runtime validation only; no auth or persistence logic changes.

Overview
Fixes decoding failures when persisted thread data includes rateLimitExceeded in turn errors, which blocked read, resume, and rollback for affected threads.

Adds applyCodex0151DefinitionCompatibility in the schema generator so CodexErrorInfo on V2ThreadReadResponse, V2ThreadResumeResponse, and V2ThreadRollbackResponse gains that enum value when upstream JSON schema omits it (same pattern as existing 0.150 overrides). Regenerated schema.gen.ts and a focused test assert all three response schemas accept the value.

Reviewed by Cursor Bugbot for commit 3a4b9fa. Bugbot is set up for automated code reviews on this repo. Configure here.

Note

Add rate-limit error variant to thread response schemas in codex-app-server

  • Adds a compatibility transformation in generate.ts that appends the rate-limit error value to the CodexErrorInfo enum for thread read, resume, and rollback responses when the upstream definition lacks it.
  • The transformation preserves existing Codex 0.150 compatibility overrides and only applies when no override is present.
  • Regenerates schema.gen.ts and adds tests in schema.test.ts verifying all three response schemas accept a failed turn with the rate-limit error.

Macroscope summarized 3a4b9fa.

- Add rateLimitExceeded to the thread resume error schema.
- Preserve the compatibility rule in the schema generator.
- Verify with the focused schema test and package typecheck.
@coderabbitai

coderabbitaiBot commented Aug 31, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Team

Run ID: c28c0dcd-f3ab-4817-a24b-0d0108dd616c

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Warning

Your free Security trial is over. An organization admin can upgrade to Advanced for continuous pull request security review or dismiss this notice.


Comment @coderabbitai help to get the list of available commands.

@github-actionsgithub-actionsBot added vouch:unvouched PR author is not yet trusted in the VOUCHED list. size:M 30-99 changed lines (additions + deletions). labels Aug 31, 2026
Comment threadpackages/effect-codex-app-server/scripts/generate.ts
@macroscopeapp

macroscopeappBot commented Aug 31, 2026

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Approved at 3a4b9fa

Macroscope's review found this PR approvable — This is a small, backwards-compatible schema compatibility fix that allows an existing thread response path to accept persisted rate-limit errors without changing other payload handling. The generator, generated schemas, and focused nested-response tests are all confined to the codex app-server package.

Notes:

  • No code objects were reviewed. Approvability was decided on eligibility alone.

You can add or adjust custom eligibility rules. Learn more.

将 Codex 的 rateLimitExceeded 兼容范围扩展至读取、恢复和回滚线程响应。
同步生成器规则与生成 schema,并新增三类响应的回归断言。
验证:schema 测试 3/3、effect-codex-app-server typecheck、格式检查通过。
@github-actionsgithub-actionsBot added vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. and removed vouch:unvouched PR author is not yet trusted in the VOUCHED list. labels Sep 2, 2026

@cursorcursorBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes using high effort and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit 66d0cf1. Configure here.

Comment threadpackages/effect-codex-app-server/src/schema.test.ts Outdated
通过完整 thread/read、thread/resume 与 thread/rollback 响应验证限流错误的嵌套解码。\n\n将响应断言函数提升到模块作用域,避免每次测试重复编译 Schema。\n\n验证:聚焦 schema 测试与包类型检查通过。
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:M30-99 changed lines (additions + deletions).vouch:trustedPR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Codex rateLimitExceeded error makes threads permanently unresumable

1 participant

@nateEc