(low) scrape/all/page.tsx summary: плитки считают по top-30 и не покрывают статусы skipped/paused/queued — сумма плиток ≠ числу строк #1403

Closed
opened 2026-06-15 05:53:33 +00:00 by bot-backend · 0 comments
Collaborator

Severity: low · Категория: report · Файл: frontend/src/app/admin/scrape/all/page.tsx:98-108, 144-152

frontend/src/app/admin/scrape/all/page.tsx:98-108 (summary), 134-152 (плитки). summary инициализируется {running,done,failed,zombie} и заполняется forEach по runs.data, а runs ограничен ?limit=30 (стр.79) — то есть это распределение последних 30 строк, а не реальные тотал-каунты, хотя заголовок «🟦 в работе / успешно / ...» подаётся как сводка. Кроме того, в v_scrape_runs_unified (data/sql/78_drop_use_rosreestr2coord.sql:21-54) попадают статусы, которых нет среди 4 плиток: nspd skipped (63_schema_nspd_runs.sql:64), nspd_geo paused/queued (77_nspd_geo_jobs.sql:33). Такие прогоны инкрементят s['skipped'] и т.п., но ни одна плитка их не показывает, поэтому сумма 4 плиток может быть меньше числа строк в таблице. ВАЖНО: исходный кандидат ошибочно ссылается на cadastre-семейство (cancelled/paused из 92_cad_bulk_layers.sql) — таблица cadastre_jobs НЕ входит в v_scrape_runs_unified, этот источник статусов в дашборде не появляется. Импакт низкий (внутренний админ-дашборд). Чинить: либо добавить плитку «прочее»/динамические плитки по всем статусам, либо явно подписать, что это распределение в последних 30 строках.

Почему баг: summary инициализируется фиксированным {running,done,failed,zombie} и заполняется forEach по runs.data (только 30 строк, см. queryFn ?limit=30). Прогон со статусом skipped инкрементит s['skipped'], но ни одна плитка его не показывает; в то же время заголовок «Сводка по statusам» подразумевает полноту. Финдиректор/оператор видит, например, 5 плиток в сумме 18 при 30 строках в таблице и делает неверный вывод о состоянии скраперов.

Как чинить: Либо переименовать в «среди последних 30», либо брать сводку с отдельного агрегирующего эндпоинта без limit; добавить плитку «прочее»/«skipped» или динамически перечислять все встретившиеся статусы, чтобы сумма совпадала с числом строк.


deep-audit «армия ботов 2» · verify+harden, confidence 0.7 · unit U68

**Severity:** low · **Категория:** report · **Файл:** `frontend/src/app/admin/scrape/all/page.tsx:98-108, 144-152` frontend/src/app/admin/scrape/all/page.tsx:98-108 (summary), 134-152 (плитки). summary инициализируется {running,done,failed,zombie} и заполняется forEach по runs.data, а runs ограничен `?limit=30` (стр.79) — то есть это распределение последних 30 строк, а не реальные тотал-каунты, хотя заголовок «🟦 в работе / ✅ успешно / ...» подаётся как сводка. Кроме того, в v_scrape_runs_unified (data/sql/78_drop_use_rosreestr2coord.sql:21-54) попадают статусы, которых нет среди 4 плиток: nspd `skipped` (63_schema_nspd_runs.sql:64), nspd_geo `paused`/`queued` (77_nspd_geo_jobs.sql:33). Такие прогоны инкрементят s['skipped'] и т.п., но ни одна плитка их не показывает, поэтому сумма 4 плиток может быть меньше числа строк в таблице. ВАЖНО: исходный кандидат ошибочно ссылается на cadastre-семейство (cancelled/paused из 92_cad_bulk_layers.sql) — таблица cadastre_jobs НЕ входит в v_scrape_runs_unified, этот источник статусов в дашборде не появляется. Импакт низкий (внутренний админ-дашборд). Чинить: либо добавить плитку «прочее»/динамические плитки по всем статусам, либо явно подписать, что это распределение в последних 30 строках. **Почему баг:** summary инициализируется фиксированным {running,done,failed,zombie} и заполняется forEach по runs.data (только 30 строк, см. queryFn `?limit=30`). Прогон со статусом skipped инкрементит s['skipped'], но ни одна плитка его не показывает; в то же время заголовок «Сводка по statusам» подразумевает полноту. Финдиректор/оператор видит, например, 5 плиток в сумме 18 при 30 строках в таблице и делает неверный вывод о состоянии скраперов. **Как чинить:** Либо переименовать в «среди последних 30», либо брать сводку с отдельного агрегирующего эндпоинта без limit; добавить плитку «прочее»/«skipped» или динамически перечислять все встретившиеся статусы, чтобы сумма совпадала с числом строк. --- <sub>deep-audit «армия ботов 2» · verify+harden, confidence 0.7 · unit U68</sub>
bot-backend added the
week ревью 1
label 2026-06-15 05:53:33 +00:00
bot-backend added the
scope/frontend
label 2026-06-15 11:01:59 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: lekss361/gendesign#1403
No description provided.