Commit Graph

3 Commits

Author SHA1 Message Date
Aleksei Pavlov 3cc5dafc08 feat(zero): full-width amber banner with hero + cover-cards
ZeroBlock переработан:
  - full-width секция с amber-градиентом и border-y
  - hero: квадратный аватар Зеро (kofeиная поза) 32-48px + заголовок + tagline
    + CTA-кнопки 'Все заметки' / '@zeropostru'
  - notes карточки: квадратная обложка-поза (image_url из БД) с object-cover,
    под ней цитата с line-clamp-6 + 'в Telegram' ссылка если опубликовано
  - на главной (compact): 5/7 split — hero слева, 3 карточки справа
  - на /zero: hero сверху во всю ширину, сетка из всех карточек ниже
  - graceful empty state когда заметок ещё нет

/zero страница упрощена: вся структура внутри ZeroBlock (убран дублирующий
hero с био-bullets — текст консолидирован в один tagline).
2026-06-19 12:23:55 +03:00
Aleksei Pavlov 4c0942d11b fix(zero): defensive fetch — don't crash Server Components on engine errors
- autogen page.js: wrap engineCall in try/catch (return null on any failure)
- /zero page: use Promise.allSettled so one failed source doesn't break page

Root cause was ENGINE_URL=host.docker.internal not resolving in coolify net,
fixed at env level but defending code too so future quirks degrade gracefully.
2026-06-19 11:32:32 +03:00
Aleksei Pavlov 8700b8fc69 feat(zero): admin panel section + site /zero page + autogen card
Admin (/admin/zero):
  - new AdminZero with list, status filters, generate button (bucket + allow_dup)
  - per-note actions: approve, edit inline, regenerate (bucket pick), skip,
    'publish now' (approve + scheduled_at=now → runner picks up within 1m)
  - config panel: toggle on/off, generate/approve/publish hour MSK, site URL base
  - new pin 'Зеро' () in AdminNav

Site (zeropost.ru):
  - ZeroBlock — feed of last 3-6 Zero notes, rendered on home next to Серии
  - /zero — full Zero notes list page with character bio block (avatar + bullets)

Autogen integration:
  - ZeroAutogenCard on /admin/autogen — amber card with on/off, hour pickers,
    'generate now' and last-3 preview, link to full section

Plumbing:
  - lib/engine.js: listZeroNotes(), getZeroCharacter()
  - app/admin/api/zero/[...path]/route.js: catch-all proxy with cookie auth
2026-06-19 11:17:19 +03:00