Skip to content

Raise the MSRV to 1.95, which is what the GUI already needs - #67

Merged
jlucaso1 merged 1 commit into
mainfrom
claude/production-regression-debug-x6pj4w
Aug 31, 2026
Merged

Raise the MSRV to 1.95, which is what the GUI already needs#67
jlucaso1 merged 1 commit into
mainfrom
claude/production-regression-debug-x6pj4w

Conversation

@jlucaso1

@jlucaso1 jlucaso1 commented Aug 31, 2026

Copy link
Copy Markdown
Contributor

Follow-up to #65, where this was written up as the one thing left alone.

Why the old number was wrong

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.

What moves, and what does not

The figure and the msrv job move together, as the comment above that job
already asks. What the job checks is unchanged: 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. 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-version on the GUI alone — keeps the library promise tight and puts a
second 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-sdk by path, and it inherits the workspace figure. On a 1.94
toolchain cargo now refuses the whole graph:

error: rustc 1.94.1 is not supported by the following packages:
  autoreply@0.1.0 requires rustc 1.95
  oxidezap-plugin@0.1.0 requires rustc 1.95
  oxidezap-plugin-abi@0.1.0 requires rustc 1.95

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 — the msrv job's exact command, passes.
  • cargo check -p oxidezap-gui — compiles against the gpui revision on main, so 1.95 is the real floor rather than an under-estimate.
  • RUSTFLAGS= cargo check --release --target wasm32-unknown-unknown in examples/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-version was a false promise; now every member declares a version that actually builds.

  • Updates the msrv CI job to 1.95, still checking the same library crates.
  • Updates examples/autoreply and examples/template because they depend on crates/plugin-sdk, which inherits the workspace figure.
  • Library crates now declare 1.95 even though they build on 1.94, the price of a single workspace-wide MSRV.

Written for commit 327848b. Summary will update on new commits.

Review in cubic

`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
@coderabbitai

coderabbitai Bot commented Aug 31, 2026

Copy link
Copy Markdown

Warning

Review limit reached

Next included review available in 57 minutes.

View limit details

Limit 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.

Learn how review limits work.

Review configuration:

⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Team

Run ID: ba2e8470-d5ce-4848-a8cd-c8a2e8c37ff4

📥 Commits

Reviewing files that changed from the base of the PR and between 0581a8e and 327848b.

📒 Files selected for processing (4)
  • .github/workflows/ci.yml
  • Cargo.toml
  • examples/autoreply/Cargo.toml
  • examples/template/Cargo.toml

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.

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Aug 31, 2026

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review Completed 2026-08-31T22:01:42.148924Z 327848b PR opened
ℹ️ 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" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@jlucaso1
jlucaso1 merged commit 84f952e into main Aug 31, 2026
10 checks passed
@jlucaso1
jlucaso1 deleted the claude/production-regression-debug-x6pj4w branch August 31, 2026 22:06
jlucaso1 pushed a commit that referenced this pull request Aug 31, 2026
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
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