Commit Graph

  • e1f2f44365 fix(max): migrate to platform-api2.max.ru + Russian Trusted CA bundle main Alexey Pavlov 2026-06-24 15:43:21 +03:00
  • 90f6b474a1 fix(autogen): remove sort_order from ORDER BY — column doesn't exist in autogen_settings Aleksei Pavlov 2026-06-23 10:11:51 +03:00
  • 1f25adff00 feat(autogen): ротация 4 из 8 категорий по дням Aleksei Pavlov 2026-06-21 21:55:32 +03:00
  • 174c3a17c1 feat(autogen): next_topic в статусе — следующая тема для каждой категории Aleksei Pavlov 2026-06-21 21:38:12 +03:00
  • 1ced06fa2d fix(autogen): pg_advisory_lock + catch-up + double-check after lock Aleksei Pavlov 2026-06-21 21:30:06 +03:00
  • 630287f02f feat(autogen/queue): queue = черновики сегодня (планируется завтра) Aleksei Pavlov 2026-06-21 21:17:09 +03:00
  • f40bb27953 fix(autogen/status): показываем topic_count_free/total из blog_topics Aleksei Pavlov 2026-06-21 21:08:29 +03:00
  • 48e0bae495 fix(autogen/topics): endpoint читает из blog_topics БД вместо хардкода TOPIC_BANK Aleksei Pavlov 2026-06-21 21:00:08 +03:00
  • 45c3f2b562 fix(blog-topics): ai.chat returns object not string — extract .text before .replace Aleksei Pavlov 2026-06-21 20:57:28 +03:00
  • c920d3bcd5 fix(autogen): атомарный захват темы — исключает дубли статей Aleksei Pavlov 2026-06-21 16:47:49 +03:00
  • 214bf307c7 fix(draftAutoApprove): строго вчерашние черновики, LIMIT 4, не больше слотов Aleksei Pavlov 2026-06-21 16:42:37 +03:00
  • 799816f66a fix(drafts): авто-одобрение только вчерашних черновиков → слоты сегодняшнего дня Aleksei Pavlov 2026-06-21 16:36:47 +03:00
  • 749d717a94 feat(publish): синхрон сайт/ТГ + защита от залпа + заметки Зеро по механике черновиков Aleksei Pavlov 2026-06-20 11:07:10 +03:00
  • a09ee4a5fb refactor(tg): единый модуль tgSend для всех публикаций в Telegram Aleksei Pavlov 2026-06-20 10:43:50 +03:00
  • 325ebe7759 fix(zero): back to multipart photo upload (engine now has uploads volume) Aleksei Pavlov 2026-06-20 10:26:13 +03:00
  • bdff84e579 feat(articles): drip scheduling — distribute published_at across day slots Aleksei Pavlov 2026-06-19 13:01:36 +03:00
  • b02bdba4e6 fix(zero): URL-mode photo sending + static AVAILABLE_POSES (no fs check) Aleksei Pavlov 2026-06-19 12:17:53 +03:00
  • 7b115deaa1 feat(blog-topics): PATCH endpoint + soften requireAdmin + dynamic category name Aleksei Pavlov 2026-06-19 12:05:04 +03:00
  • 59e604a67b feat(categories): CRUD endpoints + is_active for archiving Aleksei Pavlov 2026-06-19 11:55:04 +03:00
  • 2f7af84ddc fix(zero): add missing 'settings' require in scheduler Aleksei Pavlov 2026-06-19 11:19:24 +03:00
  • 4ffadc6baa feat(zero): /config endpoints + dynamic scheduler hours Aleksei Pavlov 2026-06-19 11:16:58 +03:00
  • 29788a8f9d feat(zero): Zero notes — AI persona for @zeropostru daily posts Aleksei Pavlov 2026-06-19 10:52:22 +03:00
  • 5b5f703078 fix: avoid repeating last 3 rubrics in cover selection (no more similar covers) Nik (Claude) 2026-06-19 01:09:52 +03:00
  • eca072a172 fix: start autogen scheduler in index.js (was missing, drafts never generated) Nik (Claude) 2026-06-19 00:55:48 +03:00
  • 707047a7af fix: scheduleForArticle picks unique slots, no collisions Nik (Claude) 2026-06-18 12:25:09 +03:00
  • 08a2628824 feat: add Dockerfile for Coolify deployment (volumes support) Nik (Claude) 2026-06-18 12:12:32 +03:00
  • efe85632f5 fix: use .png instead of .webp for Telegram photo URL Nik (Claude) 2026-06-17 09:27:25 +03:00
  • c147c9e839 fix: start scheduledPostsRunner in index.js Nik (Claude) 2026-06-17 09:06:28 +03:00
  • dccb662298 fix: move approve-all before /:id routes to prevent NaN routing conflict Nik (Claude) 2026-06-16 23:11:14 +03:00
  • f9d1deae58 fix: initialize usedPath in covers.js to prevent ReferenceError Nik (Claude) 2026-06-16 22:58:28 +03:00
  • 0a842476d7 fix: reduce article maxTokens 4000→3000 to avoid 400 on aiprimetech Nik (Claude) 2026-06-16 22:08:44 +03:00
  • e5965e2804 feat: POST /api/articles/:id/regenerate-cover for any status Nik (Claude) 2026-06-16 22:02:34 +03:00
  • d9cbbc5fbf fix: button always shows DEFAULT_BUTTON_TEXT when field is null/empty Nik (Claude) 2026-06-16 21:14:57 +03:00
  • 5852b9f439 feat: draft review flow — autogen→draft, auto-approve 07:00 MSK, /api/drafts routes Nik (Claude) 2026-06-16 09:17:10 +03:00
  • cd471d67a9 add start script for Coolify nixpacks Nik (Claude) 2026-06-15 22:44:05 +03:00
  • bede92a520 feat: post image diversity — style rotation + random scene/concept + expanded AI concepts bank Alexey Pavlov 2026-06-15 10:20:22 +03:00
  • 525870c709 chore: add full schema dump as source of truth (32 tables) Nik (Claude) 2026-06-15 09:28:13 +03:00
  • 31b31b75b8 fix: post images diversity — SUBJECT+SETTING+LIGHTING prompt Ник (Claude) 2026-06-14 15:13:20 +03:00
  • c40ef90ad1 feat: SMTP, maintenance mode, blog topic bank UI Ник (Claude) 2026-06-13 11:45:23 +03:00
  • 9b40f2cd7a feat: content defaults — applied on channel creation Ник (Claude) 2026-06-13 11:22:08 +03:00
  • b5fa77ea01 feat: autogen blog admin API Ник (Claude) 2026-06-13 10:35:50 +03:00
  • 6e1cd24b4e feat: error logs API Ник (Claude) 2026-06-13 10:23:24 +03:00
  • 7994b0e73c feat: generation queue admin Ник (Claude) 2026-06-13 10:13:21 +03:00
  • ce74ac9909 feat: promo codes system Ник (Claude) 2026-06-13 09:36:32 +03:00
  • 2360e1f7ae fix: cover images — simplified coherent prompts, no style conflicts Ник (Claude) 2026-06-13 09:29:40 +03:00
  • 170c7b7b16 fix: cover image variety — concrete metaphors + articleId cycling Ник (Claude) 2026-06-13 09:26:36 +03:00
  • 05fa7644cc feat: user management — detail view, block/unblock, plan change Ник (Claude) 2026-06-13 00:14:11 +03:00
  • f18b83c59b feat: admin dashboard API + separate admin routes file Ник (Claude) 2026-06-13 00:09:53 +03:00
  • ad9f054701 feat: admin panel — plans editor + credit costs editor Ник (Claude) 2026-06-13 00:02:03 +03:00
  • 2b996820d7 fix: routerai cost_rub was 0 — o?.promptTokens → promptTokens in computeCostRub Ник (Claude) 2026-06-12 23:56:45 +03:00
  • a8ff295faa feat: post drafts system — batch generation + daily auto-drafts Ник (Claude) 2026-06-12 23:47:27 +03:00
  • 5a765d27e1 fix: cover image diversity — 12 styles + topic-aware visual metaphors Ник (Claude) 2026-06-12 22:55:25 +03:00
  • 7a70f79e61 fix: duplicate article prevention — source_topic deduplication Ник (Claude) 2026-06-12 11:49:33 +03:00
  • bbae6c8832 feat: topic bank + channel limit + onboarding Ник (Claude) 2026-06-11 23:04:45 +03:00
  • 10c138aa33 feat: P6 inbox — TG webhook + AI classify + reply Ник (Claude) 2026-06-11 20:12:19 +03:00
  • ee63172e08 feat: MAX publisher — platform-api.max.ru with image upload Ник (Claude) 2026-06-11 20:01:50 +03:00
  • 6e32241fe8 feat: P7 polls + P8 hashtags Ник (Claude) 2026-06-11 19:54:31 +03:00
  • 0a9d886435 fix: VK photo upload — 2-step getWallUploadServer + saveWallPhoto Ник (Claude) 2026-06-11 19:45:13 +03:00
  • 4580264de9 feat: yukassa reads keys from app_settings + monthly reset endpoint Ник (Claude) 2026-06-11 19:40:10 +03:00
  • 9baa0f0959 feat: YuKassa payment integration Ник (Claude) 2026-06-11 18:44:20 +03:00
  • 2e60a6e316 feat: billing system — credits, plans, transactions Ник (Claude) 2026-06-11 18:26:38 +03:00
  • eede50bee7 fix: ROUTERAI_API_KEY not loaded from app_settings Ник (Claude) 2026-06-11 16:36:56 +03:00
  • fe7af0b3b5 refactor: single image provider — routerai gpt-5-image-mini only Ник (Claude) 2026-06-11 15:44:33 +03:00
  • 08086650fc feat: customPrompt piped through full generation chain Ник (Claude) 2026-06-11 15:15:22 +03:00
  • 1ef770b5fc feat: custom prompt for articles + HD image quality per channel Ник (Claude) 2026-06-11 15:11:18 +03:00
  • e6c192e806 feat: image quality param — low for posts, medium for article covers Ник (Claude) 2026-06-11 14:48:10 +03:00
  • 06ab7e0c1d feat: routerai as primary image provider, Nyxos as fallback Ник (Claude) 2026-06-11 13:20:52 +03:00
  • 2a61cc08c2 feat: RouterAI as 3rd image fallback via /responses + image_generation Ник (Claude) 2026-06-11 13:13:31 +03:00
  • 8e1b6e8cda fix: reduce image provider timeout 120s→45s for faster fallback Ник (Claude) 2026-06-11 12:57:26 +03:00
  • c7f0b3ed4d fix: getChannel arg order, postImages via Nyxos /images/generations Ник (Claude) 2026-06-10 17:45:18 +03:00
  • 80d1885feb feat: multi-style support in covers.js and postImages.js Ник (Claude) 2026-06-10 15:50:49 +03:00
  • b4c537487d feat: vk_access_token в updateable fields Ник (Claude) 2026-06-10 15:22:45 +03:00
  • be2735ea5e feat: delay post if SVG cover, retry up to 3×15min Ник (Claude) 2026-06-10 13:32:47 +03:00
  • e79693c29a fix: check cover size before Telegram publish, regen SVG stubs Ник (Claude) 2026-06-10 13:07:15 +03:00
  • d1e6e2ef4a feat: Nyxos Plus as primary image provider, aiguoguo as fallback Ник (Claude) 2026-06-10 09:55:32 +03:00
  • bcb6583883 feat: upgrade to gpt-image-2, switch to response_format=url Ник (Claude) 2026-06-10 08:55:39 +03:00
  • d8a901131c feat: auto-retry SVG covers every 30 min Ник (Claude) 2026-06-10 08:53:39 +03:00
  • ad133027d0 fix: styleName undefined when rubrics used in generateCover Ник (Claude) 2026-06-09 11:39:57 +03:00
  • 5576665c02 feat: image rubrics with AI selection for cover variety Ник (Claude) 2026-06-09 11:36:19 +03:00
  • b2d20b9646 fix: retry aiguoguo /images/generations once on 5xx (12s delay) Ник (Claude) 2026-06-09 11:21:57 +03:00
  • 4ddc57c471 fix: wrong API key for aiprimetech image endpoints Ник (Claude) 2026-06-09 11:17:16 +03:00
  • 95578af261 feat: channel image style settings wired to cover/post generation Ник (Claude) 2026-06-09 10:48:38 +03:00
  • 449d1fa728 AI config migration to app_settings + ai_usage logging Ник (Claude) 2026-06-08 20:21:04 +03:00
  • 594cc01fe6 fix(calendar): broken SQL placeholder crashed /api/calendar; include system channels' scheduled_posts aleksei 2026-06-08 16:32:37 +03:00
  • 0c01ed7e62 fix: image generation via aiguoguo199.com /images/generations Nik (Claude) 2026-06-08 16:21:43 +03:00
  • 1df24a8655 fix: calendar shows only user's own channels, not system blog channel Nik (Claude) 2026-06-08 15:28:17 +03:00
  • 771f964370 feat: P4 metrics collector + /api/metrics; P5 from-url generator (cheerio) Nik (Claude) 2026-06-08 11:08:59 +03:00
  • 008323fa74 feat: /api/calendar endpoint (user_posts + scheduled_posts) Nik (Claude) 2026-06-08 10:16:49 +03:00
  • a370b8f7d8 feat: Зеро-персонаж, auto-publish, auto-series, channel-stats, fallback covers Nik (Claude) 2026-06-07 14:03:56 +03:00
  • 8968eed3e0 feat: rewrite article prompt for natural Russian, add editor pass (2-stage generation) Alexey Pavlov 2026-06-01 09:19:00 +03:00
  • d054023a55 feat: user_posts service — draft/scheduled/published, Telegram publish with image, cron-driven scheduled publication Alexey Pavlov 2026-05-31 17:36:01 +03:00
  • 2137a92b28 feat: transformPost (7 actions), post image generation with style/palette, topics ideas endpoint Alexey Pavlov 2026-05-31 17:32:38 +03:00
  • 53d596ca2e fix: move /admin and /id/:id routes before /:slug to avoid Express catch-all conflict Alexey Pavlov 2026-05-31 16:49:11 +03:00
  • 213dc104f5 feat: autogen run_hour/run_minute, publish_slots, scheduled_posts tables and routes Alexey Pavlov 2026-05-31 16:45:15 +03:00
  • c1d5337680 fix: jsonb tag filter operator ?? -> ? Alexey Pavlov 2026-05-31 16:38:48 +03:00
  • 3372574b32 feat: autogen service — content_queue, autogen_settings, TOPIC_BANK, cron API Alexey Pavlov 2026-05-31 14:48:38 +03:00
  • e5e7e9ef98 feat: categories table, API, category field in articles Alexey Pavlov 2026-05-31 14:43:27 +03:00
  • b48c1854a2 feat: admin channels API — system channels, publish to TG/VK/Max Alexey Pavlov 2026-05-31 14:37:48 +03:00
  • d17d8334a8 feat: GET /api/articles/admin — all articles with status for admin panel Alexey Pavlov 2026-05-31 14:32:48 +03:00
  • 004e94db77 feat: PATCH/DELETE /api/articles/:id, GET /api/articles/id/:id Alexey Pavlov 2026-05-31 14:17:59 +03:00