Re-point the zone journal anchor onto the re-cut comment the formats pack moved

This commit is contained in:
heaven 2026-09-06 01:53:36 +03:00
parent 2812dd67fa
commit 98d2d4ad18

View file

@ -143,6 +143,32 @@
«ожидаемо $0.00, зарезервируем $2.07»; арифметика холда не была ограничена сверху и на абсурдной
проекции переполняла int64 в правдоподобное МАЛОЕ число.
### ⛔ ЧЕТВЁРТЫЙ ЗАХОД — ПРОВЕРКА СОБСТВЕННЫХ УТВЕРЖДЕНИЙ ОТЧЁТА, а не кода
Заход сделан по прямому вопросу владельца «нет ли чего, что ты умолчала или поленилась допроверить».
Проверялись не находки ревьюеров, а МОИ СОБСТВЕННЫЕ фразы в этом отчёте — те, где стоит утверждение,
но не стоит команда.
1. ⛔ **Объяснение чистого `sqlc diff` было ДОГАДКОЙ и оказалось неверным** — см. секцию «Батарея».
Вывод («пере-генерация не нужна») верен, причина — нет, и ложная причина скрывала живой риск.
2. ⛔ **`Down`-путь миграции НЕ был пере-проверен** после двух последних правок схемы (колонки
юнитовой полосы добавлены, колонки цены главы сняты). Пере-снято на отдельной базе: `up` даёт 4/4
новых колонки `runs` и 0 колонок цены у `chapters`, `down` и повторный `up` чисты.
3. ⛔ **`source_chars` писался ТОЛЬКО когда книга оценена** — то есть манифест, честно назвавший
текст и споткнувшийся на ДЕНЕЖНОМ ключе, лишал экран честного числа знаков, и «Знаков» падало
обратно на приближение интейка (для EPUB — руны ZIP-архива). Два независимых факта были связаны
одним условием. Развязано; пин `TestTheCharacterCountSurvivesAPriceThisBuildCouldNotRead`.
⚠ Комментарий миграции при этом обещал «null пока манифест не прочитан» — то есть код и
комментарий расходились, и заметил это не гейт.
4. ⛔ **Починка «доставка ЗА границей заказа не гасит работу внутри неё» была без пина** — я объявила
её сделанной, имея только код. Заведён `TestDeliveryBeyondTheOrderDoesNotCancelWorkOwedInsideIt`.
5. ⛔ **Таблица named-артефакта несла ВОСЕМЬ строк, а посадок девять** — девятая была описана прозой
в соседней секции. Читающий артефакт по его собственной таблице видел восемь. Строка добавлена.
**Что этот заход говорит о предыдущих:** четыре из пяти — не дефекты кода, а дефекты МОИХ
УТВЕРЖДЕНИЙ О КОДЕ, и ни один гейт их поймать не мог по построению. Это тот же класс, который
`D39.202` п.9 называет главным: сторожат поведение и форму, а не то, что код и отчёт о себе ГОВОРЯТ.
### ⛔ ТРЕТИЙ КРУГ — ДВЕ ЛИНЗЫ ПРИЁМКИ ОРКЕСТРАТОРА, и они нашли ЦЕНТРАЛЬНОЕ
**Пак научился читать у движка цену, но не научился считать в его ЕДИНИЦАХ.** Заказ, холд и
@ -265,6 +291,12 @@ NULLABLE денежных колонок (сегодня не задета: ру
| 6 | `internal/pgstore/runs.go:1505` · перезапущенный прогон респавнится без заказа | `TestTheVolumeAllowanceIsWhatIsLeftOfTheOrderAtEverySpawn` |
| 7 | `internal/runs/spawn.go:329` · неразрешимый заказ спавнится как «вся книга» | `TestAnOrderThatNoLongerNamesABoundaryRefusesToSpawn` |
| 8 | `internal/runs/runs.go:373` · неоценённая книга продаётся вместо отказа | `TestAnUnpricedBookIsRefusedRatherThanSoldAtAGuess` |
| 9 | `internal/runs/spawn.go` · ЕДИНИЦА ИЗМЕРЕНИЯ: `o.Units - o.Delivered``l.OrderedChapters - o.Delivered` | `TestTheVolumeAllowanceCountsUnitsAndNotChapters` |
**Посадка №9 добавлена ПОСЛЕ приёмки и только вместе с фикстурой `multiUnitBook`:** до неё во всей
зоне не было главы больше чем из одного юнита, поэтому подмена единицы измерения проходила батарею
зелёной, и восемь посадок эту ось не щупали вовсе. Порядок был именно такой — сначала фикстура, потом
посадка, потом лечение.
⚠ Посадка №1 красит 34 теста — широко, потому что тестовый хелпер `fixtureHold` считает холд
НЕЗАВИСИМО от продакшн-кода, и расхождение видно всюду, где утверждается сумма. Это обнаружение, а не
@ -430,8 +462,14 @@ blocked: Blocked | null
make check → MAKE-EXIT=2
golangci-lint 2.12.2: 0 issues · gofmt чист · go vet чист
sqlc diff чист (миграция 00033 пере-генерации не потребовала: новые колонки в
таблицах, для которых sqlc не держит запросов)
sqlc diff чист. ⚠ ИСПР.: первая редакция объясняла это тем, что новые колонки лежат
«в таблицах, для которых sqlc не держит запросов» — ЭТО НЕВЕРНО и было догадкой, а
не проверкой: `queries/credits.sql` и `queries/exports.sql` читают `books`,
`chapters` и `runs`. Верная причина: НИ ОДИН из этих запросов не выбирает `*` и не
называет новых колонок, поэтому сгенерированный код не двигается (проверено грепом
по `*.sql.go` — вхождений нуль). ⚠ И следствие, которое ложная причина скрывала:
`books` ЛЕЖИТ в мире sqlc, значит риск с NULLABLE денежными колонками (находка
ревью) — не теоретический, а отложенный до первого запроса, который их выберет.
19 пакетов ok
go test ./... -RACE -count=1 -v: RUN 845 · PASS 839 · SKIP 5 · FAIL 1
(пере-снято ПОСЛЕ дофикса по двум линзам приёмки — числа выше него недействительны)
@ -4165,7 +4203,7 @@ mutation-catch (спутать пары «числитель×база»); ко
**⛔ ПИНГ ОРКЕСТРАТОРА №19 — 23.08, ЗОНЕ ПЛАТФОРМЫ.** ⚠ Его собственная шапка звала находки «тремя», а нумеровала ЧЕТЫРЕ — считать по нумерации. Живых из четырёх ДВЕ: находка 1 ниже дословно, находка 4 — строкой регистра. Две закрыты паком P9 и проверяются грепом, а не памятью: блокер провайдерских ключей (строка **211** единого бэклога) — ключи едут аргументом `--keys-file`, греп `TM_PLATFORM_ENGINE_KEYS_PATH`; дубль движковой конвенции пути (строка **213**) — `runner.projectDB` снесён, путь берётся из `artifacts.bank_export` манифеста. Находка 4 (мёртвое поле `ingest.StatusReport.UnsignedBankTerms`) жива и несёт свой якорь строкой `PD-396` (греп `UnsignedBankTerms` в регистре и в `platform/internal/ingest/resync.go`).
1. **Пере-нарезка книги сносит ВСЕ решения юнитов и пересчитывает прогресс из пустоты.**
`internal/pgstore/readmodel.go:144`=`a re-cut drops the resolutions of the previous cut`
`internal/pgstore/readmodel.go:153`=`a re-cut drops the resolutions of the previous cut`
это не догадка, там собственный комментарий кода. Строку в ваш регистр я не заводил: решать вам,
намеренная это семантика пере-разреза или дефект, и что делать со счётчиками, которые после
этого показывают ноль сделанного на книге, где работа была.