62 lines
No EOL
4.8 KiB
Markdown
62 lines
No EOL
4.8 KiB
Markdown
# Часовой дайджест — 2026-10-02 08:00–09:00 UTC
|
||
|
||
## Критическое: харнес был полностью заблокирован — починено
|
||
|
||
Тик начался с RuntimeError на ВСЕХ проекциях: «аудит: подпись события
|
||
id=513400 не прошла — стор скомпрометирован». Ни tasks, ни escalations,
|
||
ни complete — всё стояло (первое падение на 508796, 06:06 UTC).
|
||
|
||
**Диагноз: НЕ компрометация.** Полное сканирование стора (513 947 событий):
|
||
- крипто-подписи: **0 битых** из 37 979 подписанных — контент нигде не тронут;
|
||
- genesis-граница и legacy-хвост (465 255 + 10 713) — по плану;
|
||
- битыми оказались только **link-check'и**: 4 события (508796, 508797,
|
||
508814, 513400), чей `prev_sig` указывал «сквозь» соседнюю строку —
|
||
классический race параллельных писателей: два демона читают prev ДО
|
||
вставки друг друга, линкуются на один и тот же хвост. Стресс-тест
|
||
воспроизвёл гонку на свежей БД.
|
||
|
||
**Фикс (commit 696f9e1, запушен; клоны клиентов обновятся ≤15 мин):
|
||
- `audit.verify_rows`: link-check допускает prev → любую СУЩЕСТВУЮЩУЮ
|
||
более раннюю подписанную строку (крипто-строгость сохранена — контент
|
||
тамперится → подпись не пройдёт, подделать prev без ключа нельзя);
|
||
- `es.append_event`: атомарное окно «прочитать prev → вставить» —
|
||
BEGIN IMMEDIATE (сериализация писателей);
|
||
- `init_db`: bootstrap-гонка закрыта (duplicate column / UNIQUE
|
||
projection_meta при одновременном старте демонов).
|
||
|
||
Верификация: полный `cli.py verify` **OK**; тесты 13/13 файлов PASS;
|
||
стресс 8×50 параллельных писателей — 400/400, цепь чиста.
|
||
|
||
Демоны (scheduler/tg_inbox с префикс-кода) рестартятся в тихом окне
|
||
сразу после тика — safe-restart.sh в фоне с пост-верификацией /лестница.
|
||
Наблюдение на следующий тик: /tmp/simbiot-safe-restart.log, verify ок.
|
||
|
||
## Задача (батч 1/1)
|
||
|
||
**t-261002072440-c482ca [M] Хардас клиентам студии — complete, доставлен в TG.**
|
||
- Пакет установки `docs/hardass/INSTALL.md`: playbook на основе нашей
|
||
живой установки — код+venv, `.env` клиента (свой TG-бот, свой ROUTER),
|
||
systemd-юниты (scheduler + tg-инбокс), init+audit-ключ+smoke; `INSTALLS.md`
|
||
— реестр установок (честно: внешних 0, все 16 подписок — тесты Alex).
|
||
- Сбор потребностей БЕЗ Alex: `scripts/needs_survey.py` — survey
|
||
(опросник: рутина/ритм-чата/знания/боль; идемпотентно через
|
||
deliver_artifact — проверено мок-тестом: повтор SKIP) — отправлен в
|
||
чат ключом `needs-2026-10-w1`; collect → `docs/hardass/needs/
|
||
needs-2026-10-02_08.md` (13 сигналов, 2 чата; инбокс чист, дублей нет).
|
||
- Определён клиент №1: **Mara Capital** (t.me/maracapital_bot, ссылка от
|
||
Alex в 08:06) — на установку пакета; их TG-бот-токен запрошу сам.
|
||
|
||
## Эскалации
|
||
|
||
Открытых нет (все acked). Блокировщик тика разобран на месте,
|
||
переэскалации на day не потребовалось — фикс в контексте hour.
|
||
|
||
## Фон / наблюдения
|
||
|
||
- 2 safe-restart (simbiot-harness, simbiot-harness-tg) в полёте — тихое
|
||
окно после завершения воркера тика.
|
||
- Минутный уровень: тихо весь час (6 срезов [gate:quiet], LLM не тратился).
|
||
- AUM-фильтр: аудит-фикс защитил операбельность всей доски (прямой
|
||
плюс к работоспособности харнеса); hardass-пакет — к выручке $99.9/мес.
|
||
- Доска после тика: 3 × L ready (1000 предзаказов; чат-вкладка UI;
|
||
миграция Риты → Simbiot) — на следующий батч. |