perf(tasks): лимиты/пагинация /api/tasks и дельта-синк в SQL
Шаги 0.10 и 0.9 плана production-готовности: - дефолт limit 50, кап 200; списковые ответы без description - курсорная пагинация (updated_at, id) + nextCursor - since-фильтр дельта-синка перенесён в SQL (updated_at >= since) - embedding pre-count через COUNT(*) вместо выгрузки миллиона строк - 11 новых юнит-тестов (56/56 зелёные) Инвариант поиска сохранён: search-ветка /api/tasks?search= не изменена
This commit is contained in:
@@ -652,16 +652,10 @@ export async function reindexOrganization(
|
||||
let totalAttempted = 0;
|
||||
let totalFailed = 0;
|
||||
|
||||
// ── 1. Pre-count: fetch minimal task list to know total for progress ─────────
|
||||
// ── 1. Pre-count: точный COUNT(*) без выгрузки строк (список теперь капнут на 200) ──
|
||||
let taskCount = 0;
|
||||
if (entityTypes.includes("task") || entityTypes.includes("task_message")) {
|
||||
const minimalTasks = await stor.getTasksByOrganization(organizationId, {
|
||||
sortBy: "createdAt",
|
||||
order: "asc",
|
||||
minimal: true,
|
||||
limit: 1_000_000,
|
||||
});
|
||||
taskCount = minimalTasks.length;
|
||||
taskCount = await stor.getTasksCountByOrganization(organizationId);
|
||||
}
|
||||
|
||||
const formCount = entityTypes.includes("form")
|
||||
|
||||
Reference in New Issue
Block a user