books/gu-zhenren/door-to-file-b/live-journal.md

36 lines
12 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Живой журнал платного прогона B (§4.4: «время · что увидел · чего ожидал · что это значит»)
Ведётся ПО ХОДУ, а не в разборе. Прогон `run_Q6DSXGS7TW52TFNO`, книга `bk_NH6275ZIRFFTLZHG`,
старт 19:48:38 UTC 11.09 (пятница, ОФФ-ПИК DeepSeek).
| Время (UTC) | Что увидел | Чего ожидал по чтению кода | Что это значит |
|---|---|---|---|
| 19:48:38 | `pre-flight: backed up the project DB … integrity_check green` | бэкап на старте попытки | ⚠ это НЕ мой `TM_PLATFORM_BACKUP_DIR`, а собственный пре-флайт ДВИЖКА, в каталог книги. Два разных механизма восстановления, и я чуть не приписала один другому |
| 19:48:38 | `glossary materialized … entries=0`, `bank export refreshed … terms=0` | пустой банк на холодной книге | холодность подтверждена ИЗНУТРИ движка, а не только тем, что книга новая |
| 19:48:38 | `draft wave started snapshot=fef36e1dd642 chunks=6 workers=1` | 6 чанков из манифеста | сошлось с пре-регом §1.2; **workers=1** — волна последовательная, поэтому «параллельная первая стадия» из гипотез не реализуется |
| 19:48:38 | `calling model deepseek-v4-flash max_tokens=8496 estimate_usd=0.012085` | флор 8000 + `bankTokenBudget` 496 | ровно как у A (id 1) |
| 19:49:23 | ⛔ **ch1/chunk0: `disposition=flagged reason=empty`, 44.8 s, $0.012048 — выброшено** | мина квирков §катовер п.12 | **ЗНАК ДЕНЕЖНОЙ ДЫРЫ ВОСПРОИЗВЁЛСЯ НА ПЕРВОМ ЖЕ ЮНИТЕ** |
| 19:49:23 | `stage flagged, regenerating with a larger budget next_max_tokens=16992` → $0.017408 | удвоение потолка, лечение есть | путь не рвётся, он дорожает вдвое (A: 4 из 4 таких вылечились) |
| 19:49:23 | ⚠ **`WARN priced by a model that did not answer: requested=deepseek-v4-flash answered=deepseek-flash priced_by=requested`** | у A этого WARN НЕ БЫЛО | ряд **413** получил ЖИВОГО сторожа: движок теперь сам кричит, что считает нас по слагу, которого нет в его каталоге. Это одна из 118 правок между A и B |
| 19:51:02 | ⛔ **ch1/chunk1: снова `reason=empty`, 40.8 s, $0.011749 — выброшено**, регенерация 16992 | — | **2 из 2 черновых чанков выброшены с первой попытки.** У A было 3 из 6. Если доля удержится, черновая волна встанет вдвое дороже сметы |
| 19:52:12 | ⛔ ch2/chunk0 `reason=empty` $0.011753 выброшено → 16992 → $0.003514 | — | 3 из 3 |
| 19:52:54 | ✅ ch2/chunk1 прошёл С ПЕРВОЙ попытки, $0.006970 | — | единственный чистый чанк волны |
| 19:53:36 | ⛔ ch3/chunk0 **`reason=length`** (не `empty`!) $0.011786 выброшено → 16992 → $0.018276 | оба флага задокументированы: `empty` — размышление съело потолок, `length` — текст оборван | **ОБА КЛАССА мины встретились в одном прогоне**, как у A |
| 19:55:25 | ⛔ ch3/chunk1 `reason=empty` $0.011472 выброшено → 16992 → $0.008145 | — | **ИТОГ ЧЕРНОВОЙ ВОЛНЫ: 5 выброшенных первых попыток из 6 чанков.** У прогона A было 3 из 6. Доля ВЫШЕ, знак тот же |
| 19:55:55 | `bank-mining: draft-side proposals folded surfaces=66` | у A было 69 предложенных + 1 предъявленная = 70 | банк-контур начался; поверхностей 66 против 69 — черновики РАЗНЫЕ, и это ожидаемо |
| — | ⚠ **WARN о слаге повторяется на КАЖДОМ вызове** (`requested=deepseek-v4-flash answered=deepseek-flash priced_by=requested`) | у прогона A этого WARN не было вовсе | ряд **413** получил живого сторожа между A и B; цена считается по слагу, которого нет в каталоге ответившего |
| 19:56:37 | ⛔ **терминолог-классификатор batch=0: `asked=22 answered=4`, `reason=length`, $0.012646 ОПЛАЧЕНО** | у бэнк-ролей нет ручки эффорта (бэклог 104) ⇒ они всегда едут вендор-дефолтом `high` | 18 термов из 22 остались без машинного типа |
| 19:57:30 | ⛔ **batch=2: `asked=24 answered=0`, `reason=empty`, $0.012133 ОПЛАЧЕНО.** WARN: «a paid batch came back with an EMPTY completion; its terms keep the draft heuristic type and produce no gender» | — | **42 терма из 66 остались без классификации, и оба провальных батча ОПЛАЧЕНЫ. Регенерации у бэнк-ролей НЕТ** — в отличие от черновой стадии, где движок удваивает потолок |
| 19:57:30 | ⚠ **Контроль по прогону A: у него классификатор ответил 23/23, 21/21, 25/25 — все три батча чисто.** | — | **это НЕ известное поведение. У A ноль провальных батчей, у B два из трёх.** Атрибуции нет: между A и B 118 коммитов, а у DeepSeek разброс размышления ×163 при побайтно одном входе (квирки п.2) |
| 19:58:23 | ⛔ **Итоговая строка стадии: `classify_batches_dropped=0 unanswered=0 bad_lines=0 consolidated=66 declined=0`** | ожидал, что итог назовёт два пустых батча | **СТРОКА-ИТОГ, которую читатель примет за вердикт стадии, ГОВОРИТ, ЧТО ВСЁ ЧИСТО.** Кандидат в клетку «прибор смолчал» §4.6 — проверить кодом, о чём именно эти счётчики |
| 19:58:23 | ⚠ новый гигиенический WARN: «name/place rows carry a translated rendering — a label/rendering mismatch», rows=13 | у A такого WARN в журнале нет | ещё один сторож, появившийся между A и B |
| 19:58:23 | **БАНК-СТОП: exit 3, `awaiting_bank`, `surfaces=66`, `terms=0`** | пре-рег узел 10 | ✅ узел наступил; ряд 224 воспроизведён (проекция банка видит 0 ровно тогда, когда экран открыт ради 66) |
| 22:59 | подпись двух термов через дверь правок: preview → на диске НИЧЕГО (проверено до и после), apply → `mined-delta.yaml` 906 байт | пре-рег узел 12 | ✅ оба состояния предъявлены файлом, а не экраном |
| — | ⛔ **РАЗБОР СТРОКИ-ИТОГА ПО КОДУ (`internal/pipeline/terminologist.go:420,616,620`): счётчик НЕ ЛЖЁТ, он НЕ СУЩЕСТВУЕТ.** `ClassifyBatchesDropped = crun.dropped` считает батчи, выброшенные СВОИМ БЮДЖЕТОМ («its OWN budget cut a pass»), а не оплаченные батчи, вернувшиеся пустыми. `unanswered`/`bad_lines` итоговой строки принадлежат РЕНДЕР-проходу, не классификатору. ⇒ **у стадии нет НИ ОДНОГО счётчика доли ответов классификатора**, и единственный носитель факта — WARN посреди прохода. Бюджет тут ни при чём: `classify_budget_usd: 1.00`, потрачено $0.029749 | — | **наблюдаемость приоритета №1 имеет дыру ровно там, где стадия отчитывается о себе** |
| 20:00:37 | ⭐⭐ **ПОПРАВКА К СОБСТВЕННОЙ ЗАПИСИ, И ОНА МЕНЯЕТ КЛАСС НАХОДКИ.** На резюме (попытка 2) тот же классификатор ответил **22/22 · 19/19 · 24/24 — все три батча чисто.** Та же книга, тот же движок, тот же конфиг, четыре минуты спустя. | — | ⇒ **провал попытки 1 был СТОХАСТИЧЕСКИМ, а не регрессией.** Писать «регрессия между A и B» было бы верным результатом при неверной гипотезе. Настоящая находка ОСТРЕЕ: две стадии одного движка встречают ОДНУ И ТУ ЖЕ задокументированную вендорскую мину (разброс размышления ×163 на побайтно одном входе, квирки п.2) — у ЧЕРНОВОЙ есть лекарство (удвоение потолка) и WARN, у БЭНК-РОЛИ нет ни лекарства, ни счётчика. Цена на попытке 1: **$0.024779 и 42 терма из 66 без машинного типа** |
| 20:01:25 | `terminology finished … consolidated=65 reclassified=7 classify_cost_usd=0.015564` | — | второй заход стоил $0.033793 (рендер $0.018229 + классификация $0.015564) и пере-классифицировал 7 термов |
| 20:01:26 | `edit wave started snapshot=9ae4e88aa354 units=4 workers=1`, первый вызов `deepseek-v4-pro max_tokens=16000 estimate_usd=0.068839` | у A редактор стоил $0.230 из $0.419 | дорогая стадия началась; снапшот редактора ОТЛИЧАЕТСЯ от черновикового (`fef36e1dd642`) — ось `wave_selection` будет непустой на обеих волнах |
| 20:02:26 | `still waiting for the provider on a call in flight … waited=1m0s attempt_deadline=15m20s` | латентность `pro` у A доходила до 249 с | движок сам печатает вахту по вызову — у зависания появляется цвет |
| — | ⛔⛔ **ЛЕКАРСТВО ОТ МИНЫ ЕСТЬ, И БЭНК-РОЛИ НА НЕГО НЕ ЗАВЕДЕНЫ — предъявлено КОДОМ, а не догадкой.** Регенерация живёт в `runStage` (`internal/pipeline/stagerun.go:39`), и там её ДВЕ: «regenerating with less thinking at the SAME budget» (ручка `lower_effort_on_empty`, лендится ВЫКЛЮЧЕННОЙ, `D39.251`) и «stage flagged, regenerating with a larger budget» (`stagerun.go:235`, работает). Бэнк-роли идут мимо: `runBankAttempt` зовёт `r.runAttempt(...)` НАПРЯМУЮ (`internal/pipeline/terminologist.go:832`), то есть без `runStage` и без обеих ветвей лечения. Комментарий рядом объясняет, почему у них нет обязательного ожидания, — про лечение он молчит | черновая стадия лечится 4/4 (A) и 5/5 (B) | **одна и та же вендорская мина: у ЧЕРНОВОЙ стадии лекарство, у БЭНК-РОЛИ — ни лекарства, ни счётчика.** Цена замерена: $0.024779 и 42 терма из 66 без машинного типа |
| 20:03:21 | ✅ edit ch1/chunk0 `disposition=ok` $0.048745 (115.7 с) | у A первый редакторский был $0.034076 | дороже, но ПРИНЯТ |
| 20:04:36 | ✅ edit ch1/chunk1 `disposition=ok` $0.035034 (74.4 с) | — | 2 из 4 юнитов, оба чисто |