Skip to content

[DEFERRED] Major dependency migrations queue #74

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)

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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