From 84c686715fedffbfc6a02601d2c59abf5d4587d0 Mon Sep 17 00:00:00 2001 From: heaven Date: Mon, 24 Aug 2026 16:26:08 +0300 Subject: [PATCH] Address backlog rows by their stable id and the redrive dispatch by a verified token, dropping four line anchors that had already drifted --- docs/architecture/13-tech-debt-anchors.md | 2 +- docs/architecture/16-events-emitter.md | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/architecture/13-tech-debt-anchors.md b/docs/architecture/13-tech-debt-anchors.md index 5816f0e0..ebfa3d8c 100644 --- a/docs/architecture/13-tech-debt-anchors.md +++ b/docs/architecture/13-tech-debt-anchors.md @@ -201,7 +201,7 @@ backend/prompts/zh-ru/editor.md:6 — «Правь стиль: убирай ка ### [RESCOPE] (7) Протокол гендер-твиста D5.1 (дописка 49): «redrive есть, селективного by-until_ch пути нет» -Посылка «селективного пути нет» ОПРОВЕРГНУТА: селективная пере-редактура по изменению банка + смета ПОСТРОЕНЫ и живьём проверены. backend/internal/pipeline/repin.go:14-35 — «POINTWISE re-edit by key (pack-20 point 5, D39.42 п.5)»: bank-only сдвиг снапшота + неизменный content_hash → пере-пин юнита за $0, изменённые инъекции — платно; «The same predicate drives the ESTIMATE: projectRebill uses it» (смета «N units, ~$X»); встроено в штатный резюм — stagerun.go:87 (repinnable); согласие на пере-оплату — rebill.go:11-40 (D20.2-Q2). until_ch-апдейт = правка строки банка → двигается ТОЛЬКО memory_version → ровно этот путь (D39.42 п.5: «поздняя подпись и ЛЮБАЯ правка»; D39.45: «точечная ре-редактура по ключу с $0-пере-пином — построено, живьём проверено... 20 юнитов пере-пинены за $0 при bank-only-сдвиге»). При этом верно: tmctl redrive существует (cmd/tmctl/main.go:81-82, 214), но его селектор — только chapter/chunk/reason по ФЛАГНУТЫМ чанкам (status.go:564-582), until_ch-пути в НЁМ нет — селективность живёт в другом инструменте (translate-резюм + repin + rebill), и это by-design правильный носитель. +Посылка «селективного пути нет» ОПРОВЕРГНУТА: селективная пере-редактура по изменению банка + смета ПОСТРОЕНЫ и живьём проверены. backend/internal/pipeline/repin.go:14-35 — «POINTWISE re-edit by key (pack-20 point 5, D39.42 п.5)»: bank-only сдвиг снапшота + неизменный content_hash → пере-пин юнита за $0, изменённые инъекции — платно; «The same predicate drives the ESTIMATE: projectRebill uses it» (смета «N units, ~$X»); встроено в штатный резюм — stagerun.go:87 (repinnable); согласие на пере-оплату — rebill.go:11-40 (D20.2-Q2). until_ch-апдейт = правка строки банка → двигается ТОЛЬКО memory_version → ровно этот путь (D39.42 п.5: «поздняя подпись и ЛЮБАЯ правка»; D39.45: «точечная ре-редактура по ключу с $0-пере-пином — построено, живьём проверено... 20 юнитов пере-пинены за $0 при bank-only-сдвиге»). При этом верно: tmctl redrive существует (`cmd/tmctl/main.go:211`=`case "redrive":`), но его селектор — только chapter/chunk/reason по ФЛАГНУТЫМ чанкам (status.go:564-582), until_ch-пути в НЁМ нет — селективность живёт в другом инструменте (translate-резюм + repin + rebill), и это by-design правильный носитель. **Фикс/скоуп:** Пере-формулировать дописку в строке 49: тех-механизм «until_ch-апдейт → селективная пере-оплата затронутых юнитов + смета» УЖЕ построен (repin.go/rebill.go, D39.42 п.5, D39.45) — слова «селективный redrive» убрать (redrive — инструмент флагнутых чанков, не носитель). Остаток дописки — только операторский ПРОТОКОЛ-документ релиза D5.1 (последовательность: выставить until_ch у gender=hidden-терма → tmctl translate → согласие на rebill-смету; + курация 白凝冰 из строки 24), либо закрыть дописку явной ссылкой на D39.45. diff --git a/docs/architecture/16-events-emitter.md b/docs/architecture/16-events-emitter.md index e707b437..35eeb46f 100644 --- a/docs/architecture/16-events-emitter.md +++ b/docs/architecture/16-events-emitter.md @@ -16,7 +16,7 @@ **Что уже есть со стороны движка.** NDJSON-инфраструктура логов: `obs.NewLogger` пишет slog в **stderr**, `LOG_FORMAT=json` даёт JSONHandler, UTC-время (`backend/internal/obs/logging.go:15-31`); оси trace_id/book/chapter/chunk/stage/role навешиваются из контекста автоматически (`logging.go:41-54`). Деньги при стопе по потолку существуют только в тексте ошибки: `" (committed=$%.6f reserved=$%.6f, denied estimate=$%.6f, ch%d/chunk%d/%s)"` и `"pipeline: book USD ceiling reached ($%g)%s — %s or stop: %w"` / `"pipeline: daily USD ceiling reached ($%g)%s: %w"` с сентинелом `errReserveCeiling` (`backend/internal/pipeline/stagerun.go:489-513`, сентинел — `escalation.go:49`). Trace id чеканится на каждый вызов в `cmd/tmctl/main.go:67-70` — это сегодняшний кандидат в `engine_run_id` (так и записано платформой, `platform/internal/ingest/events.go:75`). -**Что эмиттер НЕ решает** (не тащить в пак): реконсилятор и свип — построены платформой, строки 138·139 закрыты (D39.123 п.3) · write-ahead intent / `uncertain`-эскроу / `closing` — отдельная строка 136 (`docs/PROGRESS.md:85`) · пиннинг версии бинаря на прогон — «исполняется и резюмом — PD-143/134 закрыты» (D39.123 п.3) · движковая оценка $/глава — строка 166 (`docs/PROGRESS.md:114`) · тейлер/декодер платформы — уже построены (пакет `platform/internal/ingest/`), эмиттер пишет ПОД их контракт. +**Что эмиттер НЕ решает** (не тащить в пак): реконсилятор и свип — построены платформой, строки 138·139 закрыты (D39.123 п.3) · write-ahead intent / `uncertain`-эскроу / `closing` — отдельная строка 136 бэклога · пиннинг версии бинаря на прогон — «исполняется и резюмом — PD-143/134 закрыты» (D39.123 п.3) · движковая оценка $/глава — строка 166 бэклога · тейлер/декодер платформы — уже построены (пакет `platform/internal/ingest/`), эмиттер пишет ПОД их контракт. ## 2. Ратифицированная форма (D39.106 · research/25) @@ -105,7 +105,7 @@ ## 6. Чек-лист входного чтения эмиттер-сессии -Ратифицированный список — D39.123 п.4: «промт эмиттера (103 + деньги шва; читать PD-95/105/79/99/107/60/61 + D39.106 + новые 165)»; продублирован в CURRENT-STATE (`docs/PROGRESS.md:5`). +Ратифицированный список — D39.123 п.4: «промт эмиттера (103 + деньги шва; читать PD-95/105/79/99/107/60/61 + D39.106 + новые 165)»; продублирован в CURRENT-STATE. | # | Что | Где | Зачем | |---|---|---|---|