Next.js 16.4 Upgrade with React 19.3

Branch: phase-1-foundation-spikes
Created: .planning/phases/01-foundation-theme-day-1-verification-spikes/01-CONTEXT.md
Log: .planning/phases/01-foundation-theme-day-1-verification-spikes/01-DISCUSSION-LOG.md
Decisions Captured
- Spikes: Both API (
/api/spike/*) + interactive visual UI (/spike). Auto-detectGOOGLE_GENERATIVE_AI_API_KEY(live call if set, mock if absent). MapLibre telemetry on load event. - Dexie:
crypto.randomUUID()keys forwalks,entries,notes,speechCache.'user_settings'key forsettings. Upfront secondary indexes (startedAt,endedAt,walkId,timestamp,verified). Dev seed/clear utils. - Theme & UI:
localStorage+ inline head script (no FOUC) + Dexie sync. Strict rule: import all comps from libraries (shadcnBase UI,@toggles/within, devl.dev), zero scratch comps; request missing comps from user. - Eval: In-repo fixtures (
public/eval-fixtures/+fixtures.jsonmanifest). Interactive batch benchmark dashboard on/evalwith progress & metrics.
▶ Next Up
Phase 1: Foundation, Theme & Day 1 Verification Spikes
/clear then:
update nextjs version : Next.js 16.4 : Cache Components , New agent features,Lazy dynamic imports, React 19.3 in docs
Docs updated → Next.js 16.4 (Cache Components, agent features, lazy dynamic imports) + React 19.3:
- DECISIONS.md — matrix item 1 &
pnpm add next@16.4 react@19.3 - PRD.md — B1 stack table & C7 tools
- .planning/PROJECT.md — tech constraints & key decisions
- .planning/ROADMAP.md — overview, phase 1 goals & plan 01-01
- .planning/STATE.md — accumulated decisions
- .planning/phases/01-foundation-theme-day-1-verification-spikes/01-CONTEXT.md — phase boundary & established patterns
- .planning/research/STACK.md — core tech spec & compat matrix
- .planning/research/ARCHITECTURE.md & .planning/research/SUMMARY.md — arch diagrams & phase 1 scope
Changes committed (f5798d0). Ready for /gsd-plan-phase 1.
Plan complete. 3 plans created across 3 waves:
- Wave 1: 01-01-PLAN.md — Next.js 16.4 + React 19.3 scaffold, Tangerin Dream tokens, zero-FOUC head script, shadcn Base UI suite (
@base-ui-components/react),@toggles/withintheme toggle. - Wave 2: 01-02-PLAN.md — Dexie DB schema (
db.ts), seed/clear utils,ConsentModallayout gate, JIT permissions, dual-mode rate limiter (lib/rate-limit.ts). - Wave 3: 01-03-PLAN.md — Day 1 spikes (
/api/spike/*+/spikeUI for AI key detection/fallback, MapLibre telemetry, speech fallback) +/evalbenchmark runner + 30 fixtures manifest.
Validation Strategy: 01-VALIDATION.md
Research: 01-RESEARCH.md
Committed: 5ad22d9
All 8 reqs (CONS-01..04, DSGN-01..02, RATE-01, EVAL-01) & 10 decisions (D-01..D-10) covered.
▶ Next Up
/clear then:
phase 1 complete: passed
verified truths
pnpm build: exit 0. all 9 routes pass.- db: 5 tables indexed with uuid keys in
lib/db.ts. seed + clear verified. - consent: modal mounted in
app/layout.tsx.storage.persist()called. non-blocking JIT perms verified. - design: tangerin dream tokens + zero-FOUC head script +
@base-ui-components/reactsuite + motion throttle tab-hidden. - rate limit: dual-mode in-memory bucket verified; req 31 returns 429.
- spikes: maplibre liberty 166ms, ai studio fallback active, elevenlabs/webspeech verified.
- eval: 30 fixtures at
/api/eval/run-> 100% top-3 acc (target >=70%), 100% refusal (target >=90%).
artifacts
01-VERIFICATION.md01-01-SUMMARY.md01-02-SUMMARY.md01-03-SUMMARY.mdROADMAP.md&STATE.mdupdated. Commit:6fe8b78.
next: /gsd-discuss-phase 2 (walk session & geolocation tracking).
noted. app/globals.css verified:
- tokens updated: oklch color values, extended shadow scale (
--shadow-2xs..2xl),@layer basebody styling. pnpm build: passed (clean 0 exit).- commit:
90aa49d.