Repository navigation
fix(codex): skip oversized MCP catalogue and stop launch retries (#316) - #317
Merged
Merged
Conversation
Remove MCP catalogue discovery in favor of bounded startup notifications, preserving same-thread continuation for the reproduced oversized catalogue failure. Keep the 8 MiB transport bound. Apply Option A classification and private diagnostics to oversized launch closes. Preserve F1 restart recovery as Uncertain after one launch with the original error and delivery.failing finding. Refs #316
Combine PR314 PTY setup failure handling with the Codex MCP catalogue skip and bounded oversized-launch recovery, preserving candidate behavior. Includes focused regression tests and provider, profiler, and validation docs. Candidate 2b5b982 independently cleared by Claude; integration gates follow. Refs #316
Codex Review Summary: ✅ CompletedThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
Codex can close its shared JSON-RPC connection when a stdout line exceeds 8 MiB. An MCP catalogue response can trigger this even with
toolsAndAuthOnly, and treating deterministic launch closes as retryable burns up to 20 launches while later messages wait. The production incident's exact emitting method remains unproven.Closes #316
What
mcpServerStatus/listrequests and their catalogue loading/paging machinery. Codex MCP status comes from startup notifications; refresh republishes observed state without provider I/O.TransportLineTooLong, preserve the nested error, and stop automatic launch retries. Restart recovery leaves the original delivery uncertain for the existing Retry/Dismiss actions.delivery.failingclasstransport-line-too-long; pending methods are context, not proof of the offending emitter.Scope
Base:
aeebadd0c238338c8323cb1c8f8d19a8033e19e5(main after #314).Reviewed head:
56b62c8dce1e04658f59eb58dd079527c1bbbee3.This is the reviewed #316 change plus changelog integration. MCP tool access is unchanged; the status popover may omit servers/auth state that emit no notification and may show Awaiting MCP status. No dependency, version, schema, or React component changes. PR #315 is separate.
This PR does not publish a release, move
v0.15.2, enablepublish=true, or request the seeded upgrade workflow. No production processes, databases, userdata or production port were used.Verification
Retained Linux integration evidence applies to
5900c817deb9a4d2617079ff17767679c46cf551; the final commit changes only CHANGELOG.md. Claude Opus 5.5 medium delta review cleared the exact final head. No tests were rerun during this push/PR-only handoff.Passed commands:
cargo test --locked --offline -p bibcode-server --lib -j 2 -- provider::codex::runtime::tests provider::codex::mcp_status::tests provider::codex::protocol::tests production::provider_runtime::delivery_failure_tests oversized_stdout production::turn_delivery::tests— 120 passed.cargo test --locked --offline -p bibcode-server --test provider_codex -j 2— 86 passed.cargo test --locked --offline -p bibcode-server --test production_provider_runtime -j 2— 205 passed.cargo test --locked --offline -p bibcode-server --lib -j 2— corrected isolated run: 5001 passed, 14 ignored.cargo fmt --all --check.cargo check --workspace --all-targets --locked --offline -j 2.cargo clippy --locked --offline --workspace --all-targets -j 2 -- -D warnings.node scripts/run-local-vp.mjs checkandnode scripts/run-local-vp.mjs run typecheck— checkout-local equivalents ofvp checkandvp run typecheck.node scripts/run-local-vp.mjs run release:smoke.node scripts/run-local-vp.mjs test run scripts/ci-platform-contract.test.ts— 47 passed.Mutation proofs reproduced failure when restoring the catalogue request and when removing restart-recovery classification; the restored candidate passed focused coverage. Complete-caller coverage exercises the driver/delivery worker, one launch/attempt, preserved nested detail, uncertain state across service restart, and one finding.
The full workspace test graph (
node scripts/run-local-vp.mjs run -r --concurrency-limit 1 test) was not wholly green locally. The desktop restart fixture has a preexisting EADDRINUSE race; uncontended exact reruns passed on base and candidate. The slow-link failure is detailed below. Main CI 42306937978 completed successfully before this branch was pushed; candidate PR CI will run separately.UI.md was reviewed in the retained validation. No React changes require a React skill review. Affected runbooks were updated/reviewed; the Linux procedures remain accurate. Profiler coverage retains supervised launches and emits content-free framing diagnostics plus the existing delivery finding; no new RPC, process type, removal path, binary mode or shutdown service is introduced.
Private handoff evidence on ai-server:
/tmp/bibcode-316-astra-integrate/PHASE1.md,GATES.json,host-network/, and/tmp/bibcode-316-claude-integ2/stdout.log.Residual risks
thread/turns/listread-back after a successful launch can leave delivery in Sending and later messages queued. This is not fixed here. It remains a draft-only follow-up at/tmp/bibcode-316-handoff/ISSUE_F3_DRAFT.md, not a filed issue. The synthetic observation lasted 60 seconds; real emission and restart behavior were not proven.rpc_liveness::slow_links_finish_transfers_without_a_disconnectfails in this isolated local environment on both main and candidate, including outside the network namespace. Hosted CI passes the same main tree. This does not by itself block opening this PR, but its cause and real-user impact remain unresolved; candidate CI success is not claimed.