Phase 3 наполнила gisogd_permits.geom -> заменяем 5-летний TODO-прокси
quarter-prefix точным ST_DWithin(500м) как НОВЫЙ ключ payload
permits_nearby. Старый ekburg quarter-prefix путь
(recent_permits_in_quarter/permits_summary) не тронут — работает
параллельно.
Честность счётчиков: total_count/rs_count/rv_count считаются по ПОЛНОЙ
выборке радиуса (без LIMIT в SQL), items капается срезом в Python (30),
items_truncated сигнализирует капнутый список — без тихих капов.
Аддитивно, non-fatal (сбой -> честный ноль), + блок в §6 PDF-отчёта
(html.escape на все строки), + AnalyzeResponse schema + regen api-types.ts.