# План доделок перед сдачей заказчику > 2026-06-02 ## 1. §4.7 — Агрегация CIDR в публичном /export **Проблема:** публичный `/export` отдаёт сырой список, без агрегации. ТЗ: «подсети суммаризируются (агрегируются в минимальный набор CIDR)». **Решение:** добавить `aggregateCIDRs()` в обработчик `server.js`. **Файлы:** `server.js` — одна строка. --- ## 2. §4.1 — Фильтр «показать удалённые» для admin **Проблема:** админ не может посмотреть soft-deleted записи. **Решение:** - API: поддержать `?includeDeleted=true` в `GET /api/v1/entries` - UI: добавить чек-бокс «показать удалённые» на странице admin **Файлы:** `src/api/routes/entries.js`, `views/index.ejs`. --- ## 3. §5 — Клиентская JS-валидация **Проблема:** только HTML5 `pattern`, нет проверки приватных диапазонов и нормализации на клиенте. **Решение:** добавить JS-функцию `validateClientIP()` в EJS-шаблон: - Проверка приватных/запрещённых диапазонов (показывать ошибку сразу) - Предпросмотр нормализации («будет сохранено как X.X.X.0/24») **Файлы:** `views/index.ejs`. --- ## 4. §5 — Уведомление о нормализации в UI **Проблема:** API возвращает `wasNormalized`, но UI может не показывать. **Решение:** проверить `ui/routes/entries.js` — передаёт ли `wasNormalized` в шаблон. Если нет — добавить. В шаблоне показать жёлтый alert. **Файлы:** `ui/routes/entries.js`, `views/index.ejs`. --- ## Порядок: 1. §4.7 — самая простая, одна строка 2. §5 — уведомление о нормализации 3. §5 — клиентская валидация 4. §4.1 — фильтр удалённых (самая объёмная) 5. Везде: тесты, VERSION++, коммит