Skip to content

Deny deprecated APIs and move off rmcp's ServerInfo - #39

Merged
jserv merged 1 commit into
mainfrom
fix
Oct 4, 2026
Merged

jserv merged 1 commit into
mainfrom
fix

Conversation

@jserv

@jserv jserv commented Oct 4, 2026 •

Copy link
Copy Markdown
Contributor

rmcp 3.4 deprecated the ServerInfo alias in favor of ServerConfig (both name InitializeResult), so every build printed three deprecation warnings from get_info. The 3.4.0 bump (#35) merged green with them, because clippy::all is denied but deprecated is a rustc lint and no gate passes -D warnings.

get_info now returns ServerConfig, and both rmcp requirements move from "3" to "3.4", since ServerConfig does not exist in 3.3.0. [lints.rust] gains deprecated = "deny", so the next dependency bump that deprecates something this crate calls fails on the bump itself. It is deliberately narrower than denying all warnings: CI installs a floating stable toolchain, and a new warn-by-default rustc lint would otherwise turn every lane red, including the release build.

Verified with scripts/run-gates.sh on macOS against Frama-C 33: all 18 gates passed (unit 651, test-mcp-stdio 157, lifecycle 40). make build and cargo clippy --all-targets are warning-free. As a negative control, putting one ServerInfo back fails the build with the deprecation error.


Summary by cubic

Moves the MCP server off rmcp's deprecated ServerInfo type and denies the deprecated lint so future deprecations fail the build instead of slipping through.

  • Bumps both rmcp requirements from "3" to "3.4", where ServerConfig first appears, and updates get_info to return it.
  • Adds deprecated = "deny" under [lints.rust], deliberately narrower than denying all warnings so a new warn-by-default rustc lint on a floating stable toolchain doesn't turn every lane red.
  • All 18 gates pass locally; reverting one ServerInfo fails the build with the deprecation error.

Written for commit 8b271fc. Summary will update on new commits.

Review in cubic

rmcp 3.4 deprecated the ServerInfo alias in favor of ServerConfig, both
naming InitializeResult, so get_info returned a deprecated type and every
build printed three warnings. The 3.4.0 bump merged green with them
because a rustc warning fails nothing here: clippy::all is denied, but
deprecated is a rustc lint, and no gate passes -D warnings.

get_info now returns ServerConfig. Both rmcp requirements move from "3"
to "3.4", since ServerConfig does not exist in 3.3.0 and an unlocked
build resolving below 3.4 would no longer compile. The two comments that
quoted the old requirement now quote the new one.

[lints.rust] gains deprecated = "deny", so the next dependency bump that
deprecates something this crate calls fails on the bump itself. It is
narrower than denying all warnings on purpose: CI installs a floating
stable toolchain, and a new warn-by-default rustc lint would otherwise
turn every lane red, including the release build. Putting one ServerInfo
back fails the build with the deprecation error.
cubic-dev-ai[bot]

This comment was marked as resolved.

@jserv
jserv merged commit 434bce1 into main Oct 4, 2026
9 checks passed
@jserv
jserv deleted the fix branch October 4, 2026 04:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant