feat: чанкинг batch-create >100 задач + журнал ошибок API

B: BatchCreateDialog режет список на чанки ≤100 (лимит сервера), каждый
чанк со своим idempotency-key (requestId-N) — повтор после ошибки не
создаёт дублей; 10-минутный лок армируется только при полном успехе,
а не до запроса (раньше блокировал даже после 400).

D: таблица error_logs (миграция 0066), захват ответов >=400 в request
middleware (без 401/health/events, дедуп 60с), admin API GET/DELETE
/api/error-logs и вкладка «Журнал ошибок» в Настройках.
This commit is contained in:
2026-08-03 14:55:29 +03:00
parent 1bb6a53226
commit 1d5321ed0c
8 changed files with 406 additions and 21 deletions

View File

@@ -20,6 +20,7 @@ import taskInboxHiddenRouter from "./task-inbox-hidden.routes";
import taskBulkRouter from "./task-bulk.routes";
import ragRouter from "./rag.routes";
import llmProvidersRouter from "./llm-providers.routes";
import errorLogsRouter from "./error-logs.routes";
import { registerBotRoutes } from "./bots.routes";
import { registerExternalRoutes } from "./external.routes";
import { registerBotApiRoutes } from "./bot-api.routes";
@@ -96,6 +97,7 @@ export async function registerRoutes(app: Express): Promise<Server> {
app.use(taskInboxHiddenRouter);
app.use(ragRouter);
app.use(llmProvidersRouter);
app.use(errorLogsRouter);
// Domain route registrations
registerBotRoutes(app);