ROADMAP: свіжий перелік відкритого замість застарілого від 25 серпня
All checks were successful
CI / hygiene (push) Successful in 9s
CI / web (push) Successful in 1m7s
CI / server (push) Successful in 1m27s
CI / agent (push) Successful in 59s

Старий розділ лишено як опис причин, але половина його вже неправда:
CI-раннер стоїть, build.py --check у конвеєрі, тести вебу виросли до
340, приймач кнопок Telegram працює. Новий розділ — те, що відкрите
сьогодні, у порядку ціни помилки.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
byrsapty 2026-08-28 23:23:06 +03:00
parent 9f901f8b8e
commit 6d1786e111

View file

@ -499,6 +499,63 @@ CI-раннер ми запустили 2026-08-27. Бракує лише тог
Дашборди з NOC TV-режимом зроблено 2026-08-25. Що лишається — нижче, Дашборди з NOC TV-режимом зроблено 2026-08-25. Що лишається — нижче,
окремим переліком із причинами. окремим переліком із причинами.
## Що лишається — стан на 2026-08-28
Перелік нижче (розділ «Чого немає») складено 2026-08-25 і частина його
вже неправдива. Тут — те, що справді відкрите СЬОГОДНІ, у порядку ціни
помилки. Нижчий розділ лишено як довший опис причин.
### Перше: до першого тегу (Етап 13)
Це єдина річ, яка блокує продаж, і вона не про код.
1. **Оновлення з версії на версію не перевіряв ніхто.** Пісочниця
перевіряє установку з нуля. Шлях «стояла 0.1 — стала 0.2» ламається
частіше, а перевіряє його зараз перший клієнт.
2. **Немає версіонування.** Образ завжди `v0.1.0`, реєстру немає, тега
немає. Поки цього немає, «оновитись» означає «залити дерево й
зібрати», тобто те, що роблю я вручну.
3. **Сумісність зонда й сервера ніде не записана.** Зонди стоять у
чужих мережах і оновлюються не разом із сервером.
### Друге: перевірки, які є, але не бігають самі
4. **`scripts/dbtest.sh` не в CI.** Раннер уже стоїть (контейнер
`netpulse-ci-runner`), `check.sh` у конвеєрі є, `build.py --check`
теж. Бракує саме тестів проти бази — тобто тих, що 28 серпня знайшли
чотири справжні вади за один прогін. Зараз їх запускаю руками я.
5. **Токен у `origin` замість ключа розгортання.**
### Третє: діри, названі рецензіями й не закриті
6. **`LoadChannels` падає цілком через один нерозшифровний секрет** —
кабінет лишається без ескалацій до стелі життя драбини.
7. **Перетягування вузла на мапі не покрите тестом і не буде** (d3-drag
не запускається синтетичними подіями). Наслідок відомий: вузол стає
на місце, запит не йде, тести зелені.
8. **SNMPv3-трапи не перевіряються** — розбираються й зберігаються,
підпис і шифрування не звіряються.
9. **Тригери шаблонів не можуть отримати драбину ескалації.**
10. **`plural()` повертає число разом із рядком**, а частина викликів
додає його ще раз: «5 5 хостів».
### Четверте: ніколи не працювало на живому залізі
11. **Відкат конфігурації** — код є, на справжньому обладнанні не
виконувався жодного разу.
12. **Джерело тригера `trap`** — свідомо не зроблено без словника MIB.
13. **Прототипи шаблонів** (0059) увімкнені, але `snmp.if` через них не
виражається.
### П'яте: велике й відоме
14. **Білінг** — схема з 0009 і 0069 є, продавати без нього не можна.
15. **Web Push**, **збережені подання**, **прокрутка дашбордів на TV**,
**підкладки-плани приміщень**, **мобільний режим мапи**.
16. **Справжній TLS** — потрібен домен; на IP Let's Encrypt не видає.
---
## Чого немає: повний перелік ## Чого немає: повний перелік
Стан на 2026-08-25, після розгортання на бойовому сервері. Перелік Стан на 2026-08-25, після розгортання на бойовому сервері. Перелік