Raise the MSRV to 1.95, which is what the GUI already needs - #67
Conversation
`rust-version` is inherited by every member of this workspace, so the 1.94 in it was a claim about `crates/gui` too — and that claim has been false since #63: gpui calls `std::hint::cold_path`, stable in 1.95, and the GUI tracks that repository's git HEAD rather than a release. A 1.94 toolchain cannot compile gpui at all, so the manifest was telling cargo something no toolchain could honour. The number and the `msrv` job move together, as the comment above that job asks. What the job checks does not change: `oxidezap-chat-store`, `oxidezap-core` and `oxidezap-ipc`, the crates an embedder compiles against, none of which depends on gpui. Those three build on less than they now declare, which is the price of one figure for one workspace and the honest direction to pay it in — a floor that is too high refuses a build, where one that is too low produces the error #63 shipped. The example plugins follow for a reason that is not tidiness: they are their own workspaces but depend on `crates/plugin-sdk` by path, and it inherits the workspace figure. On a 1.94 toolchain cargo now refuses the whole graph and names the SDK, so leaving the examples at 1.94 would have declared a version their own dependency has already ruled out. Verified on 1.95.0: the `msrv` job's exact command passes, `crates/gui` compiles against the gpui revision on main, and `examples/autoreply` builds for wasm — while on 1.94 cargo refuses it with "requires rustc 1.95", naming the SDK. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01SnMdYywNCEWxxNaEFzmuJp
|
Warning Review limit reachedNext included review available in 57 minutes. View limit detailsLimit details: You’ve used the included review currently available. You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. Review configuration: ⚙️ Run configurationConfiguration used: Organization UI Review profile: ASSERTIVE Plan: Team Run ID: 📒 Files selected for processing (4)
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. Comment |
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
main gained #65, #67 and #68 while this branch was open. Only AGENTS.md conflicted, in one hunk: #68 added twenty lines to the shared-memory gotcha, describing Web Audio as the third crossing to hit the rule and the `clippy.toml` ban that now enforces it. Resolved by putting that prose where the entry now lives -- appended to the shared-memory gotcha in docs/gotchas.md, verbatim, all twenty lines checked present -- and keeping this branch's restructured AGENTS.md for the file itself. The `clippy.toml` ban did not stay only in the reference, though. "Do not write this spelling, and CI's `Test (web)` job fails you if you do" is a decision that changes what an agent may type, which is what the always-loaded file is for, so the shared-memory rule in AGENTS.md now names it and says where the rule runs. Everything else merged clean. main's own files are byte-identical to origin/main in the tree apart from two comment retargets this branch had already made (Cargo.toml's cache measurement now names docs/ci.md, its profile note docs/web.md). Worth recording: #67 raised the MSRV to 1.95 and nothing in these documents had to change, because none of them pins a toolchain version any more. That is the split doing its job on its first contact with a moving base. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01KxsJVCeKUx3xFiGM92sPn6
Follow-up to #65, where this was written up as the one thing left alone.
Why the old number was wrong
rust-versionis inherited by every member of this workspace, so the 1.94 init was a claim about
crates/guitoo — and that claim has been false since#63: gpui calls
std::hint::cold_path, stable in 1.95, and the GUI tracksthat repository's git HEAD rather than a release. A 1.94 toolchain cannot
compile gpui at all, so the manifest was telling cargo something no toolchain
could honour.
What moves, and what does not
The figure and the
msrvjob move together, as the comment above that jobalready asks. What the job checks is unchanged:
oxidezap-chat-store,oxidezap-coreandoxidezap-ipc— the crates an embedder compiles against,none of which depends on gpui.
Those three build on less than they now declare. That is the price of one
figure for one workspace, and it is the honest direction to pay it in: a
floor that is too high refuses a build, where one that is too low produces
exactly the error #63 shipped. The alternative — a per-package
rust-versionon the GUI alone — keeps the library promise tight and puts asecond number in the tree that has to be re-checked on every gpui bump; this
one has to be re-checked on every gpui bump as well, but there is only one of
it, and the comment beside it says so.
Why the example plugins follow
Not tidiness. They are their own workspaces, but they depend on
crates/plugin-sdkby path, and it inherits the workspace figure. On a 1.94toolchain cargo now refuses the whole graph:
Leaving the examples at 1.94 would have declared a version their own
dependency has already ruled out — and the SDK line is refused whatever the
example says.
Verified on 1.95.0
cargo check -p oxidezap-chat-store -p oxidezap-core -p oxidezap-ipc --all-features— themsrvjob's exact command, passes.cargo check -p oxidezap-gui— compiles against the gpui revision onmain, so 1.95 is the real floor rather than an under-estimate.RUSTFLAGS= cargo check --release --target wasm32-unknown-unknowninexamples/autoreply— passes; on 1.94 it is refused with the error above.Generated by Claude Code
Summary by cubic
Raises the workspace MSRV from 1.94 to 1.95, matching what the GUI already requires. The GUI could not compile on 1.94, so the old
rust-versionwas a false promise; now every member declares a version that actually builds.msrvCI job to 1.95, still checking the same library crates.examples/autoreplyandexamples/templatebecause they depend oncrates/plugin-sdk, which inherits the workspace figure.Written for commit 327848b. Summary will update on new commits.