From 101ddc3d9757855f9dac0878a7638c78009ae316 Mon Sep 17 00:00:00 2001 From: grom Date: Sun, 18 Oct 2026 12:26:23 -0600 Subject: [PATCH] tests: the UiScript wall's ceiling follows the four files that argued past it MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit `ui_script_wall.rs` has been failing since `2af91704`, 888 commits ago: 43 gameplay files name `UiScript` against a ceiling of 40. A ratchet that cannot pass notices nothing, which is the one thing it is for — so the ceiling follows the count, with each newcomer argued in place, as the test's own message asks. Three of the four do not cross the line the wall draws: - `spell/net.rs` names the identifier only to say it holds none — three doc comments explaining why its work is queued instead. The count reads doc comments by design, so documenting the line reads as crossing it. - `target/by_name.rs` and `target/scan.rs` hold the VM because `TargetByName` and the scan must select inside the Lua call as `0x489d60` does; that is `bbe2e3aa`, without which an addon's own target restore cannot see what it selected. - `debug_panel/{mod,lighting_controls}.rs` write CVars through `UiScript::set_cvar_engine`, the queue Lua's `SetCVar` feeds, so the dev panel cannot hold a different value than the interface. Nothing moves and nothing is excused wholesale: the next file to learn that the VM exists still fails this test. Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_01SgstFWtn1RxEJ5kVrpgYwn --- crates/benilla-app/tests/ui_script_wall.rs | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/crates/benilla-app/tests/ui_script_wall.rs b/crates/benilla-app/tests/ui_script_wall.rs index 96d73b5e..45eee7b8 100644 --- a/crates/benilla-app/tests/ui_script_wall.rs +++ b/crates/benilla-app/tests/ui_script_wall.rs @@ -38,7 +38,23 @@ fn family(rel: &str) -> Family { } /// The standing count of `Game` files; raise it only with the reason written down. -const CEILING: usize = 40; +/// +/// 40 was the count the last time this test passed, 888 commits back (`2af91704`): the chain has +/// been red here long enough that the wall could no longer notice a newcomer, which is the one +/// thing it is for. The four files that have joined since, each argued rather than moved: +/// +/// - `spell/net.rs` names the identifier **only to say it holds none** — three doc comments of the +/// form "these handlers hold no `UiScript`", explaining why their work is queued instead. The +/// count is deliberately coarse (it reads doc comments too, see above), so a file that documents +/// the line is counted as if it crossed it. +/// - `target/by_name.rs` and `target/scan.rs` hold the VM on purpose: `TargetByName` and the scan +/// must select **inside** the Lua call, as `0x489d60` does, or an addon's +/// `prevTarget ~= foundTarget` restore cannot see what it just selected (`bbe2e3aa`, which is +/// what made unitscan stop stealing the target). +/// - `debug_panel/mod.rs` and `debug_panel/lighting_controls.rs` drive CVars through +/// `UiScript::set_cvar_engine`, the same queue Lua's `SetCVar` feeds, so the dev panel and the +/// interface cannot hold different values for one CVar. +const CEILING: usize = 43; /// How far under [`CEILING`] the count may sit before the test asks for the ceiling to follow it. const SLACK: usize = 4;