Skip to content

fix(ui): decide Vite 5 → 6 upgrade — closes Dependabot #16 + #17 [vision-review] #114

@w7-mgfcode

Description

@w7-mgfcode

vision-review — this issue requires explicit project-owner judgment per .claude/rules/product-vision.md. Tagged [vision-review] in the title because the vision-review label does not yet exist in this repo (recommend adding it once for future use).

Summary

Two open Dependabot alerts on @lab/ll-KNOWRAG/apps/ui/package-lock.json cannot be patch-bumped — they require a MAJOR version upgrade of Vite (5 → 6) which the project explicitly chose to defer in Phase 8.

Both alerts trace back to one decision: do we move to Vite 6 now, or accept the medium-severity exposure on a local-dev-only build tool?

Alerts being tracked

# Sev Pkg Vuln range → Patched Note
#17 MED vite <= 6.4.16.4.2 requires Vite 5 → 6 major bump (current pin: 5.4.21); GHSA-4w7w-66w2-5vf9 — Path Traversal in optimized-deps .map handling
#16 MED 5.3 esbuild <= 0.24.20.25.0 transitive via Vite (current resolved: 0.21.5); GHSA-67mh-4wv8-2f99 — dev server allows any website to send arbitrary requests and read responses

Why this is vision-flagged

  • Stored agent memory (project_knowrag_phase8_ui_stack): Phase 8 deliberately stays on Tailwind v4 + Vite 5.4 to avoid a churn cascade in the UI bundler/dev-server stack while the design system was being landed.
  • Severity context: both alerts are MEDIUM and affect the dev server onlyvite dev and the optimized-deps map endpoint. The production nginx-served bundle (apps/ui/Dockerfile) is unaffected at runtime.
  • Risk surface: local-only — neither attack vector reaches the operator's deployed stack at *.w7.local. Bypassing the dev server requires a malicious site that the developer also has open in the same browser session.

Decision options

a) Open a vision-review-flagged note and stay on Vite 5

b) Bump to Vite 6 (full upgrade)

  • `cd @lab/ll-KNOWRAG/apps/ui && npm install vite@^6 esbuild@^0.25` + lockfile regen.
  • Run `npm test` (vitest), `npm run build`, then exercise the running UI via the `agent-browser` skill (catalog + chat + operator + URL-state roundtrip — same surface as the iter-1 dogfood report at `dogfood-output/epic5-20260511T082058Z/`).
  • Update `@lab/ll-KNOWRAG/CLAUDE.md` and the Phase 8 BLUEPRINT note where Vite 5.4 is mentioned.
  • Pros: real fix; closes both alerts cleanly.
  • Cons: Phase 8 vision tension; potential plugin churn (`@vitejs/plugin-react`, Tailwind v4 Vite plugin, vite-tsconfig-paths if used) — needs full UI smoke before merge.

c) Per-package overrides (surgical patch)

d) Combine (a) + (c)

  • Override esbuild AND ignore the Vite major. Two-line package.json change + Dependabot ignore.
  • Pros: addresses what we can without churn.
  • Cons: still leaves Vite 5 dev server exposed to GHSA-4w7w-66w2-5vf9.

Recommendation

(a) defer + Dependabot ignore-major is consistent with the Phase 8 lockdown discipline, given:

  • both alerts are dev-only,
  • the project owner already locked Vite 5.4 deliberately,
  • the next natural upgrade window is the post-Phase-8 `knowrag-v0.x.0` → `v0.x+1` slice.

If the project owner prefers (b), the work fits in one PR (~30 min including dogfood) and would close both alerts as "fixed" (not "dismissed").

Companion: alert #1 (cryptography uv.lock)

Alert #1 (cryptography 46.0.6 → 46.0.7 in .shared/claude-memory-compiler/uv.lock) was just landed in commit 4c0b139 (PR #113). It will auto-dismiss within minutes via Dependabot rescan — no action needed, listing here only for completeness.

Acceptance criteria

This issue is closed when either:

  1. A PR lands that bumps Vite + esbuild and the UI smoke passes (option b), OR
  2. A @dependabot ignore comment is posted on feat(cli): add w7 verify with KNOWRAG end-to-end smoke harness #17 (option a), and a one-line note is added to @lab/ll-KNOWRAG/CLAUDE.md documenting the dev-server-only acceptance with a target re-evaluation date.

Metadata

Metadata

Assignees

No one assigned

    Labels

    blockedWaiting on dependenciesdependenciesPull requests that update a dependency file

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions