Record the #129 balance and the cold-launch capture

The stage contract and profiles are in 4b013fb. This commit adds the
measured balance (the #120 grid on identical seeds and the 12-seed raid),
the replay/export video with four stills, and updates the user and handoff
documentation. The visual files are provided for human review; the agent
that captured them has no image input and checked only the encoded
parameters, shot boundaries and the first large plume.

Co-Authored-By: Kimi Code <noreply@kimi.com>
This commit is contained in:
2026-11-06 13:18:47 +03:00
parent 1261c30724
commit 56093b3a55
11 changed files with 256 additions and 19 deletions
+52
View File
@@ -16,6 +16,58 @@
подтвердила 1.6 как фактический голос P1-SUN (недостижимый `P1sun => 1.7` в старом match не в счёт);
на это добавлена Rust-регрессия. Остаток: варианты комплексов и игровая приёмка.
### Продолжение #129: стадии холодного пуска и разгон (6 ноября 2026)
Ветка `agent/issue-129-cold-launch`, кодовый коммит `4b013fb7f30dbaa87a266b27a31911937fc523b4`
(документация, измерения и кадры — следующим коммитом этой же ветки).
Игра/движок не менялись: pin `278f356aa604fa21c2d15d0081823bbe0f891df2`, API30. Push не выполнялся,
issues не закрывались.
**Контракт стадий.** У `MissileSpec` появились `eject` и `eject_drag`; `cold` — тики физического
выброса, `boost` — тики departure. `guided(age) = age >= cold + boost`; основная ветка наведения,
самонаведение и облёт рельефа больше не могут включиться до зажигания (раньше было `age >= boost`,
что при большом `cold` включало наведение до мотора). Зажигание — по-прежнему `age > cold`;
событие `MotorIgnition`, звук, факел и голос используют текущую позицию ракеты. `departure_ramp`
растёт 0→1 за `boost`; темп поворота в departure — `turn·(0.2 + 0.8·ramp)`. Тяга ракетных
профилей — `accel·(0.45 + 0.55·ramp)`, на guidance — полная. P1-SUN (`flame=0`) сохраняет
полный разгон без ракетной струи.
**Профили.** `M48n6`: `cold=20`, `eject=2.4`, `eject_drag=0.07` — 1,00 с; `M77n6`: `cold=24`,
`eject=2.6`, `eject_drag=0.07` — 1,20 с; `IrisT`/`M9m338`: `cold=8`, `eject=1.8/1.6`,
`eject_drag=0.1` — 0,40 с. Рельсовые профили (`cold=0`) получили только spool тяги; ранний
поворот на рельсовом пуске был проверен и отменён: он уводил Pac3 в землю на холмах и валил
`an_interceptor_over_rolling_land_does_not_hit_the_ground`. `speed`, `accel`, `turn`, `pk`,
`fuse` и правила столкновений не менялись.
**RM48U.** `EJECT_TICKS` 5 → 20. Выброс неосвещённый и замедляется; зажигание на `EJECT_TICKS`,
факел/звук/голос с этого момента; насчитанное время полёта включает выброс; дым в записи
начинается от точки зажигания, а не от горловины. Live, repeat и export читают одно и то же
состояние `lit`/записанное `MotorIgnition`.
**Проверки.** core release **206 + 8 сценариев**, 8 ignored; адаптер **67 + 1 boundary +
5 сценариев**; настоящий `.hmod` — **30 шагов** `wasm_contract.toml`; `gen_catalog.py --check` и
`gen_models.py --check` без расхождений; `test_gen_assets.py` — 10 тестов; `git diff --check` чист.
Новые регрессии: стадии по порядку и отсутствие powered-эффектов до зажигания; `guided` не раньше
`cold` для всех профилей; непрерывность скорости/поворота и throttled первый powered тик; P1-SUN
без факела; записанное зажигание через `cold` тиков и `missile_is_lit` по нему; RM48U без
голоса/факела до зажигания и ровно один звук зажигания.
**Баланс.** Сетка #120 (6 вариантов × 8 seed, 2208 целей на сторону, baseline `dc36d67`):
сбито 1988 → 1939, прорывов 216 → 258, ракет 3461 → 3467; `near200` 318 → 311, `far1500`
338 → 334, `hills20` 334 → 319; `energy_lost` 0 → 0, `expired` 1 → 0, scrub 2 → 4.
`SAMS=20 SIZE=12`, 12 seed: 203 → 201 сбитых, 1 → 3 прорыва, 355 → 360 ракет. Отдельные CSV:
[сетка](measurements/issue-129-grid.csv), [рейды](measurements/issue-129-balance.csv).
Это намеренное следствие более длинного старта; скрытого повышения `pk` или максимальной скорости нет.
**Съёмка.** Scratch `HORIZON_HOME=/private/tmp/issue-129-visual`, плоский мир `ColdLaunch129`,
Metal/offscreen, мод и клиент из `4b013fb`. Экспорт `cold129d`: 1280×720, 30 fps, 403 кадра,
13,43 с, h264 + AAC 48 кГц (mean −15,7 dB). План «Пуск» — кадры 94–152: выброс на 94, крупный
факел на 128 (≈1,13 с, правило 1,00 с), разгон до 152. Файл и кадры:
[docs/media/cold-launch](media/cold-launch). **Ограничение:** у агента нет ввода изображений,
поэтому композиция и красота кадров человеком не оценены; проверены только факт/параметры
съёмки, границы планов и появление факела. Отдельный very-close статичный план выброса и live-MP4
не сняты (`--offscreen` без окна); это не полная визуальная приёмка.
### Продолжение #122 (второй налёт из UI)
Точный лог Windows: `stopped in UI event (fuel budget 1000000000, remaining Some(0))`,