8 Commits
Author SHA1 Message Date
german 4534ecfd0a Клуб, вход через Яндекс ID, адаптер бота и полировка (#1)
Deploy / deploy (push) Failing after 7s
Вливает работу от 5-6 августа. main отставал на 4 коммита, а деплой настроен на main — без слияния автодеплой раскатал бы каркас без клуба и авторизации.
2026-08-06 20:28:01 +00:00
germanandClaude Opus 4.8 c6b26a93d8 polish(nika): фикс design-tokens, SEO-метаданные, favicon
- tailwind: восстановлены токены paper/accent/muted (их используют
  все компоненты — незакоммиченный оверхол их удалял → ломало палитру);
  serif/display указывают на реально загруженные next/font (Cormorant/Inter),
  а не на несуществующий --font-serif/Space Grotesk/Manrope;
  muted возвращён к #6b6b6b (WCAG-AA на белом). Новые токены gold/bg/graphite/
  радиусы/тени оставлены аддитивно.
- layout: metadataBase + canonical + OG url/siteName + twitter card (SEO/OG).
- 404: metadata title + robots noindex.
- app/icon.png: favicon (Next app-icon).

Сборка/типы: next build + tsc --noEmit — зелёные.
Бот-адаптер /api/bot/* и Яндекс-redirect не трогались (соответствуют SPEC).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-08-06 05:14:33 +03:00
germanandClaude Opus 4.8 3f1c5dbd7b feat(bot): сайт-адаптер единого бота флота + фикс redirect на 1nika.ru
Реализован контракт /api/bot/* из servaki-webhub-bot/SPEC.md:
- GET  /api/bot/health (публичный) -> {ok, site}
- GET  /api/bot/publications?status=&limit= -> список works
- POST /api/bot/publications {title,body,media[]} -> черновик works -> {id}
- POST /api/bot/publications/:id/publish -> published -> {id,url}
- DELETE /api/bot/publications/:id -> удаление (media cascade)
- POST /api/bot/materials (multipart file) -> media -> {id,url}

Аутентификация Authorization: Bearer <BOT_API_TOKEN> (middleware/botAuth,
сравнение постоянного времени; 503 без токена в env, 401 при несовпадении).
Маппинг: публикация<->works, материал<->media. Миграция bot_adapter.sql
разрешает media.type='file'. multer 2.x.

Фикс Яндекс-redirect и домена: nika-gallery.ru -> 1nika.ru в .env.example
(YANDEX_REDIRECT_URI, FRONTEND_URL, SITE_URL, NEXT_PUBLIC_*, SMTP_USER) и
nginx server_name. Секреты не в git (client_id/secret - на Я.Диске).

Добавлен docs/DEPLOY.md (VPS runbook: DNS, .env, SSL, миграции, бот).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-08-05 23:24:20 +03:00
germanandClaude Opus 4.8 a355188301 feat(club): frontend закрытого клуба + вход через Яндекс
Страница /club (уровни, форма заявки, статус, админ-модерация),
/club/gallery (закрытая галерея), /login (кнопка «Войти через
Яндекс» + email-вход, разбор #token). Хелперы lib/auth.ts,
lib/club.ts, компонент AdminRequests. Ссылки «Клуб»/«Войти» в Nav.
Эстетика по существующим токенам (paper/ink/accent, Cormorant/Inter).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-08-05 21:49:15 +03:00
germanandClaude Opus 4.8 8291d0f725 feat(club): backend закрытого клуба + вход через Яндекс ID
Миграция club_access.sql (access_requests, users.club_tier/yandex_id/
avatar_url, password NULLable, works.club_only). OAuth-роуты Яндекса
(/api/auth/yandex[/callback]) с CSRF-state и мягкой 503 без ключей.
Клуб: /api/club/tiers|request|my-request|gallery + админ requests/
approve/decline. Rate-limit на /api/auth сохранён.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-08-05 21:49:02 +03:00
germanandClaude Opus 4.8 ad35d4e992 feat(#3): frontend scaffold (Next.js 14 App Router, TS, Tailwind, галерея)
Deploy / deploy (push) Failing after 5s
Каркас витрины дизайнера Ники: главная (hero + сетка галереи),
страница работы (детали + место под аукцион), список аукционов,
подписка-заглушка. Клиент к backend /api с graceful-фолбэком на
демо-работы при недоступном API. Standalone-сборка + Dockerfile.
Сборка npm run build и tsc --noEmit проходят.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-08-05 19:42:13 +03:00
germanandClaude Opus 4.8 be29d02cc0 feat(#2): backend scaffold + auth (Express ESM, PG, JWT, bcrypt, rate-limit, закрытая регистрация)
Deploy / deploy (push) Failing after 4s
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-08-05 19:26:42 +03:00
rootandClaude Sonnet 4.6 c573e8bfe6 init: scaffold проекта — schema, docker-compose, nginx, README, CI
Deploy / deploy (push) Failing after 20s
- db/schema.sql: полная PostgreSQL 16 схема (12 таблиц + view works_extended)
- docker-compose.yml: db + backend + frontend + nginx
- nginx/nginx.conf: HTTPS proxy, WebSocket, static uploads
- .env.example: все переменные задокументированы
- .gitea/workflows/deploy.yml: CI деплой-заготовка
- README.md: граф задач флота агентов

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-08-05 19:05:50 +03:00