store: при равной полноте точек побеждает пришедшая доставка

- байтовый порядок канонических форм остался тай-брейком только внутри одной
  доставки: на живом корпусе он решал 98,8% спорных координат и системно хранил
  меньшее значение, из-за чего step_count терял род и verify:archive был красным
- правило перестало быть коммутативным осознанно, поэтому порядок свёртки
  приведён к журнальному: проход воркера прекращается на отложенной доставке,
  а свёртка вне порядка журнала пишет WARN
- заведены счётчики PointsHeld и PointsErased — удержание полнотой и
  единственное направление, в котором правило теряет содержание
This commit is contained in:
av
2026-08-04 11:16:24 +03:00
parent ae607f1ceb
commit b278501a6e
44 changed files with 3780 additions and 172 deletions
+12
View File
@@ -82,6 +82,18 @@ func TestReplayЖивогоАрхива(t *testing.T) {
t.Logf("тел %d: свёрнуто %d; отказов: слой %d, содержимое %d, прочее %d; несравнимых наборов %d",
first.Bodies, first.Folded, first.FailedLayer, first.FailedMalformed,
first.FailedOther, first.Incomparable)
// Удержания печатаются, а не утверждаются: число производно от размера
// корпуса, а прогон живого архива в гейт не входит — константа покраснела бы
// молча (docs/review.md, 2026-08-02). Утверждается инвариант: удержание
// возможно только там, где сохранённая точка строго полнее, то есть их не
// может быть больше, чем столкновений вообще.
t.Logf("удержано точек правилом полноты %d, содержание унесено пришедшей %d",
first.PointsHeld, first.PointsErased)
// Посылка равенства «пересборка = приём» называется рядом с ним: отказавшие
// доставки живой путь в витрину не записал, а пересборка запишет, и
// расхождение отпечатков было бы отказом не правила, а посылки.
t.Logf("посылка сходимости: отказавших доставок %d",
first.FailedLayer+first.FailedMalformed+first.FailedOther)
t.Logf("частично разобрано %d, подобрано без учёта %d, записей без тела %d",
first.Partial, first.Adopted, first.Orphans)