Take the four rows the engine work actually closed out of the tracker and bring the money route up to what the tree now does, with the owner's two stops written down.
This commit is contained in:
parent
a58687feba
commit
6060f99854
5 changed files with 25 additions and 11 deletions
File diff suppressed because one or more lines are too long
|
|
@ -1,6 +1,6 @@
|
|||
# Журнал прогресса
|
||||
|
||||
> **⟶ ТЕКУЩЕЕ СОСТОЯНИЕ** (на 2026-09-08, голова D39.233 — КУРС: движок и платформа до «работает и отдаёт результат», фронт ЗАМОРОЖЕН и P7 его НЕ размораживает (D39.147). **ОЧЕРЕДЬ №23** (единственный носитель — здесь; роль передана 06.09, №22 закрыт нотой передачи D39.217; ⚠ испр. 06.09: коммит передачи `c992ee5` бампнул голову и НЕ тронул номер — гейта на номер очереди нет вовсе, `counts.py` сверяет только голову, поэтому носитель разошёлся молча). ⚠ **ЗАКАЗ ВЛАДЕЛЬЦА 01.09 — ИСПОЛНЕН, испр. 08.09 (висел как «первым» неделю после исполнения):** (0а) ревизия документации на протухшее ОТРАБОТАНА 01.09 воркфлоу `docs-staleness-revision-A` (15 срезов), провенанс находок — `D39.185`; (0б) планы доработок в бэкенд и платформу — исполняются ПАКАМИ, за 07–08.09 закрыты два движковых (`D39.225`, `D39.226`); (0в) вынос неактуального в архив идёт батчами `DOC_CLEANUP_PLAN.md` (Б14/Б15/Б17 живы). ⇒ строка ниже — не заказ, а история: (0а) ревизия документации на ПРОТУХШЕЕ — по всем зонам; (0б) планы доработок в БЭКЕНД и ПЛАТФОРМУ; (0в) вынос неактуального в АРХИВ (`docs/archive/`, `platform/docs/archive/`) — за сутки 31.08 закрыто много, и часть носителей стала историей. ⚠ Трезвость по масштабу (пере-считано 02.09): **94** живых дока в `docs/` (пере-счёт 04.09: `find docs -name '*.md' -not -path 'docs/archive/*' | wc -l`), 8 в `platform/docs`, 9 в `backend/docs` — ⚠ из 94 ВРЕМЕННЫЙ остался ОДИН (`DOC_CLEANUP_PLAN`, живой до закрытия батчей Б14/Б15/Б17); два прежних временных уехали в `archive/reports/` 02.09; счёт бэклога — бюллетенем ниже, открытых рядов регистра платформы — 109 (major 1), всего рядов 465 (пере-счёт `python3 docs/scripts/counts.py`; с 04.09 оба числа под гардом `--check`, прежние 95/3 разошлись молча) ⚠ (ревизией 02.09 ряды **154** и **157** переведены из «скоро» в «когда-нибудь»: их гейтом стоял первый холодный прогон, он ОТРАБОТАЛ 31.08 и оба предусловия оказались другими — разбор в самих ячейках, ни одна НЕ закрыта). ⚠ Числа доков `counts.py` НЕ сторожит — при переносе файлов пере-считывать руками командой `find docs -name '*.md' -not -path 'docs/archive/*' | wc -l`. ⚠ И предупреждение о МЕТОДЕ, купленное сменой №21: «выглядит протухшим» ≠ «протухло». Три факта оркестратора опровергнуты ЗАМЕРОМ сессий, а якоря `15-money-path.md` в девяти случаях из двенадцати РОДИЛИСЬ верными и сгнили дрейфом — то есть ревизия обязана быть исполнением, а не чтением. ⚠ **ОЧЕРЕДЬ, унаследованная от №21** (три лендинга 31.08 — секция «СОСТОЯНИЕ ПАКОВ» ниже): **(1) ~~РАЗРЫВ ЦИКЛА~~ ЗАМКНУТ ЖИВЬЁМ 04.09** — пользователь получил EPUB настоящего ПЛАТНОГО перевода ЧЕРЕЗ API, `epubcheck` 5.3.0 на СКАЧАННОМ файле 0/0/0/0 (книга `bk_SS5VES2JELESJSTR`, потрачено $0.278319 из гранта $0.60 при потолке пака $1.5, санкция D39.189). Дверь выдачи построена и проверена исполнением: `202`+`Location`, поллинг с `Retry-After`, Range 206 · второй клиент 200 · аноним 401 · чужая книга 404, TTL с GC, идемпотентность третьего создающего вызова. Все ТРИ сценария строки 216 предъявлены живьём (подпись банка · halt на потолке с exit 4 · `409 run_not_resumable/ceiling_reached` и лечение новым прогоном).
|
||||
> **⟶ ТЕКУЩЕЕ СОСТОЯНИЕ** (на 2026-09-08, голова D39.234 — КУРС: движок и платформа до «работает и отдаёт результат», фронт ЗАМОРОЖЕН и P7 его НЕ размораживает (D39.147). **ОЧЕРЕДЬ №23** (единственный носитель — здесь; роль передана 06.09, №22 закрыт нотой передачи D39.217; ⚠ испр. 06.09: коммит передачи `c992ee5` бампнул голову и НЕ тронул номер — гейта на номер очереди нет вовсе, `counts.py` сверяет только голову, поэтому носитель разошёлся молча). ⚠ **ЗАКАЗ ВЛАДЕЛЬЦА 01.09 — ИСПОЛНЕН, испр. 08.09 (висел как «первым» неделю после исполнения):** (0а) ревизия документации на протухшее ОТРАБОТАНА 01.09 воркфлоу `docs-staleness-revision-A` (15 срезов), провенанс находок — `D39.185`; (0б) планы доработок в бэкенд и платформу — исполняются ПАКАМИ, за 07–08.09 закрыты два движковых (`D39.225`, `D39.226`); (0в) вынос неактуального в архив идёт батчами `DOC_CLEANUP_PLAN.md` (Б14/Б15/Б17 живы). ⇒ строка ниже — не заказ, а история: (0а) ревизия документации на ПРОТУХШЕЕ — по всем зонам; (0б) планы доработок в БЭКЕНД и ПЛАТФОРМУ; (0в) вынос неактуального в АРХИВ (`docs/archive/`, `platform/docs/archive/`) — за сутки 31.08 закрыто много, и часть носителей стала историей. ⚠ Трезвость по масштабу (пере-считано 02.09): **94** живых дока в `docs/` (пере-счёт 04.09: `find docs -name '*.md' -not -path 'docs/archive/*' | wc -l`), 8 в `platform/docs`, 9 в `backend/docs` — ⚠ из 94 ВРЕМЕННЫЙ остался ОДИН (`DOC_CLEANUP_PLAN`, живой до закрытия батчей Б14/Б15/Б17); два прежних временных уехали в `archive/reports/` 02.09; счёт бэклога — бюллетенем ниже, открытых рядов регистра платформы — 109 (major 1), всего рядов 465 (пере-счёт `python3 docs/scripts/counts.py`; с 04.09 оба числа под гардом `--check`, прежние 95/3 разошлись молча) ⚠ (ревизией 02.09 ряды **154** и **157** переведены из «скоро» в «когда-нибудь»: их гейтом стоял первый холодный прогон, он ОТРАБОТАЛ 31.08 и оба предусловия оказались другими — разбор в самих ячейках, ни одна НЕ закрыта). ⚠ Числа доков `counts.py` НЕ сторожит — при переносе файлов пере-считывать руками командой `find docs -name '*.md' -not -path 'docs/archive/*' | wc -l`. ⚠ И предупреждение о МЕТОДЕ, купленное сменой №21: «выглядит протухшим» ≠ «протухло». Три факта оркестратора опровергнуты ЗАМЕРОМ сессий, а якоря `15-money-path.md` в девяти случаях из двенадцати РОДИЛИСЬ верными и сгнили дрейфом — то есть ревизия обязана быть исполнением, а не чтением. ⚠ **ОЧЕРЕДЬ, унаследованная от №21** (три лендинга 31.08 — секция «СОСТОЯНИЕ ПАКОВ» ниже): **(1) ~~РАЗРЫВ ЦИКЛА~~ ЗАМКНУТ ЖИВЬЁМ 04.09** — пользователь получил EPUB настоящего ПЛАТНОГО перевода ЧЕРЕЗ API, `epubcheck` 5.3.0 на СКАЧАННОМ файле 0/0/0/0 (книга `bk_SS5VES2JELESJSTR`, потрачено $0.278319 из гранта $0.60 при потолке пака $1.5, санкция D39.189). Дверь выдачи построена и проверена исполнением: `202`+`Location`, поллинг с `Retry-After`, Range 206 · второй клиент 200 · аноним 401 · чужая книга 404, TTL с GC, идемпотентность третьего создающего вызова. Все ТРИ сценария строки 216 предъявлены живьём (подпись банка · halt на потолке с exit 4 · `409 run_not_resumable/ceiling_reached` и лечение новым прогоном).
|
||||
> ⛔ **ПЯТЬ ПОТОКОВ РАБОТЫ — состояние на 07.09 (пере-снято лендингами смены №23).**
|
||||
> **(1) ПОЛИГОН — «ремонт прибора»** (`docs/POLYGON_INSTRUMENT_REPAIR_SESSION_PROMPT.md`, строки 319 · 300 · 265 · 143):
|
||||
> ⚠ **ЕДИНСТВЕННЫЙ ПОТОК, НЕ СДВИНУВШИЙСЯ ЗА СМЕНУ — сессия по промту так и не стартовала.** Блокирующая линза
|
||||
|
|
@ -13,6 +13,7 @@
|
|||
> `3d90943`). Строки 285 · 305 · 325 закрыты. ⚠ **Синхронный разрез приёма принят ПОСТРОЕННЫМ, НО НЕ ГОТОВЫМ** —
|
||||
> сработало правило остановки (9 major из 11 в одном механизме), десять пунктов несёт строка **332**; ложный
|
||||
> инвариант бюджета заландён осознанно (окно лжи 8 секунд при дефолте в 16 минутах, ломается идемпотентность).
|
||||
> **(12) СЛОВО ВЛАДЕЛЬЦА ПО ОСТАНОВКАМ ПОЛУЧЕНО И РАТИФИЦИРОВАНО, акт `D39.234`:** первое нажатие — мягкая, второе — жёсткая; ждём одну летящую попытку (~20 мин), не цепочку; пак мягкой остановки и строку **377** делаем ОДНИМ заходом; коды выхода не трогаем. Пак движка ПАРНЫЙ платформенному. ⛔ Тем же актом сверены носители, которых `D39.232` не тронул: закрыты и убраны строки **78** · **331** · **360** · **369**; блокеров очереди в трекере теперь **0**. Инвентарь живых доков прогнан (94 файла): `15-money-path.md` чинен в трёх местах.
|
||||
> **(11) ДВА СТОПА — СЛОВО ВЛАДЕЛЬЦА НАКОНЕЦ ЗАПИСАНО, акт `D39.233`.** У человека одна кнопка, и она рвёт всё в полёте; мягкий глагол в движке построен, но дёрнуть его может только денежный потолок. ⛔ Контракт и платформа УЖЕ обещают мягкий стоп, которого нет, а платформенный грейс (600 с) меньше законного ожидания вызова (1240 с). ⛔ Пометка «это оценка» — условие слова владельца — по шву НЕ едет и потребителя не имеет (строка **382**). ✅ Замером закрыты строки **374** (вердикт главы остановка уже не портит) и **371**. Пак не заказан: ждёт слова владельца по форме (рекомендация — «повтор ужесточает», коды выхода не трогать).
|
||||
> **(10) ПАК «ВЫЗОВ, КОТОРЫЙ ОБОРВАЛИ МЫ» — ✅ ПРИНЯТ И ЗАЛЕНДЕН 10.09, акт `D39.232`** (`3f05fab`, 28 путей, $0). Движок перестал платить дважды за одну генерацию. Числа пере-сняты оркестратором: батарея 19 ok · 0 FAIL · 4 скипа; каталог 276 → 360, батарея 65 → 149; тесты +67 / −0; снапшот не двинулся. ⛔ Приёмка ДО ратификации нашла пять выживших мутаций, все на носителях ВИДИМОСТИ денег — то есть на условии слова владельца. ⭐ Куплены четыре нормы об измерении и три класса вырожденных пинов. Остатки — строки **375**–**377** (**374** закрыта замером, акт `D39.233` п.2).
|
||||
> **(9) ТРАНСПОРТ: КОНСИЛИУМ СОШЁЛСЯ, БИТ ВЛАДЕЛЬЦА ЗАКРЫТ — акт `D39.230`.** Оборванный НАМИ вызов: списывается по оценке с читателя, **пометка — УСЛОВИЕ решения**; платная проба отклонена (вопрос к вендору осознанно открыт); ожидание до ~20 мин разрешено ⇒ дедлайн от бюджета. ⛔ Попутно вскрыто: наш `research/21` §Q6 неверен ДВАЖДЫ и обе половины держали неверный дедлайн полтора месяца (эррата в его шапке); ось эскалации D2 фиктивна (строка **369**); нулевая ветвь не пишет чекпойнт ⇒ резюм ПЕРЕКУПАЕТ вызов. ⇒ **следующий движковый пак — строка 360**, пишется целиком.
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
# Реестр D-нот — карта актуальности v2 (D1–D39.233; титул — носитель головы, бампать при каждом аппенде)
|
||||
# Реестр D-нот — карта актуальности v2 (D1–D39.234; титул — носитель головы, бампать при каждом аппенде)
|
||||
|
||||
> ⚠ **Колонку «тело» `counts.py --check` НЕ сторожит по устройству:** он сверяет полноту НОМЕРОВ, а не
|
||||
> место тела, поэтому колонка держится дисциплиной лендинга. Не нашёл тело по колонке — иди в слайсы,
|
||||
|
|
@ -292,3 +292,4 @@
|
|||
| D39.231 | 10.09 | **ДИСПОЗИЦИИ, РОЗДАННЫЕ ПИСЬМАМИ, РАТИФИЦИРОВАНЫ ЗАДНИМ ЧИСЛОМ.** Три ответа оркестратора движковой сессии жили только в межсессионных сообщениях; сессия упала, tmpfs-канал умер — слово перестало существовать. ⇒ **норма: диспозиция ратифицируется ИЛИ получает строку ТЕМ ЖЕ движением, каким отправляется ответ.** Ратифицировано удаление h2-write-бонда; два продуктовых вопроса заведены строками **374**/**375** вместо обещания; откат разведения предикатов отклонён уликой ($0.80 за отклонённый провайдером запрос) | процесс · транспорт · деньги |
|
||||
| D39.232 | 10.09 | **АКТ: движковый пак «вызов, который оборвали мы» ПРИНЯТ** (`3f05fab`, 28 путей, $0). Движок перестал платить дважды за одну генерацию: граница денег — ДОСТАВКА, дедлайн считается от бюджета, оплаченный обрыв не перепокупается. Закрыты 360 · 369 · 78. ⛔ Приёмка двумя рубежами ДО ратификации нашла 5 блокеров: **пять мутаций выжили на зелёной батарее, все на носителях ВИДИМОСТИ денег** — то есть на УСЛОВИИ слова владельца. ⭐ Куплены четыре нормы об измерении (знаменатель по одному глаголу · глаголы по имени · знаменатель закрывает одну ось) и три класса вырожденных пинов | приёмка · транспорт · деньги · метод |
|
||||
| D39.233 | 10.09 | **ДВА СТОПА получают носитель; две строки закрыты замером; условие слова владельца — без потребителя.** У человека одна кнопка и она ЖЁСТКАЯ (`cmd/tmctl/main.go:207`); мягкий глагол построен, но локален волне и дёргает его только потолок (`waverun.go:353`); второй Ctrl-C НЕ ДЕЛАЕТ НИЧЕГО. ⛔ Контракт (`openapi.yaml:762`) и платформа (`runner.go:56-58`) уже ОБЕЩАЮТ мягкий стоп, которого нет, а `stopGrace` 600 с меньше потолка ожидания 1240 с. ⛔ Пометка «оценка» по шву НЕ едет (0 хитов в кадрах, контроль 6) ⇒ `D39.230` п.1 без потребителя — строка **382**. ✅ Закрыты **374** (вердикт главы остановка уже не портит — пере-снято, пин зелён) и **371** (переплата невозможна: `Billable` требует 2xx). Рекомендована форма «повтор ужесточает», коды выхода не трогать | стоп · деньги · шов · метод |
|
||||
| D39.234 | 10.09 | **СЛОВО ВЛАДЕЛЬЦА по двум остановкам + сверка носителей, которую `D39.232` объявил и не сделал.** Ратифицировано: форма «повтор ужесточает» (первое нажатие — мягкая, второе — жёсткая), потолок ожидания ~20 мин (одна летящая попытка, не цепочка), пак мягкой остановки и строка **377** — одним заходом; коды выхода не трогать. Пак движка ПАРНЫЙ платформенному (грейс 600 с < 1240 с). ⛔ Эррата 10.09-б: три объявленные закрытыми строки сутки стояли в таблице — **78** · **369** · **360** закрыты и убраны, плюс незамеченная **331** (с названным сужением, остаток — **376**). Инвентарь живых доков: `15-money-path.md` чинен в трёх местах и получил новую денежную границу; реестр требований против брифа владельца сходится (V0–V6) | стоп · деньги · слово владельца · сверка |
|
||||
|
|
|
|||
|
|
@ -1,10 +1,11 @@
|
|||
# Журнал решений оркестратора — контракт D1–D39.233 (живой файл: карта · эрраты · живые тела · голова D39.124+ (подрезка D39.139); тела закрытых эр — в слайсах `docs/archive/architecture/`, указатель ниже; реестр всех нот — `05-decisions-index.md`)
|
||||
# Журнал решений оркестратора — контракт D1–D39.234 (живой файл: карта · эрраты · живые тела · голова D39.124+ (подрезка D39.139); тела закрытых эр — в слайсах `docs/archive/architecture/`, указатель ниже; реестр всех нот — `05-decisions-index.md`)
|
||||
|
||||
> **⟶ КАРТА АКТУАЛЬНОСТИ (ревизия D31, продлена до D38.2 [12.07]; исторические записи ниже НЕ переписываются — дисциплина D23.3).** Работая с контрактом (греп номера: живой файл → слайсы, целиком НЕ читать — D39.125), держи под рукой, что чем перекрыто:
|
||||
> ⚠ **Эррата 09.08 (D39.125):** D39.111 п.1 предписывал промту S3 «максимум = баланс МИНУС открытые холды» — формула ОШИБОЧНА (вычитание дважды), исправлена D39.115 п.2(а): максимум = Balance КАК ЕСТЬ; тело D39.111 — в слайсе `../archive/architecture/05-decisions-D39-106-123.md` (испр. 05.09: прежнее «живёт ниже в этом файле» протухло подрезкой D39.139) (голова D39.106+).
|
||||
> ⚠ **Эррата 15.08 (D39.132):** D39.131 п.2(а) перечисляет полосу отказов «10 конфиг · 11 источник · 12 лок · 19 безымянный» — читать через D39.132 п.2(г): полоса ДОПОЛНЕНА **exit 13 = `schema_mismatch`** (~~обе зоны сошлись на числе независимо~~; ратифицирован направлением, ФИНАЛИЗИРОВАН приёмкой D39.134).
|
||||
> ⚠ **Эррата 15.08-б (D39.134 п.2а, вписана по аудиту корпуса):** клейм «зоны сошлись на 13 НЕЗАВИСИМО» (строкой выше и в D39.132 п.2г) СНЯТ — платформа прочитала число из незакоммиченного дерева движка и сама это записала (`platform/internal/ingest/exit.go:63-64`); на силу ратификации не влияет.
|
||||
> ⚠ **Эррата 15.08-в (D39.136 п.5):** форма контракт-ревью «фазный воркфлоу оркестратора» ОТМЕНЕНА словом владельца тем же днём — исполняет ОТДЕЛЬНАЯ СЕССИЯ со своим онбордингом (норма D39.120 п.2; оркестратор — автор части ратификаций 0.2.3, author≠reviewer); запущенная воркфлоу-фаза 1 остановлена, её результаты выброшены; промт — `docs/CONTRACT_REVIEW_SESSION_PROMPT.md`.
|
||||
> ⚠⚠ **Эррата 10.09-б (`D39.232` п.1) — АКТ ОБЪЯВИЛ ТРИ СТРОКИ ЗАКРЫТЫМИ И НЕ ТРОНУЛ ТАБЛИЦУ.** «Закрыты строки 360 и 369, попутно 78» — все три остались в `docs/BACKLOG.md` живыми до 10.09, когда владелец спросил, актуализированы ли доки. Носитель сверки — норма этого же оркестратора в ролевом промте («сверка носителей — тем же движением, что и акт»), и она не сработала на акте её автора. Закрыто и сверено в `D39.234` п.3; там же четвёртая строка (**331**), закрытая тем же паком и не замеченная никем.
|
||||
> ⚠ **Эррата 10.09-а (`D39.232` п.9) — ПЕРЕЧЕНЬ ОСТАТКОВ НЕПОЛОН: их не четыре, а семь.** Пункт 9 писал «остатки заведены строками **374**–**377**» — это было верно в момент акта и перестало быть в тот же день: три находки приёмки, не вошедшие в круг, получили строки **378** (пин «не-2xx — не покупка» ловит мутанта ассертом об исходе прогона, денежные проверки не исполняются), **379** (два пина не утверждают своей посылки) и **380** (у денежного утверждения про бюджет пере-делки один носитель, а не пять). Две из трёх пере-сняты моим прибором на копии — с контрольной величиной рядом с нулём. Тело ноты не переписывается (D23.3); читать п.9 как **374**–**380**. ⚠ И ещё раз в тот же день: **374** и **371** ЗАКРЫТЫ замером (акт `D39.233` п.2 и п.3) ⇒ живой остаток темы — список в `D39.233` п.8, а не здесь.
|
||||
> ⛔⛔ **Эррата 08.09-д (`D39.229` п.2) — «ЧИСЛА ПЕРЕ-СНЯТЫ МНОЮ» ДОКАЗЫВАЛИ ПОЧТИ НИЧЕГО О ПРЕДМЕТЕ ПАКА, И ЭТО КЛАСС `D39.202`, ПРИМЕНЁННЫЙ К САМОЙ БАТАРЕЕ.** Пункт 2 записывает: «`go test ./... -count=1` → 20 пакетов `ok` · 0 FAIL · EXIT=0». Ровно эту картинку печатает машина БЕЗ Postgres, потому что `go test` без `-v` скипы не показывает вовсе. Замер в моём окружении: `TM_PLATFORM_TEST_DSN` пуст, прогон даёт **431 скип**, и среди них — **все десять тестов `internal/books/limit_test.go`**, то есть весь пин ЦЕНТРАЛЬНОГО механизма пака. `go test ./internal/books/ -run TestTheHostRunsNoMoreCutsAtOnceThanItsCapAllows -v` в том же окружении печатает `SKIP` и следом `PASS`. ⇒ мой приёмочный прогон потолка не касался ни разу. **Нашёл охотник вне карты, и доказал не рассуждением, а двусторонней посадкой:** ослабленный семафор (`NewWeighted(limit+3)`) без DSN даёт `ok 0.009s`, с DSN — `FAIL: TestTheHostRunsNoMoreCutsAtOnceThanItsCapAllows`. ⭐ **Пробел закрыт исполнением, а не оговоркой:** я подняла стенд (сокет `/tmp/.s.PGSQL.5432`) и прогнала оба флагманских теста с живой базой — **PASS, 0.81 с и 2.45 с**, а затем и всю платформенную батарею со стендом: **20 пакетов `ok` · 0 FAIL · скипов 9 вместо 431** (остаток гейтится движковым бинарём и `pg_restore`) — число независимо совпало со счётом слепого верификатора. Механизм ЗАПИНЕН по-настоящему; неверен был мой прибор, а не работа зоны. ⇒ **НОРМА: приёмочный прогон печатает счёт СКИПОВ рядом с числом `ok`, иначе «пере-снято мною» и «пере-снято на четырёхстах невыполненных тестах» неразличимы.** Гейт зоны (`make check`) скипы печатает и пустой лог объявляет красным — а голый `go test`, которым мерила приёмка, слеп по построению. ⚠ И `D39.228` п.2 (движковая батарея) той же поправке НЕ подлежит: там гейтов хоста нет, скипов 4 и они названы.
|
||||
> ⚠⚠ **Эррата 08.09-г (`D39.228` п.1 и п.3) — ТРИ ОШИБКИ ОДНОГО АКТА, НАЙДЕНЫ КРОСС-МОДЕЛЬНЫМ РЕВЬЮ РАТИФИКАЦИЙ, которое норма велела провести ДО ратификации, а я провела ПОСЛЕ.** **(а) ⛔ ЦЕНА БАМПА НАЗВАНА ДЕНЬГАМИ, КОТОРЫХ ТАМ НЕТ.** Пункт 3 пишет, что бамп `manifestVersion` «выбрасывает каждый сохранённый сайдкар и ПЕРЕКУПАЕТ каждую книгу». Код говорит другое и говорит это четырежды (`manifest.go:78`, `:99`, `:118`, `:729`): «discard every stored sidecar and **re-cut** / **re-chunk** every book». Ре-чанк — процессор, не деньги: единственный денежный читатель манифеста (`rebill.go`) на нулевом манифесте не объявляет ряд перепокупкой, а делает дорогую сверку контент-хешей и при совпадении продолжает как `$0 resume`. Настоящая цена бампа — пере-нарезка на каждом чтении, одна дорогая проверка в гейте согласия и **релиз платформы В НОГУ** (`KnownManifestVersion`), и последний довод СИЛЬНЕЕ денежного, но в ноте не назван. ⇒ **правило пункта 3 остаётся в силе, довод под ним заменён:** запрет бампа держится на двузонном релизе, а не на перепокупке. ⚠ Следующий, кто станет взвешивать бамп, взвесил бы не ту цену. **(б) ⛔ СТРОКА 312 ЗАКРЫТА НАПОЛОВИНУ И УДАЛЕНА ЦЕЛИКОМ — тот же класс, что 253, в том же акте решённый ПРОТИВОПОЛОЖНО.** Живым остатком 312 был Д-3 — «увидит ли ноту ЧЕЛОВЕК»; после лендинга поле `TOCUnreadable` пишется в манифест и не читается никем: **0 хитов `toc_unreadable` в `platform/` при 200 `.go`**. Факт переехал из лога в файл, которого никто не открывает, и для пользователя не изменилось ничего. Строка ВОЗВРАЩЕНА суженной до платформенной половины; класс A для этого поля объявлен там же (акт объявлял его только для `consolidation`). **(в) ⛔ ЭРРАТА 08.09-в ЗАКРЫЛА 1 НОСИТЕЛЬ ИЗ 6.** «253 закрыта» стояло ещё в `05-decisions-index.md`, `docs/README.md`, CURRENT-STATE `docs/PROGRESS.md` и баннере архивного промта — а следующая сессия онбордится с CURRENT-STATE, а не с шапки журнала. Приведены к правде вместе с 312. ⚠ Это МОЯ ЖЕ норма «класс закрыт только со ЗНАМЕНАТЕЛЕМ N из M», применённая к моей же эррате и не исполненная. **(г) Атрибуция коммита.** `f1404f0` (акт ПЛАТФОРМЫ) унёс закрытие ДВИЖКОВЫХ рядов 312/355/357/358 и сужение 253; движковый акт `e9a0f78` бэклога не трогал вовсе. Историю не переписываю — читателю `git log -- docs/BACKLOG.md` объясняет эта строка.
|
||||
|
|
@ -3275,3 +3276,17 @@ bought NOTHING». ⇒ **`tmctl manifest` есть НИЖНЯЯ граница,
|
|||
**8. Что осталось у темы «оборванных вызовов».** Живые строки: **375** (правка меняет ложь на молчание — нужно третье состояние), **377** (оплаченный обрыв + удачный ретрай = $0 и ни следа; ломает сверку инвойса, на которой стоит `D39.230` п.2 — ставить первой из денежных), **376**, **373**, **372** (решается вместе с мягким стопом: у гейта появляется третья причина аборта), **378**–**380** (качество пинов), **381**, **382**. Тема закрывается паком мягкого стопа плюс **377**, не раньше.
|
||||
|
||||
**9. Границы.** Пункты 2 и 3 пере-сняты мной на дереве. Пункт 4 сходится у трёх приборов независимо. Вендорские формы п.6 читаны Fable 5 по официальным страницам сегодня (Celery, nginx, GitLab Runner, Sidekiq, systemd.kill, Kubernetes, Argo, Temporal); Erlang, Docker, Slurm и «Ctrl-C дважды» в Claude Code он назвал памятью, не документом, — так и записано. Потолки ожидания п.6 — арифметика по конфигу, не прогон. Живого прогона с провайдером не было и не требовалось, $0.
|
||||
|
||||
## D39.234 — СЛОВО ВЛАДЕЛЬЦА по двум остановкам; и сверка носителей, которую акт `D39.232` объявил, но не сделал (10.09, оркестратор №23) ✅
|
||||
|
||||
**1. Три ответа владельца 10.09, ратифицированы дословно.** **(а) ФОРМА — «повтор ужесточает»:** первое нажатие (SIGINT/SIGTERM) — МЯГКАЯ остановка (новых единиц не раздаём, начатое доигрываем, выходим сами), второе — сегодняшняя ЖЁСТКАЯ (отмена контекста, сеттл оценок, пометки `cancelled`), третье — дефолт процесса. **(б) ПОТОЛОК ОЖИДАНИЯ — приемлемо ~20 минут:** мягкая ждёт ОДНУ летящую попытку (отказ на пер-вызовном гейте резервации, ≤ `attempt_max_s` 1240 с), а НЕ всю ретрай-цепочку (~64 мин). **(в) ПОРЯДОК — оба сразу:** пак мягкой остановки и строка **377** делаются одним заходом, не по очереди. ⚠ Коды выхода при этом НЕ трогаются (оба стопа — 5), различение едет признаком в кадре `finished` — это часть рекомендации `D39.233` п.6, которую владелец принял вместе с формой.
|
||||
|
||||
**2. Что из этого следует для заказа.** Пак движка ПАРНЫЙ платформенному и порознь не лендится (`D39.233` п.5: `stopGrace` 600 с < 1240 с, и мягкий SIGTERM без правки грейса означал бы SIGKILL по законному ожиданию — а SIGKILL не оставляет ни пометки, ни сеттла). В движковый пак входят строки **381**, **382**, **377**, **372**, **375** и **379**(а); платформенная половина — `mode` у `/stop`, грейс, путь второго сигнала и ЧТЕНИЕ оценочных строк. Промты не написаны; это следующий ход очереди.
|
||||
|
||||
**3. ⛔ АКТ `D39.232` ОБЪЯВИЛ СТРОКИ ЗАКРЫТЫМИ И ОСТАВИЛ ИХ В ТАБЛИЦЕ.** Пункт 1 писал «закрыты строки 360 и 369, попутно 78» — и все три сутки простояли в бэклоге живыми. Это ровно та норма, которую эта же смена записала себе в ролевой промт («сверка носителей — тем же движением, что и акт»), и она не сработала на собственном акте автора. Пере-снято и закрыто сегодня: **78** (оплаченный `2xx` с нечитаемым телом теперь пишет СВОЮ строку `request_log` и помечается оценкой — `backend/internal/pipeline/cutcall.go:133`=`rl.Estimated, rl.EstTokens = cost > 0`), **369** (дедлайн выводится из бюджета вызова — `backend/internal/llm/attemptcut.go:269`=`func (p RetryProfile) deriveDeadline`, и эскалация, удвоившая `max_tokens`, удваивает время), **360** (предмет пака). Эррата 10.09-б в шапке.
|
||||
|
||||
**4. И ЧЕТВЁРТАЯ строка, закрытая тем же паком, которую не заметил никто, — 331** (движковая половина `PD-441`). Её условие закрытия — «сеттл оценки при отмене ушедшего вызова + публикация оценочных строк в `status --json`» — исполнено обеими половинами: сеттл — `cutcall.go`, публикация — `backend/internal/pipeline/status.go:911`=`rep.EstimatedRows, rep.EstimatedUSD = estimatedSpend(usage, committed)`, и оператору она печатается (`backend/cmd/tmctl/render.go:402`=`estimated-cost rows:`). ⚠ **С НАЗВАННЫМ СУЖЕНИЕМ:** различитель строки был «факт УХОДА запроса», а дерево книжит по «провайдер ОТВЕТИЛ 2xx», что уже; направление сужения — недосчёт, ратифицированный `D39.196` п.2а, и остаток несёт строка **376**. Платформенная половина «сказать больше, чем ≥» — строка **382**.
|
||||
|
||||
**5. Инвентарь живых доков (ответ на вопрос владельца «доки актуализированы?»).** Прогнан по норме ролевого промта — ВСЕ живые доки против текущего состояния, не только тронутые сменой; прибор прочёл **94** живых `.md` вне архива. Найдено и исправлено: `docs/architecture/15-money-path.md` в ТРЁХ местах утверждал закрытый канал как открытый (пункт маршрута, строка таблицы долга, список бэклог-строк) — переписаны, и туда же внесена НОВАЯ денежная граница пака (доставка · класс `attempt_timeout` без ретрая · дедлайн из бюджета · резюм не перепокупает). Проверено и расхождений НЕ найдено: реестр требований против брифа владельца (V0–V6 разобраны все; бриф не менялся с 24.08 — контроль по `ls`), таблица активных промтов, шапка-таблица `09-target-architecture.md` (транспорт в её слои не входит), `docs/research/21` (несёт ⚠-баннер о вердикте). ⚠ Остаток, который чинить НЕ мне: 13 битых `file:line`-якорей линтера — все в чужих зонах (`backend/docs`, `docs/experiments`, `frontend/docs`) либо уехали не от моих правок; адреса пере-сняты и оставлены пингами в зонных журналах.
|
||||
|
||||
**6. Границы.** Пункты 3 и 4 пере-сняты моим прибором на дереве, каждое закрытие предъявлено `file:line`. Пункт 1 — прямые ответы владельца, не вывод. Пункт 5 — инвентарь по грепу с контрольными величинами; «расхождений не найдено» означает «прибор спросил названные доки и не нашёл», а не «их там нет по построению».
|
||||
|
|
|
|||
|
|
@ -22,7 +22,8 @@
|
|||
- **`--ceiling-usd` — КНИЖНЫЙ потолок, не бюджет прогона.** Дословно из флага: «the book USD ceiling in force for THIS RUN ONLY — it OVERRIDES book.yaml `ceilings.book_usd` and is never written back. It caps the book's CUMULATIVE committed+reserved spend, not this run's increment…» (`backend/cmd/tmctl/invocation.go:142`=`the book USD ceiling in force for THIS RUN ONLY`; ⚠-коммент `backend/cmd/tmctl/main.go:260`=`--ceiling-usd is NOT a per-run budget`; многоточие закрывает обрыв цитаты — во флаге дальше стоит «, and must be > 0»). Ратификация — D39.122 п.2(в): пересчёт «пользовательский прирост → абсолют» — обязанность ПЛАТФОРМЫ, вторая денежная ось не заводится. День-потолок флаг НЕ перекрывает (PD-157). Проводка внутри: `Ceilings.BookUSD` в `Reserve` и именование сработавшего потолка в ошибке — `backend/internal/pipeline/stagerun.go:571`=`BookUSD: r.bookCeilingUSD()` и `backend/internal/pipeline/stagerun.go:653`=`overrides the book's ceilings.book_usd` (стоп = `errReserveCeiling`, `backend/internal/pipeline/escalation.go:49`=`var errReserveCeiling`).
|
||||
- **Потолки — wiring, не семантика:** `Ceilings` намеренно исключены из `BriefHash` («Wiring fields (paths, ceilings, db) deliberately excluded», `backend/internal/config/book.go:345`=`Wiring fields (paths, ceilings, db) deliberately excluded`; канон — `backend/internal/config/book.go:369`=`canon := struct {`) ⇒ смена ДЕНЕЖНОГО потолка не двигает ни снапшот, ни ре-билл (D39.110 п.2б). ⚠ Верно ровно про ДЕНЬГИ: потолок СЕГМЕНТАЦИИ `edit_ceiling_out` в снапшот ВХОДИТ и меняет границы чанков (`backend/internal/pipeline/snapshot.go:34`=`EditCeilingOut int`).
|
||||
- **`status --json` отдаёт фигуры платформе:** `committed_usd`, `reserved_usd`, `book_ceiling_usd`, `ceiling_pct` = 100·(committed+reserved)/book_ceiling (`backend/internal/pipeline/status.go:324`=`book_ceiling_usd,omitempty`; арифметика `ceiling_pct` — `backend/internal/pipeline/status.go:918`=`100 * (committed + reserved)`). Дневной фигуры в status нет (PD-157 — `platform/docs/DEFECT_REGISTER.md`, греп `PD-157`).
|
||||
- **Леджер = НИЖНЯЯ граница** (строка 78 бэклога, `docs/BACKLOG.md`, греп `Леджер денег = НИЖНЯЯ граница`): «2xx body decode failed (call IS billed)» — провайдер списал, попытка в `request_log` не попадает; живой замер D39.86 — 3 вызова из 14, неизвестность $0.015111 при леджере $0.114378; движок сеттлит оценку и печатает `estimated-cost rows: 3`. Канал виден, фикс — money-паком (дизайн GENERALITY_PHASE2 §5.6).
|
||||
- ✅ **Канал «леджер = нижняя граница» ЗАКРЫТ 10.09** (строка 78, акт `D39.232`). Прежде оплаченный `2xx` с нечитаемым телом в `request_log` не попадал: провайдер списал, а в леджере следа нет — живой замер `D39.86` дал 3 вызова из 14 и неизвестность $0.015111 при леджере $0.114378. Теперь такой вызов пишет СВОЮ строку и помечает её оценкой (`backend/internal/pipeline/cutcall.go:133`=`rl.Estimated, rl.EstTokens = cost > 0`, затем `r.Store.LogRequest`). ⚠ Нижней границей леджер быть НЕ перестал по другой причине: обрыв, за которым ретрай УСПЕЛ, по-прежнему исчезает бесследно — строка **377**.
|
||||
- **ГРАНИЦА ДЕНЕГ ЗА ОБОРВАННЫЙ НАМИ ВЫЗОВ — ФАКТ ДОСТАВКИ, а не статус-строка** (пак строки 360, акт `D39.232`; слово владельца — `D39.230`). Деньги берутся, только когда провайдер подтвердил запрос ответным объектом: `backend/internal/llm/attemptcut.go:221`=`Billable: answered && tr.afterHeaders()`. Наш собственный дедлайн даёт свой класс `attempt_timeout` без ретрая; дедлайн вычисляется ИЗ БЮДЖЕТА вызова, а не назначается (`backend/internal/llm/attemptcut.go:269`=`func (p RetryProfile) deriveDeadline`), так что эскалация, удвоившая `max_tokens`, удваивает и время. Оплаченный обрыв получает чекпойнт, и резюм его НЕ перепокупает. ⛔ Пометка «это оценка» — УСЛОВИЕ слова владельца (`D39.230` п.1) — сегодня живёт только в `status --json` и по шву к платформе НЕ едет: строка **382**.
|
||||
|
||||
- **Согласие на пере-оплату — ДВИЖКОВЫЙ гейт**. Прогон, который пере-покупает уже оплаченные юниты дороже порога, ОСТАНАВЛИВАЕТСЯ и требует явного согласия. Порог по умолчанию ратифицирован D20.2-Q2: `min($0.50, 5% × ProjectedBookUSD)`. Носитель — `backend/internal/pipeline/rebill.go`, греп `rebillConsentThreshold`; единственная ручка книги — `rebill_consent_usd` (валидатор `backend/internal/config/book.go`, греп `rebill_consent_usd`; 0 = ратифицированный дефолт). ⚠ Порог считается БЕЗ контура банк-ролей (D39.182 §3), то есть срабатывает позже, чем подсказывает полная проекция.
|
||||
|
||||
|
|
@ -60,7 +61,7 @@
|
|||
| Дыра | Носитель |
|
||||
|---|---|
|
||||
| ⚠ **Строка 166 — ДВИЖКОВАЯ половина ПОСТРОЕНА 05.09** (`expected_usd` · `book_once_usd` · `step_max_usd` в `manifest --json`, лендинг `81a89e9`, акт D39.206); ⛔ **ПЛАТФОРМЕННАЯ половина ТОЖЕ ПОСТРОЕНА — пере-снято 07.09 ЭТОЙ ЖЕ командой, которой утверждение доказывалось:** `git grep -lE "StepMax|step_max" -- platform/` даёт **19 файлов** (контроль на несуществующем токене — 0), среди них боевые `internal/ingest/manifest.go`, `internal/pgstore/books.go`, миграция `00033_order_and_price.sql`; движковые числа не только читаются, но и СТРОЯТ холд — `platform/internal/pricing/pricing.go:198`=`func (m Model) Hold(expected, stepMax, bookOnce, balance`. ⚠ Прежние две редакции звали дырой сначала обе половины, потом платформенную — обе устарели, и вторая пережила лендинг `81a89e9`. Строка бэклога 166 — кандидат на закрытие при лендинге платформенного пака. Движковая поверхность оценки $/глава; $0.03 — временная мера беты (П-10 зоны) | `docs/PROGRESS.md`, греп `Движковая поверхность оценки` |
|
||||
| **Строка 78** — леджер = нижняя граница (биллящийся decode-fail мимо request_log, ≤13% захода на ре-пробе) | `docs/PROGRESS.md`, греп `Леджер денег = НИЖНЯЯ граница` |
|
||||
| ✅ **Строка 78 ЗАКРЫТА 10.09** (акт `D39.232`) — биллящийся decode-fail пишет свою строку и помечен оценкой; остаток другого знака — строка **377** | `docs/architecture/05-decisions-log.md`, греп `## D39.232` |
|
||||
| **Строка 136** — эскроу/intent (см. §3 п.10) | `docs/PROGRESS.md`, греп `Write-ahead intent` |
|
||||
| *(добавка сборщика)* **PD-157 (minor)** — `day_usd` книги флагом не перекрывается, платформой не виден и не задаётся; в `status --json` дневной фигуры нет | `platform/docs/DEFECT_REGISTER.md`, греп `PD-157` |
|
||||
|
||||
|
|
@ -77,7 +78,7 @@
|
|||
| Ратификации, на которых стоит этот док | ⚠ **добавлены 05.09: `D39.203`** (владелец: движку МОЖНО говорить «сколько добавить»; наружу идёт ДО-ВЫЗОВНАЯ ОЦЕНКА, не стоимость) · **`D39.204`** (отказ резервации на ретрае деградирует во ФЛАГ; решение принято, код НЕ тронут — строка 291) · **`D39.206`** (акт приёмки денежного стопа). ⚠ **И новые движковые денежные носители того же лендинга:** `backend/internal/pipeline/reservegate.go` (шлюз резерваций и `shortfallMicroUSD`) · `priceprojection.go` (проекция цены книги) · `internal/runevents/runevents.go` (`Ceiling.ShortfallMicroUSD`, `Finished.Money`, поток 1.3). · **D39.179** (пере-пин цен 16.08, ×4.47; норма «стабилен чистый ФАЙЛ» — п.4) · **D39.181** (закон раскрытия: признак объёмного стопа едет числом) · **D39.182** (пак «деньги и честность»: план банк-ролей режется до первого вызова; порог согласия без контура банк-ролей) |
|
||||
| Код денег движка | `backend/internal/store/ledger.go` · `store/store.go` · `pipeline/stagerun.go` · `pipeline/status.go` · `config/book.go` · `pipeline/rebill.go` (согласие на пере-оплату) · `pipeline/terminologist.go` (книго-широкие бюджеты банк-ролей) · `pipeline/volume.go` (объёмный потолок) |
|
||||
| Дефекты денег | `platform/docs/DEFECT_REGISTER.md` (PD-104·113·144·157·158·159) |
|
||||
| Бэклог-строки | `docs/BACKLOG.md` строки 78 · 136 · 137 (⚠ испр. 05.09: **166 отсюда СНЯТА** — движковая половина оценки построена и опубликована лендингом `81a89e9`; открыта только платформенная) (135 и 165 закрыты D39.131) |
|
||||
| Бэклог-строки | `docs/BACKLOG.md` строки 136 · 137 · **377** · **382** (⚠ 78 ЗАКРЫТА 10.09 актом `D39.232`) (⚠ испр. 05.09: **166 отсюда СНЯТА** — движковая половина оценки построена и опубликована лендингом `81a89e9`; открыта только платформенная) (135 и 165 закрыты D39.131) |
|
||||
| Контракт наружу | `14-api-contract/openapi.yaml` (⚠ **`CeilingBounds` РЕТИРОВАН лендингом формы заказа 06.09** — его место занял `RunOptions` с `chapters_left`/`affordable_chapters`/`verdict` и денежными границами; `Usage`); ПТ-35 |
|
||||
| ⚠ Запрет денег на экране — **ОТОЗВАН 05.09 (D39.196)**. Живым остаётся ПТ-35 в его четырёх пунктах: цены моделей · стоимость стадий · стоимость ВЫЗОВОВ · структура наших расходов. ⚠ И различение `D39.203`, без которого пункт про вызовы читается неверно: наружу идёт ДО-ВЫЗОВНАЯ ОЦЕНКА (резервация перед звонком), а запрет написан про СТОИМОСТЬ — что списано по факту; сеттлмент не выходит | D39.84; D39.100/К-8; ПТ-35; **D39.196**, эррата 05.09-а |
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue