Ник (Claude)
a5f6c080bd
feat: admin panel improvements
...
Header: убрана кнопка Система (дубль Админ), убраны устаревшие импорты
AdminPanel: 6 разделов (AI-провайдеры, Движок, ЮKassa, Расходы AI, Тарифы, Пользователи)
Тарифы: редактор планов (цена/кредиты/каналы) + стоимость операций
Движок: ENGINE_PUBLIC_URL, APP_PUBLIC_URL, TELEGRAM_API_BASE, AUTO_DRAFT_*
PlansSection: inline-редактирование тарифов и credit_costs
API routes: /api/admin/plans/[id], /api/admin/credit-costs/[operation]
2026-06-13 00:02:52 +03:00
Ник (Claude)
d888816f2b
fix: merge [channelId] into [id] in app/api/channels — Next.js slug conflict
2026-06-12 23:49:29 +03:00
Ник (Claude)
5bf01ec394
feat: drafts UI — /drafts review page + batch generate button
...
/drafts page: список черновиков по статусам (pending/approved/rejected)
Одобрить + выбрать время → scheduled_post в календарь
Редактировать текст inline, отклонить, удалить
Header: ссылка 'Черновики' (FileText иконка)
ChannelView: кнопка 'Авто ×N' для batch-генерации (async)
ChannelEdit AI-стиль: секция авто-черновиков (toggle + count + time)
API routes: /api/drafts, /api/drafts/[id]/{approve,reject}
/api/channels/[channelId]/drafts/generate
2026-06-12 23:48:17 +03:00
Ник (Claude)
ab4e340db9
feat: onboarding + topic bank UI + channel limit handling
...
/onboarding: 3-шаговый вайзард (платформа → название/ниша → готово)
login/page.js: новый пользователь → /onboarding, существующий → /
TopicBank.js: просмотр/пополнение/добавление/удаление тем
ChannelEdit AI-стиль: TopicBank компонент внизу вкладки
channels/new: при 402 CHANNEL_LIMIT_REACHED → ошибка + redirect /plans
lib/engine.js: ENGINE_URL дефолт 3040 → 3030
API routes: /api/topics-bank/[channelId]/{refill,add}, /item/[id]
2026-06-12 11:50:22 +03:00
Ник (Claude)
59016a7490
fix: restructure inbox API routes — channel/ and message/ namespaces
...
Next.js не позволяет [channelId] и [id] на одном уровне.
Решение: /api/inbox/channel/[channelId]/* и /api/inbox/message/[id]/*
InboxTab: все fetch пути обновлены
2026-06-11 20:14:40 +03:00
Ник (Claude)
d262c2af7d
feat: P6 Inbox UI — InboxTab + API routes
...
ChannelView: вкладка 'Inbox' рядом с 'Аналитика'
InboxTab.js:
- Webhook setup кнопка (если не настроен)
- Табы: Новые / Все / Отвечено / Игнорировано
- Карточки сообщений с иконкой типа (question/praise/complaint/spam)
- AI-предложенный ответ с кнопкой 'Использовать →'
- Форма ответа прямо в карточке
- Кнопки: Ответить / Игнорировать / Спам
API routes: /api/inbox/[channelId], /reply, /status, /setup-webhook
2026-06-11 20:13:08 +03:00
Ник (Claude)
d0fd328011
feat: PollModal + HashtagSuggest UI
...
PollModal:
- Вопрос + 2-10 вариантов ответа
- Типы: обычный / викторина (с правильным ответом и объяснением)
- Настройки: анонимность, несколько ответов
- Отложенная публикация через datetime-local
- Кнопка «📊 Опрос» в ChannelView (только для TG каналов)
HashtagSuggest:
- Появляется под сгенерированным постом
- Запрос в /api/generate/hashtags → Claude Haiku
- Клик по тегу — выбор, кнопка «Добавить в пост»
- Обновление тегов, закрытие панели
2026-06-11 19:55:24 +03:00
Ник (Claude)
18613eee77
feat: YuKassa checkout button on /plans + API route
...
/plans: кнопка Подключить → fetch /api/billing/checkout → redirect to ЮKassa
app/api/billing/checkout/route.js — прокси к engine
2026-06-11 18:45:32 +03:00
Ник (Claude)
9bd38bc645
feat: billing complete — plans page, admin billing, credit cost hints
...
/plans: страница тарифов с карточками, стоимостью операций, FAQ
/system → Биллинг: таблица пользователей с кредитами, ручное начисление
ChannelView: badge стоимости (2кр текст + 5кр картинка) под кнопкой генерации
Ошибка INSUFFICIENT_CREDITS → понятное сообщение
После генерации — event credits-updated → обновление badge в header
Header: подписка на credits-updated event
API роуты: /api/billing/plans, /api/billing/admin/users, /api/billing/admin/credit
2026-06-11 18:42:54 +03:00
Ник (Claude)
1cce478f27
feat: billing UI — balance in header + /billing transactions page
...
- Header: Coins badge с кредитами, ссылка на /billing
- app/billing/page.js: баланс, план, стоимость операций, история транзакций
- app/api/billing/balance/route.js, transactions/route.js — прокси к engine
- lib/engine.js: getBillingBalance, getTransactions, getBillingPlans, adminCreditUser
2026-06-11 18:28:56 +03:00
Ник (Claude)
f4860f0e70
feat: /spending page — AI cost dashboard (aiprimetech + routerai)
...
- app/spending/page.js: расходы по периодам, разбивка по провайдерам и типам
- app/api/usage/summary/route.js: прокси к engine /api/usage/summary
- Header.js: ссылка «Расходы» для admin (TrendingUp иконка)
2026-06-11 13:20:52 +03:00
Ник (Claude)
8ad9d19569
fix: goal+language in ChannelEdit, metrics 500 (await params)
...
ChannelEdit.js:
- Добавлены goal (multi-select + кастомные, как в форме создания)
- Добавлен language (select: ru/en/uk/kk)
- Импортированы Plus, X иконки и GOALS константа
app/api/metrics/channel/[channelId]/route.js:
app/api/metrics/best-time/[channelId]/route.js:
- await params (Next.js 16 требует), иначе 500
2026-06-10 15:10:33 +03:00
Ник (Claude)
3e04df32c5
feat: Notes manager — Заметки редактора в app.zeropost.ru
...
- app/notes/page.js: страница управления заметками (создать/редактировать/
удалить/закрепить/скрыть). Список с превью, inline-форма.
- app/api/notes/route.js: GET+POST прокси к engine /api/notes
- app/api/notes/[id]/route.js: PATCH+DELETE прокси
- lib/engine.js: listNotes, createNote, updateNote, deleteNote
- Header.js: ссылка «Заметки» в навигации (MessageCircle иконка)
2026-06-09 11:44:33 +03:00
Ник (Claude)
8f4dc1a386
system: AI-провайдеры + блок «Расход AI»
...
* components/SystemSettings.js: добавлен компонент UsageSummary сверху —
сводка вызовов и стоимости с переключателем периода (Сегодня/Неделя/
Месяц/Всё) и группировкой (по сервису/провайдеру/модели). Виджеты
cost_rub/calls/tokens/images + таблица breakdown.
* components/SystemSettings.js: в массив CATEGORIES добавлена категория
'ai_providers' первой — Aleksei видит все 11 строк (Текст/Картинки
ключи+URL+модели + AI_USD_RUB_RATE + AI_PROVIDER_MARKUP) сверху.
Существующая инфраструктура SettingRow (маскировка секретов, save+toast)
переиспользуется без изменений.
* lib/engine.js: добавлены engine.usageSummary(params) и engine.usageRecent(limit).
* app/api/admin/usage/summary/route.js (новый): прокси-роут к engine
/api/usage/summary через requireAdmin.
Verify:
* next build прошёл без ошибок.
* /system → 307 redirect на /login (неавторизованный — корректно).
* /api/admin/usage/summary → 403 Forbidden (не-админ — корректно).
2026-06-08 20:21:49 +03:00
Nik (Claude)
eac6e2ed13
feat: P4 ChannelAnalytics tab; P5 FromUrlModal + URL→draft in ChannelView
2026-06-08 11:09:03 +03:00
Nik (Claude)
999119d58d
feat: P1 Calendar — CalendarView (month/week/list, drag&drop, channel filter)
2026-06-08 10:16:54 +03:00
Nik (Claude)
2e550d2993
feat: photo-search, system settings, ROADMAP
...
- PhotoSearchModal: Yandex photo-search с профилями доменов
- SystemSettings: управление app_settings (admin-only, /system)
- ROADMAP.md: актуальный план фич P1-P10
- Header, ChannelView, session: поддержка is_admin
2026-06-07 14:04:14 +03:00
Alexey Pavlov
1a1eac16ee
feat: post saving, instant publish, scheduling, post history per channel
2026-05-31 17:36:02 +03:00
Alexey Pavlov
e2b64baf2e
feat: post variants, transforms, image generation, AI ideas, channel edit page with image style settings
2026-05-31 17:32:39 +03:00
Alexey Pavlov
5dd975a9cd
feat: zeropost-tool — Next.js 16 кабинет
...
- Auth: iron-session, регистрация/логин по email+password
- Дашборд со списком каналов
- 3-шаговая анкета создания канала (база/стиль/примеры+табу)
- Страница канала с генератором постов через polling
- Тёмная тема, Tailwind 3.4, accent emerald
- Прокси-API к zeropost-engine с x-user-id
- Совместимость с Next 16 async cookies/params
2026-05-31 08:38:10 +03:00