Say that a cancelled chunk carries its own reason rather than no mark at all, and that a row number is an identifier, not a file line

This commit is contained in:
heaven 2026-09-08 17:52:09 +03:00
parent 60d575164d
commit b3b6bacbdd

View file

@ -36,7 +36,7 @@
## 3. Карта чтения — ЗАКОН, дальше только по её ссылкам
1. `docs/BACKLOG.md` — строки **360** (несёт СОШЕДШУЮСЯ конструкцию лечения целиком), **369** (ось
1. `docs/BACKLOG.md` — строки (⚠ «строка N» здесь — **ID в первой колонке, а не номер строки файла**: `sed -n '360p'` даст пустоту, греп `^| 360 |` — нужный ряд) **360** (несёт СОШЕДШУЮСЯ конструкцию лечения целиком), **369** (ось
эскалации), **78** (движковая половина `PD-441`: публикация оценочных строк). Греп `^| 360 |`.
2. `docs/experiments/00-provider-quirks.md` — **канон велит читать ПЕРЕД правкой адаптеров и вызовов.**
⚠ Класса, который ты чинишь, там НЕТ (замер: `early-200`/«empty lines»/«10 minutes» — 0 хитов) — это
@ -117,7 +117,7 @@
построению: остаётся как сегодня (retryable, на исчерпании освобождение резерва, инфра-пауза).
- ⛔ **ОТМЕНА РОДИТЕЛЕМ доставленного вызова** (стоп прогона, Ctrl-C) — **это тот самый случай, с которого
начался заказ (строка 331), и диспозиция у него ДРУГАЯ.** Деньги — та же `settleUSDForCutCall` (ровно то, что просит
`PD-441` — по-русски: «сеттлить оценку и при отмене вызова, который успел уйти, различая по ФАКТУ ухода»), но чанк **НЕ флагуется**: вызов был здоров, остановил его ЧЕЛОВЕК. ⛔ **И резюм обязан пере-делать
`PD-441` — по-русски: «сеттлить оценку и при отмене вызова, который успел уйти, различая по ФАКТУ ухода»), но чанк получает **СВОЮ причину `cancelled`, а не общий флаг «нужен человек»**: вызов был здоров, остановил его ЧЕЛОВЕК. ⛔ **Это НЕ «флага нет».** Дыры без пометки не должно быть ни в один момент: пока прогон не резюмирован, диспозиция чанка не `ok`, и экспорт показывает `flagged(cancelled)` — читается как «остановлено, резюм пере-сделает», а не как «нужен человек». Флаг, врущий о ПРИЧИНЕ, запрещён отдельно (`D39.93` п.2); невидимая дыра запрещена тем более. ⛔ **И резюм обязан пере-делать
его на ТОМ ЖЕ `max_tokens`** — `maxTokensForAttempt` удваивает бюджет по оси попыток
(`disposition.go:393-401`, `base << uint(attempt)`; петля берёт его из НОМЕРА попытки,
`stagerun.go:147`), и здесь это ловушка: удвоение купит вдвое больший вызов за здоровье, которого никто