# Active Context — Strava Frontend
## Task State
- task_id: TASK-F11
- status: success
- parent_task: —
- summary: **SEO — @unhead/vue, динамический title по роутам + meta description.**
- next task: — (no active tasks)
## ✅ CODER SUCCESS REPORT — TASK-F11
- `package.json` — `@unhead/vue` ^3.4.1 в dependencies (установлено через `npm install @unhead/vue --legacy-peer-deps`; peer-конфликт vite 4 vs vite 5 разрешён legacy-flag'ом; vite в project поднят до 5.4.21 транзитивно).
- Создан `src/router/seo.ts` — `setupSeo(router, head: Unhead)`: SEO_MAP по name роута + DEFAULT_SEO, `head.push({title, meta:[description]})` + `router.afterEach(() => update())`.
- `src/main.ts` — `import { createHead } from "unhead/client"` + `import { headSymbol } from "@unhead/vue"`; `const head = createHead(); app.provide(headSymbol, head); setupSeo(router, head);` (после `app.use(router)`).
- `index.html` — `
` заменён на «Cycle Rider — платформа для анализа велотренировок: ...»; добавлен `` в `` как fallback; блок Yandex.Metrika перенесён из `` в начало `` (Vite 5 parse5 запрещает `