Record that collapsing nav targets keeps the text whole but coarsens the cut, and why entering the xhtml splitter at the end of a pack is a bad trade
This commit is contained in:
parent
5c7a8ca4b3
commit
e8ec9014f6
1 changed files with 47 additions and 1 deletions
|
|
@ -19,7 +19,7 @@
|
|||
> - **Курс:** этапы ОБЩНОСТЬ · КАЧЕСТВО БАНКА · ПАКЕТ-ЧЕКЕРОВ · ФРОНТ-ЭРА · шов/платформа/движковые блокеры — ПРОЙДЕНЫ (D39.59–123). Хвосты курса живут строками: 16 (полная цена холодного старта; edit-волна на малых прогонах отработала и оплачена — 58 вызовов волновым драйвером 23–25.07 плюс 648 до драйвера, счёт по леджерам `~/books/gu-zhenren/**/*.db`) · coldrun-b фаза C заморожена чекпойнтом легитимно (D39.86; эталон денег/поведения — coldrun-a, read-only); развилка 0731 решена и исполнена (D39.87/91, код `553f1a3`).
|
||||
> - **Горизонт (D39.62/67, освежён D39.95):** **ДОБОР ИДЕАЛА** (первым прогоном: оси голоса 24 · авто-режим · цена 16; остаток арбитража банка = рецензент спорных кластеров при ре-пробе — D39.102). ⚠ **Испр. 05.09 (D39.198 п.5):** прежняя редакция держала здесь ТРИ предусловия, снятых владельцем, — жильцы ролей (149: разморозка ничего не разблокирует, пока идут доработки) · веса K1–K12 (13а: веса не нужны, мерить по узлам) · вне-претрейн чекпоинт (55: прогоняем на тех же текстах, оговорка — ограничение ВЫВОДА, а не требование новой книги) → ВТОРАЯ ПАРА живьём (ja→ru; преп 81) → МАСШТАБ → пилот Ф2.5 (гейт резюме-строки 80; строки 62–68, 85) → Ф3 ридер-IDE (69–71). **Стоячие:** ToS-триггер 25.10 · Ш-2 до go1.27 (⚠ + x/text Unicode 17 тем же тулчейном — строка 119, реестр §Б-108 справочника якорей) · платные прогоны разблокированы (проба провода — D39.97, конфиги 112 залендены).
|
||||
> - **Стек (полная карта роль→модель→конфиг→квирки — [STACK.md](STACK.md), D39.126):** draft deepseek-v4-flash thinking-ON `low` **⚠0731** → терминолог (та же модель) → editor deepseek-v4-pro БИЛИНГВ ИНТЕРИМ (топология ПОДТВЕРЖДЕНА при неразличимости жильцов — D39.117; закон-блок ОБЯЗАТЕЛЕН и ВНЕСЁН — D39.104 п.2, вайр-батч принят D39.199; glm-5 резерв; вахта маппинга эффорта pro — §Б-108) → судья gemini (Ф2, в движке НЕ построен — строка 33); канал B Mistral+grok; ~$0.85/ранобэ (D30.4) — ⚠ **ТРИГГЕР ПЕРЕ-КАЛИБРОВКИ СРАБОТАЛ 31.08** (испр. 02.09): платный прогон отработал и дал собственную оценку движка `projected_book_usd = 1.1377277707` на десяти главах при куплённых $0.436110; число D30.4 держать как июльское. ⚠ **Вендор-факты 13–15.08 (пере-пин ИСПОЛНЕН и ПРИНЯТ, D39.137):** таблица цен запинена ПИКОМ (flash 0.44/1.32 · pro 1.32/3.96/кэш-хит 0.044 за 1M; счёт шиппинг-c1 = 100% DeepSeek ⇒ ×4.2–4.4 в пике / ×2.1–2.2 в долине — замер по трём прогонам); ⚠ **испр. 05.09: носители про эффорт `pro` БОЛЬШЕ НЕ ПРОТИВОРЕЧАТ** — и квирки (§3г), и `STACK.md` говорят одно: ручка ДОХОДИТ до модели с вендор-апдейта 13.08. Живой остаток один — вендор-сверка маппинга и ВЕЛИЧИНА эффекта, строка **237**(б); ⚠ ВЕСА pro сменились под тем же слагом (V4-Pro-0813, класс D39.61) — вахта-риг готов (остаток 172); покупки фазы Д на deepseek до 16.08 16:00 UTC — по старым ценам. ⚠ **ВЕСЬ банковый контур (банкнота+терминолог+классификатор) ВКЛЮЧЁН в shipping-c1 с `b8154cd`** — `enabled: true` у обоих гейтов и `classify_types: true`, бюджеты по $1.00 (прежде жил только ран-локальным конфигом книги; строка 140 — ⛔ его единственный вход `mining.contrast_path` в git ОТСУТСТВУЕТ, развёртывание обязано положить артефакт, иначе контур не исполняется вовсе, носитель — строка 251; сверка STACK.md 09.08 — факт шире прежней декларации «одна банкнота»); эскалация в shipping за `budget_usd: 0` (STACK.md §примечания).
|
||||
> - **ЕДИНЫЙ БЭКЛОГ — секция «Бэклог» ниже** (одна таблица, единственный трекер; каждая петля обязана иметь диспозицию: решено / отложено-с-записью / отклонено; ведёт оркестратор). **СЧЁТ ОЧЕРЕДИ на 05.09 (скриптом по таблице — `python3 docs/scripts/counts.py`; обновлять при каждом лендинге):** всего **213** строк · зона бэкенд **104** строго / **146** широко (⚠ колонки счётчик читает С КОНЦА — испр. D39.116) · **блокеров очереди 0** (236 закрыта D39.175), платные прогоны разблокированы · «скоро» **86** (перечень — грепом по таблице, рукописный список снят D39.126) · гейт-строка эксп-22: 153 (плюс 150 — руки владельца; ⚠ 55 из гейтов СНЯТА — D39.198 п.5); строка 5 — остаток гейчен ре-пробой 74, носитель события теперь строка 188 (аудит D39.140); остальное «когда-нибудь». ⚠ Счёт — НИЖНЯЯ граница долга, не потолок (разбор — легенда таблицы ниже).
|
||||
> - **ЕДИНЫЙ БЭКЛОГ — секция «Бэклог» ниже** (одна таблица, единственный трекер; каждая петля обязана иметь диспозицию: решено / отложено-с-записью / отклонено; ведёт оркестратор). **СЧЁТ ОЧЕРЕДИ на 05.09 (скриптом по таблице — `python3 docs/scripts/counts.py`; обновлять при каждом лендинге):** всего **214** строк · зона бэкенд **105** строго / **147** широко (⚠ колонки счётчик читает С КОНЦА — испр. D39.116) · **блокеров очереди 0** (236 закрыта D39.175), платные прогоны разблокированы · «скоро» **86** (перечень — грепом по таблице, рукописный список снят D39.126) · гейт-строка эксп-22: 153 (плюс 150 — руки владельца; ⚠ 55 из гейтов СНЯТА — D39.198 п.5); строка 5 — остаток гейчен ре-пробой 74, носитель события теперь строка 188 (аудит D39.140); остальное «когда-нибудь». ⚠ Счёт — НИЖНЯЯ граница долга, не потолок (разбор — легенда таблицы ниже).
|
||||
> - Архивы хроники: `archive/PROGRESS-2026-07-04-10.md` (D31) · `-10-13` (D39.6-гигиена) · `-13-25` (стройка паков 11–16, rerun2) · **`-25-31` (паки 17–20 · мини-прогон · полигон-пакеты 5–8 · ToS · холодный прогон; D39.26–58)** · **`-08-01-02` (сессии №9/№10: общность · качество банка · coldrun-b · открытие фронта/платформы; D39.59–90, срез D39.105)** · **`-08-02-04` (сессии №11–№13: ручки эффорта · стандарты · контракт API · платформа P0 · банк-арбитраж; D39.91–105 + снимок шапки эры №15)** · `-08-04-09` (пинги закрытых паков эры №15) · **`-08-14-15` (закрытые бэкенд-записи №16–17: эмиттер шва · migrate · пере-пин DeepSeek; вынесено D39.139)**. Записи ниже — живой хвост (№16+, эра D39.124+; подрезка D39.139).
|
||||
|
||||
## 📌 СОСТОЯНИЕ ПАКОВ
|
||||
|
|
@ -352,6 +352,7 @@
|
|||
| 299 | ⛔ **ИМЯ В GO-КОММЕНТАРИИ, КОТОРОЕ НИ ВО ЧТО НЕ РАЗРЕШАЕТСЯ, — И НИЧТО ЭТОГО НЕ ЛОВИТ.** ⭐ **ЗАМЕР 05.09, полностью меняющий форму ДОРОГОЙ половины (той, что сверяет имя с каталогом мутаций): она обязана писать ФАЙЛ, а не читать `stdout`.** Полный прогон каталога дал: несущих верхнеуровневых тестов **194** из 1213 тест-функций движка (**16,0 %** батареи), и **139 записей из 197 пинятся РОВНО ОДНИМ тестом** — то есть краснота атрибутируется однозначно, и долговременная запись «какие тесты несущие» реально получается. ⛔ **Но тул обрезает список имён на четырёх и печатает `+N more` — так усечены 9 записей из 197, и механизм, читающий `stdout`, насчитал бы 178 вместо 194 И НЕ УЗНАЛ БЫ ОБ ЭТОМ.** Это тот же класс «прибор ответил на свой вопрос»: величина ВЫЧИСЛЯЕТСЯ сегодня, но в поток приезжает УСЕЧЁННОЙ. ⇒ вход механизма — `-logs`, не вывод. Точный список имён воспроизводится пере-прогоном каталога с `-logs`; сохранять его отдельным артефактом не нужно. Два живых носителя, найдены верификацией 05.09 (`D39.207` п.3): **(а)** `backend/internal/runevents/runevents.go:187` цитирует `docs/BACKEND_MONEYSTOP_SESSION_PROMPT.md:78`, а файл УДАЛЁН — промт уведён в архив тем же коммитом, что писал акт, и цитируемая фраза лежит в архивной копии на другой строке; **(б)** `backend/internal/config/internal_call.go:11` и `backend/internal/pipeline/live_reprobe_test.go:14` называют сторожами тесты `TestSyntheticStageSeamIsSingle` и `TestProviderEgressSeamIsSingle`, которых в дереве НЕТ — инварианты при этом реально сторожатся вет-анализаторами `StageSeam`/`EgressSeam` (`backend/internal/archguard/archguard.go:80,377`), то есть гарантия цела, а назначенный ей сторож ВЫДУМАН. Замер верификатора: из 2026 упомянутых в Go имён `Test…` определены 2012; из восьми неразрешающихся четыре — не дефекты (надгробия и иллюстрация), два — мелочь, два — эти. ⇒ **дешёвая половина открытого вопроса `D39.202` п.9: не «доказал ли каталог, что названный тест умеет падать» (дорого, требует интеграции с `tmmutate`), а «РАЗРЕШАЕТСЯ ли названное имя вообще» — это греп, и сегодня он находит два дефекта.** ⚠ `counts.py --lint` этого класса не видит по построению: он читает доки, а не код. ⚠⚠ **ДВА ПРАВИЛА, БЕЗ КОТОРЫХ ГЕЙТ ВЫКЛЮЧАТ НА ВТОРОЙ ДЕНЬ** (принесены верификатором вместе с находкой): **(1)** разрешением считается и ПРЕФИКС — доки и комментарии цитируют имя усечённым, как греп-цель; **(2)** НАДГРОБИЯ не дефект — комментарий, прямым текстом говорящий «удалён/заменён», законен, как и иллюстративное имя в примере. Замер, обосновывающий оба: из восьми неразрешающихся имён СЕГОДНЯ четыре — надгробия и иллюстрация, два — усечение в шапке над функцией, и лишь два — настоящие выдуманные сторожа. Гейт без этих правил краснеет 8 из 8, то есть врёт вчетверо, и его погасят — а гейт умирает не отключением, а вытеснением из привычки (`D39.202` п.3-бис) | бэкенд | скоро | грепом: имя `Test…` и `<док>.md:<строка>` в Go разрешаются, иначе красно | **D39.207**, D39.202 |
|
||||
| 300 | ⛔ **РЕПО-ШИРОКИЙ СТОРОЖ НЕ ДОТЯГИВАЕТСЯ ДО СОСЕДНЕГО ВОРКРИ НА ДРУГОЙ ВЕТКЕ — и стенд от этого УЖЕ СГНИЛ.** ⚠ Замер 05.09, вторая половина: снять пин манифеста стенд-конфигами удалось для **ОДНОГО исходника из восьми**; семь падают, и ни одно падение не про структурный пак. Причины — ретированные в `main` вещи, живые в дереве `polygon`: плейсхолдер `{{genre}}` (ретирован `D39.138` п.2в) — в моём дереве `grep -rln '{{genre}}' backend/prompts/` ПУСТ, в соседнем живёт в ШЕСТИ файлах промтов, и падают на нём 6 конфигов из 8; поля `stm_depth`/`overlap_tokens`, которых больше нет в `config.ContextAssembly` — 1 из 8; ключи `mined_delta:`/`mined_rejects:` (ретированы `D39.156` п.3) — **17 конфигов из 31**. ⭐ **Тест `genre_retired_test.go:46` предсказал этот случай дословно** («should be caught by the repository that retired it, not by a paid run») — и поймали его действительно бесплатно, но **сторож не дотянулся до соседней ветки**, где ретированное живо. ⇒ общая форма дефекта: ретирование, проведённое репо-широким гейтом, НЕ распространяется на воркри другой ветки, и стенд тихо остаётся в прошлом. **ЧАСТНЫЙ СЛУЧАЙ ТОГО ЖЕ КОРНЯ — ДАННЫЕ ПАР-ПАКА В ДВУХ ВЕТКАХ.** Замер бэкенд-сессии 05.09 по 31 конфигу `book.yaml` стенда 蛊真人: у **20** `langpack_root` указывает в СОСЕДНЕЕ РАБОЧЕЕ ДЕРЕВО `/home/ubuntu/projects/textmachine` — а оно на ветке **`polygon`**; у 9 — в `main`; 2 не объявляют его вовсе. Пока каждая ветка собирается из своего дерева, расхождения не видно. ⚠ **Структурный пак (`CHAPTER_STRUCTURE_SESSION_PROMPT.md`) выносит `marker`/`units` из `zh-ru/heading.txt` в данные ИСТОЧНИКА и учит `parseHeading` ОТВЕРГАТЬ эти ключи с переходным сообщением** ⇒ старый файл, оставшийся на `polygon`, станет невалидным, и двадцать конфигов не загрузятся вовсе (загрузка пар-пака FAIL-LOUD). **Выстрелит НЕ при лендинге в `main`, а в момент, когда полигон вольёт `main` в свою ветку** — то есть цена назначена чужой зоне и в чужой момент. ⇒ заказ: перед мержем полигон либо снимает `marker`/`units` из своего `heading.txt`, либо переводит `langpack_root` своих конфигов на `main`. ⚠ Второе дешевле и, возможно, правильнее по существу: **каталоги `configs/langpacks` в обоих деревьях сегодня БАЙТ-В-БАЙТ идентичны** (`diff -rq` пуст, sha256 `heading.txt` совпадают), а комментарии в конфигах, утверждающие «`ru/` есть только здесь», ПРОТУХЛИ — класс строки 299. То есть двадцать конфигов смотрят в чужую ветку по причине, которой больше нет | полигон | скоро (до мержа main в polygon) | конфиги грузятся после мержа, либо `langpack_root` переведён | **D39.207** |
|
||||
| 301 | ⛔ **`--max-units` НЕ УМЕЕТ СКАЗАТЬ «ДОРАБОТАЙ ПЕРЕНЕСЁННОЕ И НЕ НАЧИНАЙ НОВОГО», И ЧЕЛОВЕК ЗА СВОИ ДЕНЬГИ ПОЛУЧАЕТ НЕ ТУ РАБОТУ.** Флаг бюджетирует N НОВЫХ стартов, а carried-юниты (задрафченные прошлым прогоном и не отгруженные) движок допускает СВЕРХ гранта, до N штук: `granted()` их не считает (`backend/internal/pipeline/volume.go:396-407`), и собственный тест движка это фиксирует — под `--max-units 1` при одном carried выходит `Delivered=2, Carried=1` (`volume_test.go:721`). ⇒ прогон, оборвавшийся МЕЖДУ волнами (стоп на подпись банка, деплой, краш), при респауне получает `--max-units = заказ − доставлено`, и движок оплачивает ЧЕРНОВИКИ глав, которых человек НЕ ЗАКАЗЫВАЛ, раньше редактуры заказанных. ⚠ **Это НЕ перерасход** — `--ceiling-usd` держит сумму; ломается ровно обещание «вы купили N»: за те же деньги приходит другая работа. Выразить нужное платформа не может по построению: вычесть carried значит обнулить грант, а ноль для движка = «без границы» (`planVolume` при `MaxUnits <= 0` возвращает `nil`, `volume.go:321`). ⇒ заказ: словарь скоупа обязан различать «сколько НОВЫХ начинать» и «сколько всего допускать». Живая половина **эрраты 03.09-а** (перенос юнита вне гранта, семантика НЕ ратифицирована, слово владельца «подумаем»), но со следствием более острым, чем записано в ноте: там был перерасход единиц, здесь — подмена предмета покупки | бэкенд+платформа | скоро | флагом выражается «ничего нового не начинать»; пин на респауне между волнами | **D39.207** |
|
||||
| 302 | **РЕЗКА xhtml ПО ЯКОРЯМ `nav`: текст цел, ГРАНУЛЯРНОСТЬ ТЕРЯЕТСЯ.** Массовая форма EPUB — несколько глав в ОДНОМ документе, разделённых якорями, и `nav` объявляет на них отдельные цели. Структурный пак 1 такие цели СХЛОПЫВАЕТ: одна глава вместо трёх, текст не теряется (формулировка бэкенд-сессии 05.09: «текст цел, гранулярность потеряна»). ⚠ **Ложь при этом уже не едет** — тем же паком ратифицировано: схлопнулась хоть одна цель ⇒ книга НЕ `declared`, а `delimited`, плюс счёт `targets collapsed: N` в WARN. То есть провенанс честен, а разрез груб. ⇒ заказ: резать документ по якорям целей. ⛔ **Почему НЕ сделано паком 1 и почему это дорого:** это единственное место, трогающее `extractXHTML`, у которого **четыре пина байт-паритета** (`ingest_test.go:323, 359, 423, 467` — void-теги, несбалансированный ruby, raw-text-элементы, голый амперсанд), и ошибка там ТИХАЯ. Заходить в него в конце пака, ради гранулярности, при живом гейте разреза — плохой размен. ⚠ Строкой закрывается ГРАНУЛЯРНОСТЬ, а не провенанс: продать такую книгу по главам платформа и так не предложит | бэкенд | когда-нибудь (после пака 2) | книга с тремя якорями в одном документе даёт три главы; четыре пина байт-паритета целы | **D39.207** |
|
||||
|
||||
*(Указатели на архив-слайсы хроники — бюллетенем «Архивы хроники» в CURRENT-STATE; здесь копий нет.)*
|
||||
|
||||
|
|
@ -388,6 +389,51 @@
|
|||
> адверсариальный проход), `backend/docs/DISCLOSURE_LAW_DESIGN.md`, `backend/docs/MONEY_HONESTY_PLAN-NOTE.md`;
|
||||
> промт — `archive/prompts/BACKEND_MONEY_HONESTY_SESSION_PROMPT.md`.
|
||||
|
||||
### 05.09 — ОТЧЁТ пака «ФОРМАТЫ И ЧЕСТНЫЙ СЛОВАРЬ» (сессия `textmachine-main-fe`, промт `CHAPTER_STRUCTURE_SESSION_PROMPT.md`)
|
||||
|
||||
**Полный отчёт — `backend/docs/CHAPTER_STRUCTURE_REPORT.md`.** Здесь только несущее. Денег $0.
|
||||
|
||||
**Гейт §3 взят по ветке (а) на ВОСЬМИ исходниках из восьми:** id глав и номера байт-в-байт, `structure` не
|
||||
изменился. Двинулось ровно заказанное — `key` и сегмент `cutTag` внутри unit-id при неподвижном префиксе id
|
||||
главы (`c3aa4cbbb53de134:d4fb75e2:0` → `c3aa4cbbb53de134:1b30b1dd:0`). Батарея: `make battery` EXIT 0, 19
|
||||
пакетов, 0 FAIL, линтер 0 issues, скипов 3 — те же три, что и до правок.
|
||||
|
||||
**Построено:** данные структуры ИСТОЧНИКА со своим загрузчиком и лестницей (файл языка → CJK-дефолт по
|
||||
скрипту → честный `none`) · компонент `Structure` в `cutInputs` и в ключе манифеста · четвёртое значение
|
||||
`delimited` и КОНКУРЕНЦИЯ свидетелей вместо сложения · EPUB `nav`/NCX с правилами прикрепления и счётами ·
|
||||
`title_raw` аддитивно · бамп `chunkerVersion` v6→v7 с пере-захватом голдена.
|
||||
|
||||
⛔ **Дрейф ingest↔chunker был ЖИВОЙ, а не гипотетический** (замерено до кода): ингест резал по пяти юнитам
|
||||
`章节節回話` из embedded `cjk-section.txt`, чанкер — по четырём `章节節回` из пар-файла, и комментарий
|
||||
`ingest.go`, утверждавший «ONE source, no ingest↔chunker byte-drift», описывал намерение, а не код. Пак его
|
||||
ЗАКРЫЛ, а не предотвратил: `cjk-section.txt` не тронут ни строкой, чанкер начал читать ЕГО.
|
||||
|
||||
⛔ **ГЛАВНОЕ, ЧТО СТОИТ ДОРОЖЕ КОДА — заказ содержал ЦИКЛ, и существующий тест его не ловил.** Решить «есть
|
||||
ли шапки» нельзя до нейтрализации `\f`: шапка сразу за ним лежит на ОДНОЙ строке с прозой предыдущей главы и
|
||||
отвергается двумя предикатами сразу. При наивном порядке глава теряется МОЛЧА, а `doc.Structure` остаётся
|
||||
ВЕРНЫМ — то есть тест, проверяющий только ярлык, проходит над потерей. Класс `D39.205`. Предъявлено
|
||||
посадкой: наивный порядок красит `TestTXTHeaderRightAfterAFormFeedIsNotLost` («chapters = 2, want 3»), а тест
|
||||
провенанса при этом ЗЕЛЁН.
|
||||
|
||||
⚠ **Шесть находок до кода, все приняты и внесены в промт** (`24f02bb` · `23b00a3` · `5a502e7` · `cd55329`).
|
||||
Кроме цикла и дрейфа: гейт был недостижим по построению (требовал байт-в-байт манифест, а пак сам заказывает
|
||||
сдвиг `cutTag`); `langpack_root` 20 конфигов из 31 указывает в дерево ветки `polygon`; **стенд отстал от
|
||||
движка — стенд-конфиг даёт манифест ровно для 1 исходника из 8** (`{{genre}}` ретирован и жив в шести промтах
|
||||
polygon, `mined_delta`/`mined_rejects` — в 17 конфигах из 31, поля `stm_depth`/`overlap_tokens` исчезли).
|
||||
|
||||
⚠ **Норма, купленная сменой трижды за день: счёт по ИМЕНИ и счёт по СОДЕРЖИМОМУ — разные замеры, и первый
|
||||
молча даёт зелень.** Шапки книги уникальны, а НОМЕРА повторяются шестикратно (первый прогон дал «повторов 0»
|
||||
и был неверен); файлы разноимённы, а байты те же (исходников восемь, не девять). Меряй хешем, не basename.
|
||||
|
||||
⚠ **Выжившая посадка, записанная с аргументом:** переворот сортировки целей `nav` не покрасил ничего —
|
||||
`starts` читается как МНОЖЕСТВО, группировка идёт по spine. Комментарий поправлен на правду вместо красивого
|
||||
утверждения; сортировка оставлена как контракт поля, а не как несущее свойство.
|
||||
|
||||
**Каталог мутаций 201 → 204.** Две записи целили в предикаты, которые §1 приказал УДАЛИТЬ, и пере-нацелены на
|
||||
свойства, занявшие их место; три новые — на правила формата. Все пять прогнаны: 5 RED, 0 неожиданных.
|
||||
⚠ Полный прогон 201 записи НЕ делался (124 из них гоняют `./internal/pipeline/` по ~145 с); вместо него
|
||||
механически проверено, что у всех 204 записей цель ЖИВА.
|
||||
|
||||
### 04.09 — ОТЧЁТ вайр-батча «род · экран цели · заголовки инъекций» (сессия `textmachine-main-7e`, промт `BACKEND_WIREBATCH_SESSION_PROMPT.md`)
|
||||
|
||||
> **ПЕРВОЙ СТРОКОЙ, потому что промт этого требует: `internal/lang/data/` НЕ ТРОНУТ НИ БАЙТОМ.** Пункт 3 сделан снятием РЕНДЕРА в Go. Предъявление, а не утверждение: `diff -r <(git archive HEAD backend/internal/lang | tar -xO) …` идентично, и `tmctl manifest --json` из HEAD и из дерева на `example/book.yaml` дают ТОТ ЖЕ `manifest_key` `e996b9d4f129006e9faa6237fb1635a82e32c06c056b195072fae15f582021f6` и ТОТ ЖЕ `unit.id` `f8ad8c8f114997c5:3d2213f2:0` (средний сегмент — `cutTag`). ⇒ пере-чеканки `unit.id` нет, `recut` у платформы не сработает, `unit_resolutions` книги параллельного платного прогона целы.
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue