Этот файл коммитится в git и служит переносимой «памятью» между машинами/сессиями.
Movie Recommendr — портфолио-проект: рекомендации фильмов/сериалов с AI (RAG, pgvector embeddings, GPT-чат). Монорепо pnpm + Turbo.
apps/api— NestJS 11 (port 3001), Supabase (PostgreSQL + pgvector), BullMQ + Redis, OpenAIapps/web— Next.js 14 App Router (port 3002), React Query, next-intl (en/ru/uk), Supabase Authpackages/db— Supabase клиенты (supabaseservice-key,supabaseAnon) + generated typespackages/ai— OpenAI обёртка- Production: API на Railway, Web на Vercel
SESSION_RESUME.md— текущее состояние и следующий шаг (обновлять в конце сессии!)IMPROVEMENTS.md— ЕДИНСТВЕННЫЙ живой план (приоритеты P0–P4, разделы 17–19 добавлены при ревизии)docs/PROJECT_REVIEW_2026-06-11.md— полное ревью архитектуры и проблемdocs/superpowers/specs/2026-05-01-smart-search-design.md— спека smart-search (Phase 1 в работе)WORKFLOW_RULES.md— процессные правила (новые фичи: сначала показать код, ждать подтверждения; багфиксы и docs — можно сразу)- ROADMAP.md, NEW_IMPROVEMENTS_SUMMARY.md — архив, не использовать для планирования
pnpm dev # из apps/api или apps/web (нужен Redis: redis://localhost:6379)
pnpm build # сборка
pnpm test # jest (apps/api)
npx tsc --noEmit # typecheckEnv загружается из корневого .env (см. .env.example; в т.ч. ADMIN_API_KEY).
/api/queues/*,/api/embeddings/*, import-POST'ы/api/tmdb/*— guardAdminApiKeyGuard(заголовокX-Admin-Api-Key= envADMIN_API_KEY, fail-closed)- watchlist/chat/recommendations(кроме popular)/users —
SupabaseAuthGuard: user_id берётся ТОЛЬКО из JWT (@CurrentUser()), никогда из query/body - Rate limiting: глобально 100/мин (env RATE_LIMIT_*), chat 10/мин, search 30/мин
- Глобальный ValidationPipe (whitelist+transform) + DTO в
*/dto/ - При добавлении новых эндпоинтов СОХРАНЯТЬ эти паттерны
apps/api/src/queues/processors/imdb-update.processor.ts— НЕ компилируется (вызывает несуществующие методы tmdbService.updateMoviesImdbIds/updateTvShowsImdbIds). Это WIP для IMPROVEMENTS §15. Не регистрирован в модуле. Передnest buildучитывать.- Тестов 62 (2026-06-12); TDD обязателен для нового кода (superpowers skill)
- Миграции: полная история — в корневом
supabase/migrations/(16 файлов); вpackages/db/supabase/migrationsлежит 1 дублирующий файл — консолидировать - CI: lint/check-types/test и build идут ДВУМЯ шагами (next build переписывает .next/types — гонка с tsc)
- Миграция
20260612000001_add_ai_usage.sqlмогла быть ещё не применена — AiUsageService деградирует мягко (warn в логах) - KEY_ROTATION_GUIDE.md и SECURITY_AUDIT_REPORT.md упомянуты в IMPROVEMENTS, но в репо отсутствуют; актуальный чеклист:
docs/KEY_ROTATION_CHECKLIST.md