Skip to content

chore(infra): Phase 4a — batch Rust low-risk minors + MSRV bump to 1.95#552

Merged
Detair merged 3 commits into
mainfrom
chore/rust-minors-batch
May 9, 2026
Merged

chore(infra): Phase 4a — batch Rust low-risk minors + MSRV bump to 1.95#552
Detair merged 3 commits into
mainfrom
chore/rust-minors-batch

Conversation

@Detair

@Detair Detair commented May 8, 2026

Copy link
Copy Markdown
Owner

Summary

Phase 4a of the dep-update sweep (spec, plan). Builds on Phase 3 (#551).

Workspace deps

  • axum-tracing-opentelemetry 0.32 → 0.33
  • init-tracing-opentelemetry 0.36 → 0.37
  • infer 0.16 → 0.19 (signature DB updated; tests build)
  • smol_str 0.2 → 0.3 (server compiles cleanly; no From<&str> migration needed)
  • tokio-tungstenite 0.28 → 0.29 (server compiles cleanly; no MaybeTlsStream exhaustiveness fixes needed)

Client deps

  • sentry, sentry-tracing 0.47 → 0.48. The tower integration moved out of the sentry crate in 0.48; we use sentry-tracing (not the tower middleware), so no migration.
  • sysinfo 0.38 → 0.39requires Rust 1.95, so this PR also bumps MSRV.

Workspace hygiene

  • tempfile = "3" hoisted to [workspace.dependencies]. server/Cargo.toml and client/src-tauri/Cargo.toml (dev-deps) now use tempfile.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.39 declares rust-version = "1.95". CI uses dtolnay/rust-toolchain@stable and stable rust is currently 1.95.0 (released 2026-04-14), so CI is unaffected. Local development requires rustup 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: switched let req: i64 = 100; …let err: i64 = 5; … err as f64 / req as f64 … to native f64 literals 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}.json are auto-regenerated by tauri-build from the 2.11 ACL set. Phase 3 (#551) only ran bun run build locally (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 — clean
  • cargo clippy --tests -p vc-server -- -D warnings — clean
  • cargo deny checkadvisories ok, bans ok, licenses ok, sources ok
  • cargo audit — exit 0 (warning count 26 → 25; one transitive cleared)
  • cargo build --tests -p vc-server — clean
  • cargo check -p vc-common -p vc-crypto -p kaiku-vp8-decoder — clean
  • bun run test:run — 32 files, 581/581 tests pass
  • bun run buildtsc && vite build green
  • cargo build --release -p vc-client — deferred to CI; pre-existing local libspa env issue prevents full Rust client builds locally

🤖 Generated with Claude Code

Detair and others added 3 commits May 9, 2026 00:34
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>
@Detair Detair merged commit 8950e5d into main May 9, 2026
18 checks passed
@Detair Detair deleted the chore/rust-minors-batch branch May 9, 2026 20:53
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