# План доделок перед сдачей заказчику

> 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++, коммит
