chore(infra): Phase 4a — batch Rust low-risk minors + MSRV bump to 1.95#552
Merged
Conversation
Phase 4a of the dep-update sweep.
Workspace deps:
axum-tracing-opentelemetry 0.32 → 0.33
init-tracing-opentelemetry 0.36 → 0.37
infer 0.16 → 0.19
smol_str 0.2 → 0.3
tokio-tungstenite 0.28 → 0.29
Client deps:
sentry, sentry-tracing 0.47 → 0.48
sysinfo 0.38 → 0.39 (requires Rust 1.95)
Sub-crate alignment:
vp8-decoder: thiserror = "1" → thiserror.workspace = true (= "2")
Workspace hygiene:
tempfile = "3" hoisted to [workspace.dependencies]; server and
client/src-tauri now use tempfile.workspace = true.
MSRV bump:
rust-version 1.93 → 1.95 (sysinfo 0.39 requirement). CI uses
dtolnay/rust-toolchain@stable; stable is now 1.95.0.
Side effects of MSRV bump (rustc 1.95 introduced new clippy lints):
- websocket_integration.rs ×3: Duration::from_millis(1000) →
Duration::from_secs(1) (clippy::duration_suboptimal_units)
- media_processing.rs ×1: inline format arg {error} instead of
positional (clippy::uninlined_format_args)
- observability.rs ×2: switch i64+as f64 to native f64 in test
helper (clippy::needless_type_cast)
Tauri 2.11 schema regeneration:
client/src-tauri/gen/schemas/{acl-manifests,desktop-schema,
linux-schema}.json — auto-regenerated by tauri-build from the 2.11
ACL set; carry-over from Phase 3 (#551) which built only the
frontend locally.
Per-bump validation (server-side):
- smol_str From<&str>: server compiles cleanly, no migration needed
- infer 0.19 MIME db: tests build, runtime validation deferred to CI
- tokio-tungstenite 0.29 MaybeTlsStream: server compiles cleanly
- sentry 0.48: client uses sentry-tracing, not the moved tower
middleware
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
CI on PR #552 caught a smol_str dual-version regression: bumping the workspace's smol_str to 0.3 leaves smol_str 0.2 in the tree as a transitive of webrtc-rs, and vc-client's webrtc/mod.rs uses `smol_str::SmolStr` directly to construct values that interop with webrtc-rs types (which expect smol_str 0.2's SmolStr). Hold smol_str at 0.2 until webrtc-rs 0.17 (Phase 8) updates its own pin. The other Phase 4a bumps stay. I missed this locally because libspa fails to compile here (Linux PipeWire env mismatch), so `cargo check -p vc-client` is unrunnable locally. Going forward, vc-client's compile path is CI-only on this machine. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Docker Build & Publish failed on PR #552 because the production image was pinned to rust:1.93-bookworm, but Phase 4a's sysinfo 0.39 bump raised the workspace MSRV to 1.95. Aligns the Docker builder image with the workspace rust-version. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
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
Phase 4a of the dep-update sweep (spec, plan). Builds on Phase 3 (#551).
Workspace deps
axum-tracing-opentelemetry 0.32 → 0.33init-tracing-opentelemetry 0.36 → 0.37infer 0.16 → 0.19(signature DB updated; tests build)smol_str 0.2 → 0.3(server compiles cleanly; noFrom<&str>migration needed)tokio-tungstenite 0.28 → 0.29(server compiles cleanly; noMaybeTlsStreamexhaustiveness fixes needed)Client deps
sentry, sentry-tracing 0.47 → 0.48. Thetowerintegration moved out of the sentry crate in 0.48; we usesentry-tracing(not the tower middleware), so no migration.sysinfo 0.38 → 0.39— requires Rust 1.95, so this PR also bumps MSRV.Workspace hygiene
tempfile = "3"hoisted to[workspace.dependencies].server/Cargo.tomlandclient/src-tauri/Cargo.toml(dev-deps) now usetempfile.workspace = true.client/src-tauri/vp8-decoder/Cargo.toml:thiserror = "1"→thiserror.workspace = true(= 2). vp8-decoder now aligns with the workspace's thiserror major.MSRV bump 1.93 → 1.95
sysinfo 0.39declaresrust-version = "1.95". CI usesdtolnay/rust-toolchain@stableand stable rust is currently1.95.0(released 2026-04-14), so CI is unaffected. Local development requiresrustup update stable.Side effects of the rustc 1.95 toolchain bump (rustc 1.95 introduced new clippy lints that fire on existing code):
websocket_integration.rs×3:Duration::from_millis(1000)→Duration::from_secs(1)(clippy::duration_suboptimal_units)media_processing.rs×1: inline format arg"…{error}"instead of positional (clippy::uninlined_format_args)observability.rs×2: switchedlet req: i64 = 100; …let err: i64 = 5; … err as f64 / req as f64 …to nativef64literals in the test helper (clippy::needless_type_cast)These are mechanical fixes only — no behavioural change.
Tauri 2.11 schema regeneration (carry-over from #551)
client/src-tauri/gen/schemas/{acl-manifests,desktop-schema,linux-schema}.jsonare auto-regenerated bytauri-buildfrom the 2.11 ACL set. Phase 3 (#551) only ranbun run buildlocally (no Rust client compile, libspa local-env issue), so the schema regeneration didn't get committed there. Phase 4a's local Rust check triggered the regen; including the diff here so the on-disk schemas match the committed Tauri version. Pure data movement, no manual edits.Test plan
cargo fmt --check— cleancargo clippy --tests -p vc-server -- -D warnings— cleancargo deny check—advisories ok, bans ok, licenses ok, sources okcargo audit— exit 0 (warning count 26 → 25; one transitive cleared)cargo build --tests -p vc-server— cleancargo check -p vc-common -p vc-crypto -p kaiku-vp8-decoder— cleanbun run test:run— 32 files, 581/581 tests passbun run build—tsc && vite buildgreencargo build --release -p vc-client— deferred to CI; pre-existing local libspa env issue prevents full Rust client builds locally🤖 Generated with Claude Code