Repository navigation
fix: declare Rust 1.88 as the MSRV and check it in CI (#377) - #379
Merged
Merged
Conversation
Zheng-Lu
requested review from
bbrowning,
franciscojavierarceo,
haoshan98,
jiahuei,
leseb,
maralbahari,
noobHappylife,
qandrew and
tjtanaa
as code owners
September 25, 2026 13:52
haoshan98
added a commit
that referenced
this pull request
Sep 30, 2026
## Summary Several user-facing docs had fallen behind `main` or contradicted each other and the code. This PR brings them in line with what has shipped. It changes documentation only. **Corrected claims** - README listed the Messages API as "🚧 Planned" while another README section documents `/v1/messages`. It is now listed as shipped; only stateful Messages stays planned. - README and `docs/index.md` advertised "Background execution" and gateway-executed file search. Neither exists yet: background mode is #357, and `file_search` declarations parse but are dropped before inference (`tool/normalize.rs`). Both claims are removed. - `docs/api/index.md` quoted fixed WebSocket and executor limits (256 KiB SSE lines, 1 MiB events and response budget). These now come from the configurable `[responses]` settings, which default to 16 MiB and 8 MiB. - `docs/api/index.md` listed only some of the conditions that route a Responses request through the executor. The list now also includes non-function tools, `multi_agent.enabled`, and tool-search state, matching `handler/http/responses.rs`. - CHANGELOG listed Tavily under 0.8.0, but it merged on Sep 28, after the Sep 19 release. The two Tavily entries move to `[Unreleased]`. **Newly documented features** - README: a multi-agent Responses section with an example and the gateway's limits (`store: true`, HTTP/SSE only, default of 3 concurrent subagents, no `max_tool_calls` or reasoning summaries). Also new rows in the API table for `/v1/responses/compact`, the full Conversations routes, `/v1/messages` with `/v1/messages/count_tokens`, and Swagger/OpenAPI (`ENABLE_OPENAPI_DOCS`). The features list, diagram, and tool ownership table now include MCP, the code interpreter, Claude Code, compaction, and OpenTelemetry. - `docs/api/index.md`: new sections for `GET /v1/responses/{response_id}`, multi-agent, Conversations, and Messages. - CHANGELOG `[Unreleased]` was empty. It now has entries for #345, #347, #349, #351/#370, #354, #368, #369, #372/#373, #380, and #387. **Roadmap** - ROADMAP.md marks multi-agent HTTP execution as shipped, with WebSocket injection (#300) and stateless requests (#393) still open. It adds a status note for Messages, a code interpreter entry, and a file search item linking #34 and #356. - README "Roadmap at a Glance" checks off Messages and Conversations and adds unchecked items for multi-agent, file search, and stateful Messages. **Smaller fixes** - The repository layout in README and AGENTS.md now lists `agentic-llm-d`, `agentic-cli-docs`, and `python/agentic_api/`. - ARCHITECTURE.md's list of multi-agent rejections now includes `max_tool_calls`, matching `executor/rehydrate.rs`. - `mkdocs.yaml` adds the existing but unlinked `design/shell-tool.md` to the nav. **Not changed:** the README's "Rust 1.85+" badge is wrong (1.85 cannot build the lockfile, see #377), but #379 already updates it to 1.88 along with `rust-version` and a CI check, so this PR leaves it alone to avoid a conflict. Signed-off-by: haoshan98 <haoshanw@gmail.com>
haoshan98
requested changes
Oct 1, 2026
Raise clippy's msrv to 1.98.1 and apply the suggestions it enables: collapsed `if let` chains, `Option::is_none_or`, `slice::as_chunks`, `Duration::from_mins`, and `is_multiple_of`. No behavior change. Signed-off-by: Zheng Lu <Lz429671594@gmail.com>
The documented MSRV was 1.85, but nothing declared or checked it, and the locked dependencies have long needed more: the default build needs 1.88, and eryx 0.8, behind the embedded-code-interpreter feature, declares 1.98.1 (wasmtime and cranelift 48 need 1.95). The checked-in toolchain is already pinned to 1.98.1 for that feature. - Declare rust-version = "1.98.1" in [workspace.package] and inherit it in every crate, so older toolchains fail with a clear message. - Add an msrv CI job that reads rust-version, fails if clippy.toml's msrv differs, prepares the Eryx runtime, and runs cargo check --workspace --all-targets --all-features --locked on that toolchain. - Pin every workflow toolchain to 1.98.1 instead of relying on the rust-toolchain.toml override of 1.98.0. - Build the container on cargo-chef 0.1.78 with Rust 1.98.1; the image does not copy rust-toolchain.toml, so it built with 1.96.0. - Update AGENTS.md, the README badge, and the getting-started, container, observability, embedded code interpreter, and provider-aware reasoning docs. The OTLP/gRPC exporter is no longer excluded by the MSRV, so the docs and the unsupported-protocol startup error now say only that it is not compiled in. Fixes vllm-project#377 Signed-off-by: Zheng Lu <Lz429671594@gmail.com>
Contributor
Author
|
Rebased onto
Checks: |
haoshan98
approved these changes
Oct 12, 2026
haoshan98
left a comment
Collaborator
There was a problem hiding this comment.
Thank you for keeping this up, lgtm.
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.
Summary
Fixes #377, taking option 1 from the issue: raise the declared MSRV to what the locked dependencies need.
The documented MSRV was 1.85, but nothing declared or checked it, and the committed
Cargo.lockneeds more:idna_adapter1.2.2 needs 1.86,process-wrap9 (forrmcp's stdio MCP transport) needs 1.87, andhome0.5.12 andicu_*2.3 need 1.88.embedded-code-interpreterfeature (feat: support code interpreter as gateway execution tool #368) needs 1.98.1:eryx0.8.0 declares it, and wasmtime and cranelift 48 need 1.95.rust-toolchain.tomlis already pinned to 1.98.1 for that feature.Cargo expects
rust-versionto cover every feature, so the MSRV is 1.98.1:rust-version = "1.98.1"in[workspace.package], inherited by every crate, so older toolchains fail with a clear message.clippy.toml'smsrvmatches it.msrvCI job readsrust-versionand fails ifclippy.tomldiffers. It prepares the Eryx runtime, because theeryxbuild script needs it, then runscargo check --workspace --all-targets --all-features --lockedon that toolchain.rust-toolchain.tomloverrode them.rust-toolchain.toml, so the new MSRV would have rejected it. cargo-chef publishes Rust 1.98 images only from 0.1.78.if letchains,is_none_or,as_chunks,Duration::from_minsandis_multiple_of. No behavior changes.AGENTS.md, the README badge, the getting-started and container docs, and the embedded code interpreter design doc. That doc now says the toolchain pin and the MSRV are both 1.98.1. The provider-aware reasoning design doc no longer says an MSRV repair is pending.OtlpProtocoland the unsupported-protocol startup error no longer blame the MSRV for the missing gRPC exporter. The error used to say "gRPC is unavailable below Rust 1.88"; it now says the exporter is not compiled in, matching the zstd compression error.refresh-site-docs.mjsregenerates, so it is left for the next refresh.Test Plan
eryx's build script ("Pre-compiled runtime (runtime.cwasm) not found"). Themsrvjob prepares the runtime the same way theembedded-code-interpreterjob does, and shares its cache key.web_fetch::http::tests::the_deadline_bounds_a_slow_origin. It fails the same way on unmodifiedmainunder the full suite and passes on its own; this PR doesn't touchweb_fetch.1.98.1.cargo chef cookis refused with "rustc 1.96.0 is not supported … requires rustc 1.98.1". On the new base, the Rust build stage completes, and both binaries run (agentic-server 0.9.0). My local Docker has no BuildKit, so CI's image build covers the laterCOPY --chmodstep.mainat 2026-09-30,cargo +1.88.0 check --workspace --all-targets --lockedpassed, and on today'smainevery locked dependency outsideeryx's tree still declares at most 1.88. The MSRV follows Cargo's expectation thatrust-versioncovers every feature.main8b27941. The clippy autofix commit was redone against currentmain. ci: reduce duplicate builds and tests #427 removed theprovider-upstreamjob, so that job's toolchain pin is gone too.Merging alongside #375
#375 (#340) also edits
.github/workflows/rust.yml; whichever lands second keeps both changes. Undermsrv = "1.98.1", #375 must also pass clippy, which may need the same mechanical autofixes.