Журнал модуля «start-fixes»
План — docs/archive/plan/start-fixes.md, контракты — docs/contracts/start-fixes.md. Ветка feature/start-fixes, копия ~/deltaplan-start.
Решения
- 30.09 — план и контракты К1–К4 v1, контрактный тест
tests/game/test_start_fixes_contracts.gd(4/4 ок). - 30.09 — решение пользователя (через главную сессию): радиус пустыря ≥ 2× длины разбега; тест проверяет отсутствие деревьев и кустов в этом радиусе. Вписано в план (решения, SF-1).
- 30.09 — координатор: L_run — разбег в штиль на склоне
min_slope_degдля самого «длинного» крыла линейки; встроенные старты —max(start_clearing_radius_m, R). - 30.09 — координатор: задача «пилот на земле» разделена на SF-3 (рука пилота, крен, дуга, переход) и SF-4 (причина касания крылом), параллельно; стык в
ground_run.gd— по разным функциям. - 30.09 — решение пользователя: SF-4 передаётся исполнителю SF-3 (один исполнитель на связанные задачи); SF-4 коммитит находки в
start/sf4и останавливается, SF-3 вливаетstart/sf4и сдаёт обе по общим условиям приёмки; копия sf4 — удалить после слияния. Вписано в план (решение 4). - 30.09 — решение пользователя: пустырь = только убрать деревья; траву, кусты и прочее не убирать. Новая поляна — FOREST → GRASS, SHRUB не трогается; приёмка — нет деревьев в R, трава на месте, проверка координатором по скриншоту. Отправлено исполнителю SF-1. В плане — решение 5.
- 30.09 — координатор по находкам SF-4: (д) рельеф не трогаем, не шлюз, если на всех стартах локаций при крене 0 (стоит/шагом/разбег, трапеция нейтрально) зазор по видимой земле ≥ 0; иначе — шлюз. Тело пилота стоя вертикально — визуально в
GliderVisual._ground_pose, К4 остаётся v1.reset_on_ground— начальный тангаж = установившийся стоя. Всё передано SF-3. - 30.09 —
test_takeoff::test_headwind_launch(atlas, nose_high) падает уже на базе 6f34786 (= main 113878d + документы) — не регрессия модуля; сообщить главной сессии. - 30.09 — SF-3 промежуточно: порог бокового ветра стоя (sport, встречный 4, нос нейтрально) 1,90 м/с; при встречном 6 м/с — 0,6–1,0 м/с (нос на 10° ниже — ≈2 м/с): ноги разгружены, рука слабеет. Физика, не шлюз — находка для пользователя.
- 30.09 — К4: тангаж стоя теперь от склона, тело пилота вертикально визуально; смысл theta/basis/ось поворота не изменились — К4 остаётся v1 (уточнение в контракте).
- 30.09 — ответы пользователя: (1) коридор разбега для старта с карты — нет, кусты остаются (направление разбега заранее неизвестно — при боковом ветре бегут вдоль склона), К1 не меняется; (2) отдельной задачи по
test_headwind_launch(atlas) — нет. В плане — решения 6, 7.
Задачи
| Задача | Статус | Исполнитель | Копия / ветка | Коммиты | Числа / решения |
|---|---|---|---|---|---|
| SF-1 Пустырь | принята (30.09) | dp-engineer | копия удалена | 6db17c5, dbdbf59; слияние a85f78d | К1 v2: Terrain.add_start_clearing(x, z, r) синхронный, surface_revision, get_start_clearings(), TerrainRenderer.refresh_surface; только FOREST → GRASS (кусты/трава/камни остаются). L_run (штиль, 12°): sport 71,9 м / combat 69,9 м (weak_run за 10 с), остальные 13–18 м, atlas — nose_high 1,2 с → R = 160 м (2×71,9 = 144, запас 10 %); встроенные старты: 70 м лес+кусты как было, до 160 м — только лес. Поляна 0,3–0,4 мс (карта), 5–10 мс (Онгудай с маской). Перепроверено: start_ 13/13, vegetation 21/21, game 116/116, terrain 62/63 (test_forest_mask_loaded 0,61 с > 0,5 — порог времени, падает и без задачи). Скриншоты: трава на поляне есть, деревьев нет; кусты стоят на пути разбега — вопрос пользователю |
| SF-2 Трава в лесу | принята (30.09) | dp-engineer | копия удалена | 8e97c1a, c7910e9; слияние 0f7b4b7 | К2 v2: forest_density=0,4, forest_height_m=[0,12; 0,35], forest_shade=0,8 (тень полога); GPU кадра в лесу 5,46→5,63 мс (+3,0 %, p10 +4,6 %); тесты grass 8/8, vegetation 21/21, контракты 4/4 (перепроверено); test_surface::test_forest_mask_loaded падает по порогу времени и до правок — не регрессия |
| SF-3 Рука пилота (+SF-4) | принята (30.09) | dp-engineer | копия удалена, ветки start/sf3, start/sf4 удалены | 800b84e, 3384aa8, 5f8990e (+ SF-4 143c4b7, 3707069); слияние f6db4cc | К3 v2 (новые ключи ground_bank, run.turn_accel_max_ms2); перепроверено: стоя с A/D крен 0,000°; боковой 2,5+встречный 4 — крен при N/W>0,5 ≤ 0,94°, на отрыве 6,5–10° (физика); порог порыва стоя (sport, встречный 4) 1,90 м/с: ×1,2 → crosswind 10,15 с, ×2 → 3,55 с, ×0,8 держит (1,56°); дуга R/R_min 1,000 (29,6 м на 7,7 м/с); отрыв Δкрен 0,002°, Δp 0,25°/с; I = 396 кг·м², предел 200/100/0 Н·м; косой 15° — 0,0000°; зазор крыла ≥ 0,35 м (синтетика), по 10 стартам локаций ≥ 0,58 м — шлюза нет; flight 112/113 (test_headwind_launch — известное, решение 7), game 116/116, start_ 13/13. К4 — уточнение без смены версии |
| SF-4 Касание крылом | принята в составе SF-3 (30.09) | dp-engineer | — | 143c4b7 (замер, тест), 3707069 (тангаж стоя) | Причины: (а) крен от A/D — главная на ровном (−17,9° → консоль −0,20 м; склон 20° с A −2,2 м) → уберёт SF-3; (б) тангаж стоя от горизонта — склон 20°, трапеция от себя −0,56 м → исправлено (после +0,58 м); (в) ось поворота, (г) подвеска/сглаживание — не причины; (д) рельеф треугольниками 25 м против билинейной высоты — видимая земля до 0,32 м выше (1 старт). Без крена на ровном зазор ≥ 0,35 м. Тест test_wing_clearance (9 крыльев, ≥ 0,3 м) |
Состояние (30.09): все задачи приняты; ниже — исторический план продолжения
- SF-1, SF-2 — приняты и влиты. SF-4 — остановлена, передана SF-3 (ветка
start/sf4ещё не влита — её вливает исполнитель SF-3 вstart/sf3). - SF-3 (+SF-4) — исполнитель работает в
~/deltaplan-start-sf3/start/sf3(промежуточный коммит 800b84e). Задание дополнено: влитьstart/sf4иfeature/start-fixes; прогнатьwing_clearance_runпо стартам локаций (зазор по видимой земле ≥ 0 при крене 0, иначе шлюз); тело пилота стоя вертикально визуально (К4 v1);reset_on_ground— тангаж стоя; раздел «Поза крыла на земле» вdocs/guide/flight.md; кадры вbuild/screenshots/sf3_ruka_pilota/. - Приёмка SF-3+SF-4: условия SF-3 (1–7) и SF-4 (1–4) плана; перепроверить
--filter=flight,game,start_,test_wing_clearance; влитьstart/sf3(и через неёstart/sf4), удалить копию sf3 и веткиstart/sf3,start/sf4; отметить в TODO пункт «Пилот на земле…» и подпункты, CHANGELOG «В работе».