The chat dock indexes the video window unguarded, so the kit owes it

`not OptionsFrame:IsShown()` at `FloatingChatFrame.lua:862`, inside the hover
pass `UIParent`'s OnUpdate drives — an unguarded index of a global the kit only
seated from `IsOptionFrameOpen` and `ToggleGameMenu`, neither of which that path
calls. Every kit that drove a chat hover raised on it.

Given as a prerequisite rather than a stand-in, because the realm's toc loads the
stock video window 29 rows above the chat one (row 29 against 58): that is the
toc's own order, and it hands over the real frame instead of something that would
shadow it the way the `ChatFrame1` stand-in did.

`chat_resize_tests` 7 → 0, `chat_options_tests` 7 → 0, `chat_tests` 6 → 1.
116 → 97, nothing newly failing.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01SgstFWtn1RxEJ5kVrpgYwn
This commit is contained in:
2026-10-28 22:45:01 -06:00
co-authored by Claude Opus 5
parent 1aa3418fdc
commit cb8eb7f01d
+9 -1
View File
@@ -158,7 +158,15 @@ const PREREQS: &[(&str, &[&str])] = &[
),
(
"floatingchatframe.xml",
&[r"Interface\FrameXML\ChatFrame.xml"],
&[
r"Interface\FrameXML\ChatFrame.xml",
// …and the stock video window, which the dock's hover pass indexes **unguarded**:
// `not OptionsFrame:IsShown()` at `FloatingChatFrame.lua:862`, inside the OnUpdate
// `UIParent` drives. The realm's toc loads it 29 rows above this one (row 29 against
// 58), so this is the toc's own order, and it gives the real frame rather than a
// stand-in that would shadow it.
r"Interface\FrameXML\OptionsFrame.xml",
],
),
];