Profile-driven cabinet

Новый кабинет MaxProject для работы с GitHub-репозиториями без GitHub Desktop

T040 поднимает deployable Next.js skeleton для `cabinet.maxproject.pro`: отдельный app router, общий визуальный язык с `advocate-app` и подготовленный контур для auth, project selection и profile-driven UI.

Deploy readiness

Минимальный каркас для реального запуска

Домен
cabinet.maxproject.pro
Текущая цель
T040
Основа
Next.js 14 App Router
Референс UI
apps/advocate-app
Ограничения соблюдены

`apps/advocate-app`, `specs/003` и `specs/108` не меняются. Здесь только независимый skeleton под новый домен.

Foundation layer

Что уже можно опереть на существующий слой

Server session
Основа для httpOnly-сессии и выбора активного проекта уже спроектирована в lib/session.ts.
GitHub policy layer
Правила разрешенных путей, commit-план и server-only GitHub access уже зафиксированы.
Role-aware access
user/admin разграничены в foundation-слое без изменений доменной логики workers.
Worker status adapter
Скелет синхронизации ingestion и legal-worker статусов готов для следующих задач.

Infra status

  • nginx-конфиг для cabinet.maxproject.pro уже в repo
  • systemd unit для cabinet-app уже в repo
  • TLS-сертификат на VPS уже выпущен
  • Следующий инфраструктурный шаг после T040: вернуться к T024 smoke-check

Ближайший implementation queue

  • T041: auth routes и интеграция workflow
  • T042: реальная server-side session
  • T043: выбор проекта
  • T044-T045: advanced mode и базовый рабочий экран