12 KiB
12 KiB
Живой журнал платного прогона 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 — выброшено |
мина квирков §катовер п.1–2 | ЗНАК ДЕНЕЖНОЙ ДЫРЫ ВОСПРОИЗВЁЛСЯ НА ПЕРВОМ ЖЕ ЮНИТЕ |
| 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 юнитов, оба чисто |