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).
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