Skip to content

[P2] frontend: Finish ADR-007 tooling modernization #224

@Cataldir

Description

@Cataldir

Problem inventory

The frontend has made partial modernization progress but still drifts from the accepted ADR-007 target stack.

Type: tech debt / modernization drift

Evidence

  • frontend/package.json uses next 15.5.10 and pnpm, but still uses react/react-dom 18.3.1, @types/react 18, TypeScript 5.6.3, Tailwind 3.4.14, ESLint 8, and Zustand 4.
  • ADR-007 targets React 19, TypeScript 5.7+, Tailwind 4, ESLint 9, and Zustand 5.
  • frontend/package-lock.json still exists and contains stale Next 14-era lock data while pnpm-lock.yaml is the declared package manager lockfile.

Impact assessment

User impact: medium/high. Tooling drift slows feature delivery and makes design modernization riskier, especially once Playwright and React 19 behavior are introduced.
Blast radius: frontend dependency graph, build pipeline, styling tokens, React hydration/runtime behavior, and CI reproducibility.

Acceptance criteria

  • Decide whether ADR-007 still targets React 19/Tailwind 4 immediately or needs an explicit phased migration note; document the decision.
  • Upgrade React, React DOM, TypeScript, Tailwind, ESLint/Biome-adjacent tooling, Zustand, and type packages according to the chosen migration path.
  • Remove stale package-lock.json if pnpm is the only supported package manager, or document why dual locks are intentionally retained.
  • Fix any React 19, Tailwind 4, or strict TypeScript regressions introduced by the upgrade.
  • pnpm --dir frontend install, lint, and build pass on Node 22.
  • Update frontend README and modernization documentation if commands or requirements change.

Agent assignment

Primary specialist: TypeScriptDeveloper
Supporting specialist: PlatformEngineer

Dependency notes

Can run in parallel with design inventory, but should avoid broad UI rewrites until the route/functionality map is stable.

Related backlog

  • ADR-007 is the primary source of truth for the target stack.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions