From 632061d2ad3041667af25a8caeca113ce2917dfe Mon Sep 17 00:00:00 2001 From: chexit Date: Wed, 4 Nov 2026 16:23:22 +0300 Subject: [PATCH] docs: archive clean API29 WASM fuel acceptance Co-Authored-By: Codex --- docs/CONTINUATION-2026-11-04.md | 3 + docs/ENGINE.md | 2 + docs/measurements/api29-wasm-budget.json | 85 ++++++++++++++++++++++++ 3 files changed, 90 insertions(+) create mode 100644 docs/measurements/api29-wasm-budget.json diff --git a/docs/CONTINUATION-2026-11-04.md b/docs/CONTINUATION-2026-11-04.md index 3969db4..eb8f450 100644 --- a/docs/CONTINUATION-2026-11-04.md +++ b/docs/CONTINUATION-2026-11-04.md @@ -48,6 +48,9 @@ границы моделей и 6 тестов provenance/failure отчёта проверяются отдельно. Лёгкий WASM — 27 шагов. Тяжёлый default fixture — 271 шаг с двумя принятыми налётами; его текущий отчёт пишет `python tools/airdef.py test-budgets` в `.horizon-cache/wasm-budget-report.json`. +Чистый финальный прогон `56339b0` с API29 сохранён в +[api29-wasm-budget.json](measurements/api29-wasm-budget.json): tick max 106132646/300000000, +command max 1013387/1000000000, ошибок 0, build identity совпал. Не завершены: субъективное прослушивание, настоящий MP4 с акустикой, полный 10-минутный replay/export, расширенная модельная/ночная/FPS приёмка, camera-ready milestone и полные diff --git a/docs/ENGINE.md b/docs/ENGINE.md index 88d7dda..1570b01 100644 --- a/docs/ENGINE.md +++ b/docs/ENGINE.md @@ -126,6 +126,8 @@ API/WIT/артефакт, проверку build identity, сценарий, Was command 69 вызовов, max 1013370/1000000000; ошибок нет. Исторический отчёт без измерения fuel: [API27 budget report с поправкой покрытия](measurements/api27-wasm-budget.json). +Актуальный чистый API29-прогон с измерением: +[271 шаг, fuel и build identity](measurements/api29-wasm-budget.json). Проверены реальный WASM guest с переходами состояний/владельца/мира, сборка клиента и два коротких offscreen-профиля Metal. При `HORIZON_ACOUSTICS=1` + `HORIZON_NO_AUDIO=1` в игре получено diff --git a/docs/measurements/api29-wasm-budget.json b/docs/measurements/api29-wasm-budget.json new file mode 100644 index 0000000..56554eb --- /dev/null +++ b/docs/measurements/api29-wasm-budget.json @@ -0,0 +1,85 @@ +{ + "airdef": { + "diff_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "dirty": false, + "sha": "56339b076e3dad9c6825ddbc73fdfe6b9a2727bc" + }, + "api_level": 29, + "artifact_sha256": "f3720d58e18210b2e962ae924306a18cbf12c28e033c2bf862ad6a1a0db462b6", + "build_identity": { + "checks": { + "airdef_diff_sha256": true, + "airdef_dirty": true, + "airdef_sha": true, + "artifact_sha256": true, + "engine_identity": true, + "engine_pin": true, + "wit_sha256": true + }, + "matches": true, + "path": "/Users/chexit/Documents/ChatGPT/reviewer-horizon/airdef-kimi-work/airdef-mod/target/horizon-mod/build-identity.json" + }, + "command": "test-budgets", + "engine": { + "identity": "57f8b2853c4443f7e3ff5701600cbb262b53118f", + "pin": "57f8b2853c4443f7e3ff5701600cbb262b53118f" + }, + "exit_code": 0, + "measured_fuel": { + "available": true, + "callbacks": [ + { + "budget": 1000000000, + "callback": "command", + "calls": 69, + "failures": 0, + "max_used": 1013387, + "mod": "airdef" + }, + { + "budget": 300000000, + "callback": "tick", + "calls": 2102, + "failures": 0, + "max_used": 106132646, + "mod": "airdef" + } + ], + "scope": "guest callback fuel; excludes host CPU, memory and GPU time" + }, + "output": " Compiling horizon-mods v0.1.0 (/Users/chexit/Documents/ChatGPT/reviewer-horizon/airdef-kimi-work/horizon/crates/horizon-mods)\n Compiling cargo-horizon-mod v0.1.0 (/Users/chexit/Documents/ChatGPT/reviewer-horizon/airdef-kimi-work/horizon/crates/cargo-horizon-mod)\n Finished `dev` profile [unoptimized + debuginfo] target(s) in 4.70s\n Running `/Users/chexit/Documents/ChatGPT/reviewer-horizon/airdef-kimi-work/horizon/target/debug/cargo-horizon-mod horizon-mod test --hmod /Users/chexit/Documents/ChatGPT/reviewer-horizon/airdef-kimi-work/airdef-mod/target/horizon-mod/airdef.hmod --fuel-profile budget`\nrunning 1 scripts against /Users/chexit/Documents/ChatGPT/reviewer-horizon/airdef-kimi-work/airdef-mod/target/horizon-mod/airdef.hmod\nfuel airdef command: calls=69 max=1013387 budget=1000000000 failures=0\nfuel airdef tick: calls=2102 max=106132646 budget=300000000 failures=0\ntest tests/wasm_budget.toml ... ok (271 steps)\ntest result: ok. 1 passed\n", + "runtime_limits": { + "fuel_per_call": { + "event": 1000000000, + "frame": 10000000, + "init": 2000000000, + "tick": 300000000 + }, + "memory_bytes": 67108864, + "metering": "source_configured", + "source": "horizon/crates/horizon-mods/src/runtime.rs", + "wasmtime_component_model": true, + "wasmtime_fuel_metering": true + }, + "scenario": "tests/budgets/wasm_flat_budget.toml", + "scenario_counts": { + "accepted_raids_asserted": 2, + "air_defense_units": 64, + "frames": 2052, + "layout_unit_limit": 2000, + "peak_airborne_observed": null, + "raid_requests": 2, + "raid_units_requested": 80, + "scripts": 1, + "snapshot_airborne_asserted": 184, + "snapshot_tick": 2102, + "steps": 271, + "ticks": 2102 + }, + "scenario_render_world": "flat at y=64", + "scenario_sha256": "bcc0359289ab20ab3de608bcc130f72d2cf88f9f6fbc470d7b6846e9db5d11df", + "schema": 1, + "status": "passed", + "wasmtime_version": "48.0.7", + "wit_sha256": "dded023a150a5f916bc5d935b7f891806728e0118eb7107ad0551d2aad8c70a5" +}