Anchor the Д3 pointer by grep instead of a line number: the zone journal moves under its own live session

This commit is contained in:
heaven 2026-08-30 23:13:33 +03:00
parent 30d243f5b5
commit 40dfe851f4

View file

@ -198,7 +198,7 @@
| 237 | **Два загейченных триггера НАЖАТЫ и не отработаны** (реестр `13-tech-debt-anchors.md` §Б-108, сверено 30.08). **(а) `go.work`:** условие «появление Go-кода платформы» выполнено давно — `platform/go.mod` есть, `ls go.work` в корне даёт «No such file or directory». Ратифицировано D39.85 §8 п.4 (`docs/research/23-engine-platform-seam.md:66` = `go.work — коммитить, когда у платформы появится Go-код`); цена — один файл, по тому же §6 он решает только dev-удобство и не меняет ни видимости, ни версий. **(б) вендор-сверка маппинга эффорта `deepseek-v4-pro`:** вахта D39.92 сработала 13.08 changelog'ом вендора, а носители до сих пор ПРОТИВОРЕЧАТ (квирк-канон и `STACK.md` говорят «ручки у pro НЕТ»), и по гардрейлу владельца это закрывается ТОЛЬКО вендор-докой, а не выбором стороны. Держит жильца Д5 и калибровку цены редакторского арма. ⚠ **Класс важнее двух пунктов: спроектированный механизм без носителя события тихо становится долгом, и никто не проверяет, не нажат ли спусковой крючок.** | оркестратор | скоро | (а) один файл в корень; (б) заказ полигону на вендор-сверку | аудит очереди 30.08 |
| 238 | **Деньги слепы к правке исходника НА МЕСТЕ при том же снапшоте.** `projectRebill` сверяет content-hash строки только в bank-only ветке со сдвинутым снапшотом; при том же снапшоте строка идёт как «$0 resume» без сверки — `translate` на такой книге перекупает юниты БЕЗ предупреждения в смете (воспроизведено финальным ревью пака: «2 units re-bought»). Экспорт эту правку теперь ВИДИТ (состояние stale, D39.175), денежная проекция `status` — нет | бэкенд | скоро | адресный фикс + посадка-тест | финальное ревью пака «писатель книги», D39.175 п.5 |
| 239 | **`Status.checkWave` не видит исчезнувшую из конфига стадию** — то же слепое пятно, что закрыто у `Export` паком (строка со стадией вне текущего конфига = drift, `exportConfigDrift`): статус книги с удалённой edit-стадией рапортует черновики как полную книгу без дрейфа | бэкенд | скоро | перенести правило `exportConfigDrift` в `checkWave` + тест | финальное ревью пака «писатель книги», D39.175 п.5 |
| 240 | **Оплаченный стоп подписи банка может исчезнуть МОЛЧА — единственная находка ревью P9, прожившая двое суток БЕЗ носителя** (Д3, `platform/docs/platform-PROGRESS.md:1593`=`Потеря/порча маркера выхода`; заведена оркестратором №20 30.08 при ревизии P9). Рестарт/ретрай проходит границу банка НАСКВОЗЬ: память предъявления (`bank_stop_presented`, схема v16) покрывает карту, движок продолжает одним WARN себе в журнал, а платформенный гард `LiftBankStop` (`platform/internal/runs/reconcile.go:1304`=`LiftBankStop`, писатель — `platform/internal/pgstore/runs.go:1185`=`LiftBankStop`) писан против движка ДО памяти v16 и этот путь не держит. Движковую половину бэкенд-сессия ОТКЛОНИЛА правом §9 («символ живёт в `platform/`, движковая половина здорова») — диспозиция принята, но платформенная половина не получила ни строки регистра, ни строки бэклога. ⚠ Узел ТОТ ЖЕ, что у снятия обхода `--verify-bank` (пинг №21): `LiftBankStop` + колонка `bank_released`, и пак P12 §3.7 их уже трогает — закрывать ОДНОЙ работой, не двумя | платформа (+бэкенд на сверку) | скоро (с §3.7 пака P12) | снять гард вместе с обходом либо доказать, что память v16 делает его недостижимым — с живой пробой на стенде | ревизия P9 оркестратором №20, 30.08 |
| 240 | **Оплаченный стоп подписи банка может исчезнуть МОЛЧА — единственная находка ревью P9, прожившая двое суток БЕЗ носителя** (Д3, `platform/docs/platform-PROGRESS.md`, греп `Потеря/порча маркера выхода` — ⚠ без номера строки НАМЕРЕННО: журнал живой зоны двигается её сессиями, и номер тут протухает за часы; заведена оркестратором №20 30.08 при ревизии P9). Рестарт/ретрай проходит границу банка НАСКВОЗЬ: память предъявления (`bank_stop_presented`, схема v16) покрывает карту, движок продолжает одним WARN себе в журнал, а платформенный гард `LiftBankStop` (`platform/internal/runs/reconcile.go:1304`=`LiftBankStop`, писатель — `platform/internal/pgstore/runs.go:1185`=`LiftBankStop`) писан против движка ДО памяти v16 и этот путь не держит. Движковую половину бэкенд-сессия ОТКЛОНИЛА правом §9 («символ живёт в `platform/`, движковая половина здорова») — диспозиция принята, но платформенная половина не получила ни строки регистра, ни строки бэклога. ⚠ Узел ТОТ ЖЕ, что у снятия обхода `--verify-bank` (пинг №21): `LiftBankStop` + колонка `bank_released`, и пак P12 §3.7 их уже трогает — закрывать ОДНОЙ работой, не двумя | платформа (+бэкенд на сверку) | скоро (с §3.7 пака P12) | снять гард вместе с обходом либо доказать, что память v16 делает его недостижимым — с живой пробой на стенде | ревизия P9 оркестратором №20, 30.08 |
| 241 | **Канон противоречит сам себе на ДОЧИТАННОЙ книге, и принятая правка банка умирает молча** (названо телом D39.165 §3 28.08, носителя не получило; заведено оркестратором №20 30.08 по находке сессии P12). Две фразы: правка банка «takes effect on the NEXT run» (`docs/architecture/14-api-contract/openapi.yaml:504`=`takes effect on the NEXT run`) против «finished work is not bought twice» + подъём потолка только у ПРИОСТАНОВЛЕННОЙ книги (`:590`=`finished work is not bought twice`). У дочитанной книги следующего прогона купить нечем: пользователь правит банк, получает квитанцию об успехе — и правка не доезжает ни до одной строки никогда. ⚠ Смежное лечение уже существует и не связано с этой дырой: пере-проход ПОКУПАЕТСЯ членом `RunRequest.re_pass` (канон 0.7.0, D39.166) — то есть механизм есть, а фраза канона его не признаёт для дочитанной книги. Решать формой: либо канон признаёт пере-проход входом для дочитанной книги, либо дверь правок отказывает такой книге ЧЕСТНО вместо ложной квитанции | контракт (+платформа) | скоро (следующее касание контракта) | контрактный минор + пин на дочитанной книге | D39.165 §3, эррата 30.08-б, находка сессии P12 |
| 217 | **Скрипты полигона захардкодили АБСОЛЮТНЫЕ пути двух корней и не работают на этой машине вовсе.** ДВА РАЗНЫХ слома. **Корень репо** — смена пользователя: литерал в 121 файле, из них 104 дословно `REPO = Path("/home/ubuntu/projects/textmachine")`, портабельных форм всего 5. **Корень книг**оба события порознь: литерал `/home/ubuntu/books` 86 файлов (пользователь), портабельный `Path.home()/"books"` 89 файлов (переезд каталога; на прежних машинах работал). Объединение 173 файла. Пользователь теперь `ubuntu-26`, книги переехали в `<репозиторий>/books` ⇒ ломается и то и другое, включая ЖИВОЙ гейт фазы Д `eval/conformance.py:48`=`REPO = Path("/home/ubuntu/projects/textmachine")`. Живых носителей 26 по корню книг (среди них портабельная форма преобладает 20:6) плюс корневые гейты и сборщики корпусов; остальное — скрипты закрытых эксп-1216, их владелец велел ВЫБРОСИТЬ, а не чинить (D39.157 п.4а). Форма правки — за зоной; приор оркестратора: один модуль путей, корень резолвится МАРКЕРОМ вверх по дереву (движок так и делает — `backend/internal/miner/miner_parity_test.go:29`=`derived from the repository MARKER`), книги от него, обе ручки перекрываются env | полигон | скоро (блокирует любой прогон зоны) | пак путей полигона | переезд машины 24.08, №19 |
| 219 | **Line-якоря в тела D-лога обречены съезжать, и механизм именно в дисциплине эррат.** Эрраты вписываются в КАРТУ ШАПКИ (append-only, D23.3), то есть в начало файла, — значит каждая эррата сдвигает номера строк ВСЕХ тел ниже, и любой якорь вида `05-decisions-log.md:NNN` умирает молча. ⚠ Замерено на себе 27.08: три эрраты за сессию убили якоря в `17-seam-inbound-law.md:120` и `research/25-seam-cold-review.md:5` (оба целили в `:232`, тело уехало на `:239`). Лечение — не пере-нацеливание (оно повторится через эррату), а СМЕНА ФОРМЫ якоря: в тела D-лога целиться номером ноты (`^## D39.106`), который стабилен навсегда, а не строкой. ⚠ Строка ОБЪЯВЛЕНА в CURRENT-STATE 24.08 и до 27.08 в таблице НЕ СУЩЕСТВОВАЛА — очередь три дня ссылалась на носитель, которого нет; поймано свипом якорей при выдаче контрактного минора | оркестратор | скоро (растёт с каждой эрратой) | `--lint` учит форму `файл:^## D<номер>`, живые якоря в D-лог переводятся на неё | ревью доков 24.08, механизм и отсутствие носителя — 27.08, D39.160 |