[rmcp-client] Route all MCP OAuth recovery through Codex#29018
Open
stevenlee-oai wants to merge 1 commit into
Open
[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".
73edd11 to
2baa0c1
Compare
dc25e7a to
ebb9b90
Compare
2baa0c1 to
98c3fc1
Compare
8828c4b to
b88dbae
Compare
98c3fc1 to
38b1739
Compare
38b1739 to
0a1fd12
Compare
b88dbae to
0def9f2
Compare
0a1fd12 to
f928100
Compare
0def9f2 to
31ceaeb
Compare
f928100 to
966f233
Compare
55c407e to
6957b8b
Compare
ac8101b to
25011b8
Compare
6957b8b to
3246e90
Compare
25011b8 to
c37c566
Compare
c37c566 to
b44ee7c
Compare
3246e90 to
aa94ede
Compare
aa94ede to
d6434ec
Compare
b44ee7c to
3628ccf
Compare
d6434ec to
64f9f77
Compare
This was referenced Jun 25, 2026
64f9f77 to
6bf5882
Compare
2bb8dc9 to
0e139f8
Compare
7b4f748 to
dd9a13b
Compare
dd9a13b to
0b3dcef
Compare
dd9a13b to
52e1548
Compare
0b3dcef to
b210375
Compare
52e1548 to
6bb89cb
Compare
b210375 to
2b88193
Compare
6bb89cb to
6705ef7
Compare
2b88193 to
51cdac5
Compare
6705ef7 to
44d29b6
Compare
51cdac5 to
fdb60d6
Compare
fdb60d6 to
665d653
Compare
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.