Skip to content

[DEFERRED] Major dependency migrations queue #74

@matthewod11-stack

Description

@matthewod11-stack

Description

Tracking issue for major-version dependency upgrades that need dedicated migration sessions, not fire-and-forget Dependabot merges.

Current backlog

Frontend

  • React 18.3.1 → 19.x (closed PR npm: bump react-dom and @types/react-dom #51). Breaking changes: ref API, removed propTypes, suspense behavior. Needs npm run type-check + manual click-through across chat / roster / settings / import wizard before merge.
  • Tailwind 3.x → 4.x (closed PR npm: bump tailwindcss from 3.4.19 to 4.2.4 #50). Rewrite, not bump — CSS-first config (@theme directives), new engine, tailwind.config.js gets gutted. Needs visual QA across every screen, especially the warm-stone palette + teal accents + Instrument Serif italic gradient + radial-glow hero treatment.

Rust (src-tauri)

All 5 cargo majors landed and were reverted in 2026-05-01 because of compile errors. PR CI only runs cargo audit (vulnerability check), not cargo build — so green CI didn't catch the API changes.

  • rand 0.8 → 0.10: RngCore moved out of rand:: root; OsRng.fill_bytes() API changed. 4 call sites in backup.rs.
  • hmac 0.12 → 0.13: new_from_slice removed/relocated. Affects chat.rs:556 (the trial proxy signing path — load-bearing, recently verified live in production).
  • sha2 0.10 → 0.11: knock-on with hmac (Hmac binding).
  • notify 7 → 8: type-conflict between notify::RecursiveMode and the debouncer's bundled notify::RecursiveMode. Affects documents/watcher.rs (just refactored in [MEDIUM] Document watcher: folder-deletion handling, debouncing, thread cleanup #38).
  • calamine 0.26 → 0.34: Excel parsing. Errors short-circuited before this surfaced; may or may not need code changes.

Why this is one issue, not five

These should be migrated together in a single dedicated session because:

  • The Rust cargo bumps share Cargo.lock and conflict on rebase
  • The hmac/sha2/rand chain is interconnected (hmac depends on sha2 macros, RNG used in HMAC tests)
  • A single migration session can run cargo test after each step instead of relying on PR CI

Approach when picking this up

  1. Add a CI job that runs cargo build + cargo test + npm run type-check on PRs (not just cargo audit). This is the prerequisite — without it, the same trap will re-fire next time. Open this as a separate PR first.
  2. After CI is real: reopen the cargo bump PRs (or let Dependabot re-offer), let them re-rebase, and merge as the new CI passes. Each major should land in its own commit.
  3. Frontend (React 19 + Tailwind v4) belongs in its own session after cargo is sorted.

Automation Hints

scope: src-tauri/Cargo.toml + Cargo.lock + .github/workflows/, package.json + tailwind.config.js
do-not-touch: trial signing path until CI changes land
approach: refactor-types
risk: high
max-files-changed: 30
blocked-by: needs CI changes first
bail-if: cargo test fails after any single major bump

Priority

Low — all current deps are functional. Migrate when there's appetite for an intentional 2-3 hour session, not as a hot fix.

Related closed PRs (for reference)

Metadata

Metadata

Assignees

No one assigned

    Labels

    deferredIntentionally postponed — agent skips

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions