Skip to content

Record that rmcp merged the float fix Codex was waiting on - #998

Merged
jmrplens merged 1 commit into
mainfrom
upstream-bugs-rmcp-floats
Sep 27, 2026
Merged

jmrplens merged 1 commit into
mainfrom
upstream-bugs-rmcp-floats

Conversation

@jmrplens

@jmrplens jmrplens commented Sep 27, 2026 •

Copy link
Copy Markdown
Owner

The fix for the Codex float bug is merged upstream: modelcontextprotocol/rust-sdk#1300 landed on 2026-09-27 as e02efbfc and closed modelcontextprotocol/rust-sdk#1299. This brings the register's entry for it up to date.

The summary row and the entry's facts now say reported (the Codex issue and the rmcp issue), in review (the rmcp pull request, merged) and merged in no tag, since rmcp 3.4.1 was cut on 2026-09-23 and does not contain it. The entry says what reaching users takes: an rmcp release carrying the fix, a Codex release built on it, and a ChatGPT.app that bundles that Codex.

It also corrects the cause the entry used to state. It put the defect in a patched rmcp inside the ChatGPT.app bundle. The real cause is serde_json's arbitrary_precision: Cargo turns it on for rmcp inside codex-cli, through starlark 0.14.2 and codex-exec-server-protocol, and under it a buffered decimal is replayed as serde_json's private number map, which a plain f32 refuses. The entry now explains that, and says how the first reading went wrong.

The Codex workaround in internal/clientcompat stays, and the entry now says what retires it: a Codex built on the fix being what ChatGPT.app ships, not merely a release.

What I ran: format_md_tables --check, markdownlint on the file, make check-doc-links, make check-em-dash, audit_doc_tool_names --check, gen_stats -check, make check-llms and make check-site-stats, all clean; no generated artifact moves.

Part of #959.

modelcontextprotocol/rust-sdk#1300 merged on 2026-09-27 as e02efbfc and closed
rust-sdk#1299; no rmcp tag carries it yet. The entry for the non-integer
annotation priority now says so, in the summary row and in its facts, and
states the cause the register used to get wrong: not a patched rmcp in the
ChatGPT.app bundle, but serde_json's arbitrary_precision, which Cargo turns
on for rmcp inside codex-cli and under which a buffered decimal no longer
decodes into an f32. The Codex workaround stays until a Codex built on the
fix is what ChatGPT.app ships.

@sourcery-ai sourcery-ai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Sorry @jmrplens, you've used your own review budget of 250,000 diff characters for the last 7 days.

You can request another review in 13 hours and 5 minutes by commenting @sourcery-ai review. Upgrade to get a review now.

@github-actions github-actions Bot added the documentation Improvements or additions to documentation label Sep 27, 2026
@jmrplens jmrplens added this to the 3.1.0 milestone Sep 27, 2026
@coderabbitai

coderabbitai Bot commented Sep 27, 2026 •

Copy link
Copy Markdown

Review in Change Stack →

Navigate logical layers of code changes, visualize relationships, and explore their blast radius.

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Repository: jmrplens/gitlab-mcp-server/.coderabbit.yaml

Review profile: CHILL

Plan: Advanced

Run ID: 7f41aad1-c133-45ad-81c9-79986c2dc246

📥 Commits

Reviewing files that changed from the base of the PR and between 2b8b835 and 5fb8da1.

📒 Files selected for processing (1)
  • docs/development/upstream-bugs.md

Included review availability: This review used your included allowance. Your plan provides up to 1 included review per hour; 0 remain after this review.


📝 Summary

Summary by CodeRabbit

  • Documentation
    • Updated the upstream issue record with details on the annotations.priority failure, its cause, the related fix, and when the workaround can be retired.

Walkthrough

The upstream bug table and Codex entry now link the reported issue and its cause, record the merged but unreleased rmcp fix, and describe the compatibility workaround and how the defect was isolated.

Changes

Codex bug documentation

Layer / File(s) Summary
Update Codex issue record
docs/development/upstream-bugs.md
The summary row and detailed entry link the Codex issue and upstream cause. The entry describes the serde_json arbitrary_precision interaction, the unreleased fix, the workaround’s retirement condition, and the investigation. It replaces the prior claim about rmcp 3.0.0 parsing the values correctly.

Priority: ⬇️ Low

Estimated code review effort: 1 (Trivial) | ~4 minutes

Change: Other

Merge Risk: ⚪ Minimal · up to 5fb8d

This change only updates documentation about a known upstream issue's status; it carries no functional risk.

Architecture Summary

Architecture risk: 🔵 Low · up to 5fb8d

The change affects 1 system.

Changed systems: docs

Architecture concerns
No architecture-level concerns identified.

Review details

Systems and components

  • observed — docs (service) was modified; 1 changed file maps to changed impact.

Before / after behavior

  • observed — Modified behavior in docs/development/upstream-bugs.md: The Codex summary row now links the reported issue and the merged, unreleased rmcp fix, and updates its review status.
  • observed — Modified behavior in docs/development/upstream-bugs.md: The Codex entry now links both the symptom and upstream cause, records the merged fix as unreleased, and clarifies that the compatibility workaround remains until fixed Codex builds are widely deployed. It adds the serde_json arbitrary_precision interaction that causes non-integer priorities to fail, and notes that the defect was isolated by varying canned results and tracing Codex’s dependency tree; the prior claim that crates.io rmcp 3.0.0 parses the values correctly is replaced.
🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Description check ⚠️ Warning The description retains the template but provides no summary, issue reference, change list, testing steps, selected change type, or completed checklist items. Complete the Description, Related Issue, Type of Change, Changes Made, and How to Test sections. Select Documentation update, replace the placeholder issue reference with the relevant issue or PR reference, and complete applicable checklist…
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly and concisely describes the main documentation change: recording that rmcp merged the float fix needed by Codex.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 0…
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Full details: Description check

Resolution

Complete the Description, Related Issue, Type of Change, Changes Made, and How to Test sections. Select Documentation update, replace the placeholder issue reference with the relevant issue or PR reference, and complete applicable checklist items. Keep N/A for Breaking Changes / Migration Notes if no migration is required.

  • Fix all pre-merge checks with AI
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

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

@github-actions github-actions Bot added the v3.1.0 Targeted at the 3.1.0 release label Sep 27, 2026
@sonarqubecloud

Copy link
Copy Markdown

@jmrplens
jmrplens merged commit efbf719 into main Sep 27, 2026
6 checks passed
@jmrplens
jmrplens deleted the upstream-bugs-rmcp-floats branch September 27, 2026 08:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation v3.1.0 Targeted at the 3.1.0 release

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Float fields fail to deserialize when serde_json's arbitrary_precision is enabled elsewhere in the build

1 participant