[rmcp-client] Route all MCP OAuth recovery through Codex - #29018
Closed
stevenlee-oai wants to merge 1 commit into
Closed
[rmcp-client] Route all MCP OAuth recovery through Codex#29018stevenlee-oai wants to merge 1 commit into
stevenlee-oai wants to merge 1 commit into
Conversation
This was referenced Jun 19, 2026
Contributor
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: dc25e7aae8
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
stevenlee-oai
force-pushed
the
dev/stevenlee/mcp-oauth-stack-4-shared-stores
branch
from
June 19, 2026 04:06
73edd11 to
2baa0c1
Compare
stevenlee-oai
force-pushed
the
dev/stevenlee/mcp-oauth-stack-5-codex-refresh
branch
from
June 19, 2026 04:06
dc25e7a to
ebb9b90
Compare
stevenlee-oai
force-pushed
the
dev/stevenlee/mcp-oauth-stack-4-shared-stores
branch
from
June 19, 2026 15:29
2baa0c1 to
98c3fc1
Compare
stevenlee-oai
force-pushed
the
dev/stevenlee/mcp-oauth-stack-5-codex-refresh
branch
2 times, most recently
from
June 19, 2026 16:18
8828c4b to
b88dbae
Compare
stevenlee-oai
force-pushed
the
dev/stevenlee/mcp-oauth-stack-4-shared-stores
branch
from
June 19, 2026 16:18
98c3fc1 to
38b1739
Compare
stevenlee-oai
force-pushed
the
dev/stevenlee/mcp-oauth-stack-4-shared-stores
branch
from
June 23, 2026 06:19
38b1739 to
0a1fd12
Compare
stevenlee-oai
force-pushed
the
dev/stevenlee/mcp-oauth-stack-5-codex-refresh
branch
from
June 23, 2026 06:28
b88dbae to
0def9f2
Compare
stevenlee-oai
force-pushed
the
dev/stevenlee/mcp-oauth-stack-4-shared-stores
branch
from
June 23, 2026 07:27
0a1fd12 to
f928100
Compare
stevenlee-oai
force-pushed
the
dev/stevenlee/mcp-oauth-stack-5-codex-refresh
branch
from
June 23, 2026 07:27
0def9f2 to
31ceaeb
Compare
stevenlee-oai
force-pushed
the
dev/stevenlee/mcp-oauth-stack-4-shared-stores
branch
from
June 23, 2026 23:38
f928100 to
966f233
Compare
stevenlee-oai
force-pushed
the
dev/stevenlee/mcp-oauth-stack-5-codex-refresh
branch
3 times, most recently
from
June 25, 2026 02:45
55c407e to
6957b8b
Compare
stevenlee-oai
force-pushed
the
dev/stevenlee/mcp-oauth-stack-4-shared-stores
branch
from
June 25, 2026 02:45
ac8101b to
25011b8
Compare
stevenlee-oai
force-pushed
the
dev/stevenlee/mcp-oauth-stack-5-codex-refresh
branch
from
June 25, 2026 02:54
6957b8b to
3246e90
Compare
stevenlee-oai
force-pushed
the
dev/stevenlee/mcp-oauth-stack-4-shared-stores
branch
from
June 25, 2026 02:54
25011b8 to
c37c566
Compare
stevenlee-oai
force-pushed
the
dev/stevenlee/mcp-oauth-stack-4-shared-stores
branch
from
June 25, 2026 17:26
c37c566 to
b44ee7c
Compare
stevenlee-oai
force-pushed
the
dev/stevenlee/mcp-oauth-stack-5-codex-refresh
branch
from
June 25, 2026 17:26
3246e90 to
aa94ede
Compare
stevenlee-oai
force-pushed
the
dev/stevenlee/mcp-oauth-stack-5-codex-refresh
branch
from
June 25, 2026 18:07
aa94ede to
d6434ec
Compare
stevenlee-oai
force-pushed
the
dev/stevenlee/mcp-oauth-stack-4-shared-stores
branch
from
June 25, 2026 18:07
b44ee7c to
3628ccf
Compare
stevenlee-oai
force-pushed
the
dev/stevenlee/mcp-oauth-stack-5-codex-refresh
branch
from
June 25, 2026 18:13
d6434ec to
64f9f77
Compare
stevenlee-oai
changed the base branch from
dev/stevenlee/mcp-oauth-stack-4-shared-stores
to
dev/stevenlee/mcp-oauth-stack-6-codex-recovery
June 25, 2026 18:18
This was referenced Jun 25, 2026
stevenlee-oai
force-pushed
the
dev/stevenlee/mcp-oauth-stack-5-codex-refresh
branch
from
June 25, 2026 18:45
64f9f77 to
6bf5882
Compare
stevenlee-oai
force-pushed
the
dev/stevenlee/mcp-oauth-stack-6-codex-recovery
branch
from
June 25, 2026 18:45
2bb8dc9 to
0e139f8
Compare
stevenlee-oai
force-pushed
the
dev/stevenlee/mcp-oauth-stack-5-codex-refresh
branch
2 times, most recently
from
June 25, 2026 21:11
7b4f748 to
dd9a13b
Compare
stevenlee-oai
changed the base branch from
dev/stevenlee/mcp-oauth-stack-6-codex-recovery
to
dev/stevenlee/mcp-oauth-stack-4-shared-stores
June 25, 2026 21:13
stevenlee-oai
force-pushed
the
dev/stevenlee/mcp-oauth-stack-5-codex-refresh
branch
from
June 25, 2026 21:16
dd9a13b to
0b3dcef
Compare
stevenlee-oai
force-pushed
the
dev/stevenlee/mcp-oauth-stack-5-codex-refresh
branch
from
June 25, 2026 21:29
dd9a13b to
52e1548
Compare
stevenlee-oai
force-pushed
the
dev/stevenlee/mcp-oauth-stack-4-shared-stores
branch
from
June 25, 2026 21:29
0b3dcef to
b210375
Compare
stevenlee-oai
force-pushed
the
dev/stevenlee/mcp-oauth-stack-5-codex-refresh
branch
from
June 26, 2026 05:51
52e1548 to
6bb89cb
Compare
stevenlee-oai
force-pushed
the
dev/stevenlee/mcp-oauth-stack-4-shared-stores
branch
from
June 26, 2026 05:51
b210375 to
2b88193
Compare
stevenlee-oai
force-pushed
the
dev/stevenlee/mcp-oauth-stack-5-codex-refresh
branch
from
June 26, 2026 06:10
6bb89cb to
6705ef7
Compare
stevenlee-oai
force-pushed
the
dev/stevenlee/mcp-oauth-stack-4-shared-stores
branch
from
June 26, 2026 06:10
2b88193 to
51cdac5
Compare
stevenlee-oai
force-pushed
the
dev/stevenlee/mcp-oauth-stack-5-codex-refresh
branch
from
June 26, 2026 06:33
6705ef7 to
44d29b6
Compare
stevenlee-oai
force-pushed
the
dev/stevenlee/mcp-oauth-stack-4-shared-stores
branch
from
June 26, 2026 06:33
51cdac5 to
fdb60d6
Compare
stevenlee-oai
force-pushed
the
dev/stevenlee/mcp-oauth-stack-4-shared-stores
branch
from
June 26, 2026 07:39
fdb60d6 to
665d653
Compare
stevenlee-oai
force-pushed
the
dev/stevenlee/mcp-oauth-stack-5-codex-refresh
branch
from
June 26, 2026 07:39
44d29b6 to
2e6a3e1
Compare
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.
Codex Thread 019edd6d-6f14-74e2-853c-345d1803d4a6
Important
This PR belongs to the superseded MCP OAuth stack. Please review and merge the replacement stack beginning with openai/codex#30292. This PR remains available only as historical/reference context.
Replacement review order:
This is part 4 of a five-PR stack that prevents concurrent MCP OAuth refreshes from replaying a rotating refresh token or overwriting newer credentials.
Review order
Autoresolution driftWhy
Giving RMCP a refresh token creates a second, unsynchronized refresh owner. Simply removing it would leave RMCP-owned SSE reconnects, server-response POSTs, and session DELETEs unable to recover. This layer switches both sides together: RMCP receives request-only credentials while Codex owns proactive refresh and one-shot 401 recovery for every transport path.
What changes
StreamableHttpClientwrapper around RMCP's authenticated client.RmcpClient, which knows the caller deadline and whether replay is still allowed.Decisions encoded by this stack
Autostays pinned to one source for the client lifecycle; part 3's durable record is diagnostic only.Review focus
Review the ownership handoff as one unit: request-only exposure, temporary full credentials inside the transaction, token-attributed delayed-401 handling, and exactly one owner for each POST/GET/DELETE category.
Non-goals
Validation
just test -p codex-rmcp-client: 90 passed, 2 skipped at this layer.