# Active Context — Strava Frontend ## Task State - task_id: TASK-DEPS-UPDATE (PARENT) - status: success (CLOSED) - parent_task: — - summary: **All waves W0a→W3 done and Architect-verified.** Final stack: vue 3.5.42, pinia 3.0.4, TS 5.8.3, vue-tsc 2.2.12, vite 5.4.21, eslint 9.39.5, typescript-eslint 8.69.0, node:22 (Docker). lint 0 errors, build green, docker build green. - next task: create a NEW task_id when starting the next feature. ## W3 acceptance criteria - `eslint` 9.x + `typescript-eslint` 8.x in yarn.lock; legacy `@typescript-eslint/eslint-plugin@6` + `@typescript-eslint/parser@6` removed (superseded by the `typescript-eslint` 8 meta-package); NO other package moved to a new major - `yarn lint` 0 errors + `yarn build` green - `eslint.config.mjs` adjustments minimal and documented (flat config already in use — migration should be trivial) - Memory Bank: status `success` + Success Report ## W3 notes for the Coder - Current state: `eslint@8.57.1` (flat config works on 8.57), `typescript-eslint@7.18.0`, legacy `@typescript-eslint/eslint-plugin@^6.11.0` + `@typescript-eslint/parser@^6.11.0` still in package.json (redundant with the meta-package but currently unused by eslint.config.mjs). - Target: `yarn add -D eslint@^9 typescript-eslint@^8`, then `yarn remove @typescript-eslint/eslint-plugin @typescript-eslint/parser` ONLY if eslint.config.mjs does not import them directly (check first). - eslint 9 removes some legacy config options — if `eslint.config.mjs` breaks, apply the minimal migration (documented). - `eslint-plugin-prettier`/`@vue/eslint-config-prettier` are NOT part of W3 — leave versions as-is. ## W2d acceptance criteria - `package.json`: no `storybook`/`@storybook/*`/`eslint-plugin-storybook` deps, no `storybook`/`build-storybook` scripts - yarn.lock: no `@storybook/vue3-vite` entry, no nested `@vitejs/plugin-vue@4` install - `yarn lint` 0 errors + `yarn build` green - `eslint.config.mjs` — no references to storybook plugin (verify; add minimal fix if present) - Memory Bank: status `success` + Success Report (removed list, install-size delta if measurable) ## W2b acceptance criteria - `vue-tsc` resolved to 2.x and `typescript` to 5.8.x in yarn.lock; NO other package moved to a new major - `yarn lint` — 0 errors; `yarn build` — green (vue-tsc 2 type-check 0 errors, bundle built) - Minimal type-only fixes in `src/` allowed only if required by the stricter checker; each documented with justification - Memory Bank: status `success` + Success Report (old/new versions, full list of src/ fixes with justification) ## Wave plan (each wave = one atomic task, verified independently) - **W0a (TASK-DEPS-UPDATE-W0a, success)**: Fix everything that hard-blocks `yarn build`: - `LineWithLineChart.ts(41)` TS2532 "Object is possibly 'undefined'" (labels can be undefined) — fix via non-null assertion or guarded length. - SFC parsing errors: `src/pages/workouts/components/WorkoutItem.vue:260` (`Unexpected token {`) and `WorkoutListItem.vue:60` (`'interface' is reserved`). Root-cause candidates: TS syntax in a plain `