No description
Find a file
byrsapty 954be1d643
All checks were successful
CI / hygiene (push) Successful in 9s
CI / web (push) Successful in 1m15s
CI / server (push) Successful in 1m34s
CI / agent (push) Successful in 2m59s
Ескалації: закриваю те, що минулого разу закрив наполовину
За другою рецензією:

* scripts/dbtest.sh писав у шапці «не напрямляйте на робочу базу» й
  нічого для цього не робив — перевірено, пішов котити міграції на базу
  з бойовим іменем. Тепер вимагає probe/test в імені.
* sendText ковтав помилку, тож журнал ескалацій писав «надіслано» на
  сходинці, жодне повідомлення якої не дійшло. Три результати замість
  двох: no_channels, failed, sent.
* stopped_at IS NULL рятував лише від ack; гасіння правилом і
  ResolveMissing рядка драбини не чіпають, і сходинка дзвонила за
  погашеним алертом. Додано перевірку стану алерту в тому ж UPDATE.
* escalate() блокував весь тік движка — мертвий вебхук одного кабінету
  зупиняв обчислення правил усім. Винесено в RunEscalations.
* алерт, народжений під заглушенням, не сповіщався ніколи: ні при
  народженні, ні коли вікно скінчилось. Тепер перехід suppressed→firing
  сповіщається, а драбина рахує час від першого сповіщення.
* alr.rules.channel_ids приймав чужі канали, глушачи і сповіщення, і
  драбину. Перевірка як для сходинок; DeleteChannel чистить посилання.

І перше, що зловив прогін проти справжньої бази: nil-зріз каналів їде
явним NULL повз DEFAULT '{}' — правило без каналів давало 500.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-28 17:44:38 +03:00
.claude Стеля журналів, терплячіша самоперевірка, Етап 13 у плані 2026-08-27 21:52:27 +03:00
.forgejo/workflows Дві сесії роботи: 0058–0068, розгортання однією командою, тести 2026-08-27 17:32:49 +03:00
agent Трапи: приймач каже про готовність тоді, коли справді готовий 2026-08-27 18:11:23 +03:00
db Дві сесії роботи: 0058–0068, розгортання однією командою, тести 2026-08-27 17:32:49 +03:00
deploy Журнали файлами, тонший штрих мінікарти 2026-08-27 22:55:29 +03:00
gen/go Дві сесії роботи: 0058–0068, розгортання однією командою, тести 2026-08-27 17:32:49 +03:00
proto Дві сесії роботи: 0058–0068, розгортання однією командою, тести 2026-08-27 17:32:49 +03:00
scripts Ескалації: закриваю те, що минулого разу закрив наполовину 2026-08-28 17:44:38 +03:00
server Ескалації: закриваю те, що минулого разу закрив наполовину 2026-08-28 17:44:38 +03:00
test/contract Етап 2: сервер сам заводить snmp.if-чеки з виявлених інтерфейсів 2026-08-14 15:10:02 +03:00
web Ескалації: журнал більше не бреше, ack не воскрешає драбину 2026-08-28 17:20:18 +03:00
.gitattributes Нормалізувати кінці рядків: у репозиторії LF 2026-08-14 03:28:56 +03:00
.gitignore Дві сесії роботи: 0058–0068, розгортання однією командою, тести 2026-08-27 17:32:49 +03:00
buf.gen.yaml Етап 1-2: схема БД та protobuf-контракт агент-сервер 2026-08-14 03:28:40 +03:00
buf.yaml Етап 1-2: схема БД та protobuf-контракт агент-сервер 2026-08-14 03:28:40 +03:00
docker-compose.yml Стеля журналів, терплячіша самоперевірка, Етап 13 у плані 2026-08-27 21:52:27 +03:00
HISTORY.md Ескалації: закриваю те, що минулого разу закрив наполовину 2026-08-28 17:44:38 +03:00
netpulse Стеля журналів, терплячіша самоперевірка, Етап 13 у плані 2026-08-27 21:52:27 +03:00
netpulse.conf.example Білінг, SLA, вбудовані правила, пісочниця установника, тести сторінок 2026-08-27 21:17:23 +03:00
ROADMAP.md Стеля журналів, терплячіша самоперевірка, Етап 13 у плані 2026-08-27 21:52:27 +03:00