# Экран «Префиксы»: без молчаливого усечения (изменение 028) Находка № 3 из `docs/reviews/2026-09-26-codebase-review-2.md`, серьёзность — низкая. ## Context `screens.prefixes` и `screens.address` (`web/app.js`) запрашивают `/prefixes?organization_id=…&limit=1000` одной страницей. Заголовок («N префиксов»), вкладка «Все» и подвал показывают `all.length` (число загруженных), а не `total`. Родительский список в «Новом префиксе», хлебные крошки экрана адресов и размер по умолчанию в «Добавить вложенный (авто)» строятся по усечённому набору. Организация, в которой `/22` разбит на `/30`, быстро превышает 1 000 префиксов. ## Решение (`web/app.js`, только UI) 1. Функция `loadPrefixes(orgId)`: загружает все страницы `/prefixes` (`limit=1000`, `offset += 1000`) до `total`, но не больше `PREFIX_UI_CAP = 20000` префиксов; возвращает `{ items, total }`. Страницы запрашиваются последовательно (порядок `ORDER BY vrf_id, prefix` стабилен). 2. `screens.prefixes` и `screens.address` используют `loadPrefixes` вместо одиночного запроса. 3. Заголовок, вкладка «Все» и подвал используют `total`. Если `items.length < total` (сработал `PREFIX_UI_CAP`), над таблицей — информационная строка «Загружено X из N префиксов — уточните поиск или выберите VRF» (стиль `.info`). 4. Бэкенд не меняется. 5. `README.md`, раздел «Поведение таблиц UI»: одна фраза о загрузке всех страниц и пределе 20 000. ## Файлы `web/app.js`, `README.md`. ## Проверка `node --check web/app.js`; на стенде временная организация с 1 100 префиксами (`/30` через `POST …/subnets/next`) — в UI заголовок «1 101 префикс», все строки доступны. Данные после проверки удалить.