первая встреча непокрытой секции стала наблюдаемым событием

- свёртка спрашивает журнал, встречалось ли имя строго раньше по паре
  (received_at, id), и пишет WARN с атрибутом uncovered_new; повторные молчат.
  Признак выводится, а не хранится — реестр был бы второй копией факта
- добавлена подкоманда `healthlog uncovered`: перечень накопленного, чтение
  только на чтение, экранированные имена и названные границы носителя
- синк документации: ADR о выводе новизны из журнала, две записи в журнал
  дефектов, два правила промоутом в конвенции, терминал оператора назван
  адресатом недоверенного входа
This commit is contained in:
av
2026-08-04 13:39:48 +03:00
parent 2130763d3c
commit bd5d17b079
27 changed files with 3125 additions and 9 deletions
+3 -1
View File
@@ -60,7 +60,8 @@ iPhone ──HTTPS POST──► healthlog ──► журнал доставо
— с выводом слоя из данных, канонизацией содержимого и слиянием точек по
полноте. Тренировки и записи со своим `id` (`workouts`, `stateOfMind`) тоже
разбираются; секции, которых разбор не покрывает, принимаются, хранятся и
честно помечаются как неразобранные.
честно помечаются как неразобранные — а имя, которого поток раньше не приносил,
даёт `WARN` в логе свёртки один раз и попадает в перечень `healthlog uncovered`.
Есть и пересборка: `healthlog reindex` проигрывает журнал доставок в свежую
витрину и сверяет её отпечаток с накопленной — на живом архиве из 116 тел
@@ -83,6 +84,7 @@ iPhone ──HTTPS POST──► healthlog ──► журнал доставо
healthlog serve приём + read API + MCP
healthlog import родной экспорт Apple Health (в планах)
healthlog reindex пересборка витрины из журнала
healthlog uncovered перечень секций, которых разбор не покрыл
healthlog healthcheck проверка живости для docker HEALTHCHECK
```