test: pin real render-query fixtures and correct raid coverage claims
build / mod (push) Failing after 18s

Archive the original budget report as insufficient proof of overlapping raids. Pin callback/fuel diagnostics and an opt-in flat render world that services actual guest queries.

Co-authored-by: Codex <codex@openai.com>
This commit is contained in:
2026-11-03 10:36:45 +03:00
parent bd091e60df
commit 8f5603847e
4 changed files with 19 additions and 5 deletions
+5 -1
View File
@@ -48,9 +48,13 @@ GPT-6.1 Terra (энергетика, типизированная доставк
Проверки объединённого состояния: core release **190 + 4 сценария**, 7 ignored;
адаптер **60 + 1 boundary + 4 сценария**; лёгкий WASM **26 шагов**, тяжёлый **69 шагов**;
Git-регрессия и три теста failure report прошли. Тяжёлый профиль: 64 ПВО + 160 целей,
Git-регрессия и три теста failure report прошли. Исходный профиль запрашивал 64 ПВО + 160 целей,
602 tick / 300 frame; JSON фиксирует clean `aab3e78`, pin API27 и совпадающий build identity.
Полные данные: [budget report](measurements/api27-wasm-budget.json).
**Исправление оценки покрытия:** второй запрос исходного 69-шагового сценария отклонялся во время
подготовки первого. Его успешный exit не подтверждает 160 запущенных или одновременно летящих целей.
В архивный JSON добавлена поправка; исправленный сценарий проверяет ответы. Для настоящего stress
также нужны ответы render-world: прежний sandbox их не давал и часто проверял лишь ожидание земли.
Дополнительно два свежих профиля игры на Metal/no-audio: smoke off не ready, HD smoke ready;
при HORIZON_ACOUSTICS=1 + HORIZON_NO_AUDIO=1 акустика enabled/request=true, prepared=false,
+6 -2
View File
@@ -93,8 +93,12 @@ python3 tools/test_airdef_build.py
поскольку CLI читает только непосредственные `tests/*.toml`. Обычный `test-wasm` остаётся лёгким.
Ручной workflow `.gitea/workflows/wasm-budget.yml` не добавляет нагрузку на каждый push.
Проверенный профиль: 64 комплекса, две перекрывающиеся волны по 80 целей на 4000 блоках,
602 вызова tick и 300 frame, 69 шагов. Это не полный лимит расстановки (2000) и не нагрузочный
Исходный профиль запрашивал 64 комплекса и две волны по 80 целей на 4000 блоках,
602 вызова tick и 300 frame, 69 шагов. Позднее обнаружено: второй заказ во время подготовки
первого отклонялся, а fixture не проверял ответ. Поэтому тот прогон **не доказывает перекрытие
160 целей**; сохранённый JSON помечен `coverage_correction`. Новый сценарий проверяет принятие
обоих заказов и отличает requested counts от неизвестного пика в воздухе.
Это не полный лимит расстановки (2000) и не нагрузочный
тест GPU, mixer voices или всех физических world replies: sandbox не выполняет настоящий рендер/звук.
Отчёт `.horizon-cache/wasm-budget-report.json` содержит SHA/dirty/diff AirDef, pin/identity движка,
API/WIT/артефакт, проверку build identity, сценарий, Wasmtime и исходные memory/fuel limits.
+7 -1
View File
@@ -20,6 +20,12 @@
"path": "airdef-mod/target/horizon-mod/build-identity.json"
},
"command": "test-budgets",
"coverage_correction": {
"confirmed_peak_airborne": null,
"reason": "Second raid was requested during planning and not accepted; original fixture did not assert feedback. The runtime pass does not confirm 160 active or launched units.",
"second_raid_accepted": false,
"valid_double_raid_proof": false
},
"engine": {
"identity": "c89c78c47047fcfc0dfb0b8968600c650bf12d2b",
"pin": "c89c78c47047fcfc0dfb0b8968600c650bf12d2b"
@@ -45,8 +51,8 @@
"frames": 300,
"layout_unit_limit": 2000,
"max_units_per_raid": 80,
"raid_units": 160,
"raids": 2,
"requested_raid_units": 160,
"scripts": 1,
"steps": 69,
"ticks": 602
+1 -1
Submodule horizon updated: c89c78c470...ed7615d362