diff --git a/.roo/memory-bank/activeContext.md b/.roo/memory-bank/activeContext.md index fc0b982..bd752f4 100644 --- a/.roo/memory-bank/activeContext.md +++ b/.roo/memory-bank/activeContext.md @@ -2,11 +2,21 @@ ## Task State -- task_id: TASK-SSR-3 +- task_id: TASK-PUBLIC-ROUTE-FIX - status: success -- parent_task: TASK-SSR-2 -- summary: **FEATURE: SEO SSR — Sitemap endpoint, robots.txt, nginx proxy config, Dockerfile update, client localStorage guards, final verification.** -- next task: — (FEATURE complete after this) +- parent_task: TASK-SSR-3 +- summary: **BUG FIX: workout_public_item route — move to top-level, remove auth requirement.** +- next task: — (task complete) + +## ✅ CODER SUCCESS REPORT — TASK-PUBLIC-ROUTE-FIX + +- Изменён файл (единственный): `src/router/index.ts`: + - Удалён вложенный `workout_public_item` из `children` маршрута `workouts` (бывшие строки 50–54: `path: "public/workouts/:id"`). + - Добавлен top-level роут `{ name: "workout_public_item", path: "/public/workouts/:id", component: () => import("../pages/workouts/WorkoutPublicItem.vue") }` — зарегистрирован **до** catch-all `/:pathMatch(.*)*`, вне `AppLayout` (без auth-guard'а). +- Поведение: URL `/public/workouts/:id` теперь доступен без авторизации (не обёрнут в `AppLayout`), совпадает с SSR-эндпоинтом, nginx-прокси `location ~ ^/public/workouts/` и sitemap. Внутренняя навигация по `name: "workout_public_item"` (см. `Feed.vue`) не тронута — имя не менялось. +- `WorkoutPublicItem.vue` / `WorkoutItem.vue`: проверено — `inject("axiosAuth")` работает глобально (app.provide в `main.ts`), от AppLayout не зависит; auth-check'ов от вложенности не найдено. +- `yarn lint`: exit 0 (prettier: все файлы unchanged, eslint 0 ошибок). +- `yarn build`: exit 0 (vue-tsc --noEmit 0 ошибок, vite build ✓ 6.95s; warning о chunk >500kB — предсуществующий). ## ✅ CODER SUCCESS REPORT — TASK-SSR-3 diff --git a/src/router/index.ts b/src/router/index.ts index f558b66..0730da7 100644 --- a/src/router/index.ts +++ b/src/router/index.ts @@ -8,6 +8,11 @@ const routes: Array = [ path: "/dashboard", redirect: { name: "explore" }, }, + { + name: "workout_public_item", + path: "/public/workouts/:id", + component: () => import("../pages/workouts/WorkoutPublicItem.vue"), + }, { path: "/:pathMatch(.*)*", redirect: { name: "explore" }, @@ -47,11 +52,6 @@ const routes: Array = [ path: "workouts/:id", component: () => import("../pages/workouts/WorkoutItem.vue"), }, - { - name: "workout_public_item", - path: "public/workouts/:id", - component: () => import("../pages/workouts/WorkoutPublicItem.vue"), - }, ], }, {