此文件通行證未執行任何即時正式服驗證。
每次功能或架構變更依序執行:
Tools/CheckLuaSyntax.ps1:Lua 5.1 語法。Tools/Run-FlowValidation.ps1 -Suite all:離線 Mock 流程。/eam test all 或 Options「流程測試」按鈕。Tools/Import-EAMFlowReport.ps1:將 JSON 或 WTF 報告回灌開發環境。證據狀態必須分為靜態、語法、Mock、PTR、Retail。離線流程通過不能取代實機。
詳細規格見 Docs/26_FLOW_VALIDATION_FRAMEWORK.md。
120007。C_Timer.After(function.SetScript("OnUpdate")。table.freeze。UnitAura 解包路徑。GetSpellCooldown 解包假設。spellID比較。/eam opt 開啟選項。/eam help 列印指令摘要。/eam add <spellID> 新增玩家光環警報。/eam add target <spellID> 新增目標光環警報。/eam add cd <spellID> 新增法術冷卻時間警報。/eam add item <itemID> 新增物品冷卻警報。/eam remove <spellID> 刪除玩家光環警報。/eam 刪除目標 <spellID> 刪除目標光環警報。/eam remove cd <spellID> 刪除法術冷卻時間警報。/eam 刪除物品 <itemID> 刪除物品冷卻警報。/eam export 列印緊湊的提示/debug export。/eam show 切換自我光環 spellID 偵測。/eam showt 切換目標光環 spellID 偵測。/eam showc 切換強制轉換 spellID 偵測。/eam showa 是可選的並且顯然是可停止的。/eam MiniMap 切換小地圖選項按鈕。/eam MiniMap Reset 重設小地圖位置。/eam SCDRemoveWhenCooldown/eam SCDNocombatStillKeep/eam SCDGlowWhenUsable/eam IconAppenSpellTip/eam ShowRunesBar/eam刪除<spellID>刪除該buff並確認圖示隱藏。UNIT_AURA 增量更新過程 addedAuras、updatedAuraInstanceIDs 和 removedAuraInstanceIDs。updateInfo 為零或標記為完全更新時,確認完全更新回退仍然有效。/eam新增目標<spellID>和/eam刪除目標<spellID>新增/remove目標光環。C_Spell.IsSpellUsable。PLAYER_REGEN_ENABLED 之後刷新。C_DurationUtil.CreateDurationTextBinding 存在並確定它是否有利於 EAM 計時器標籤。C_DurationUtil.CreateDurationTextBinding 範例在 12.0.7 PTR 用戶端中正常顯示。C_DurationUtil.CreateManualClock存在且不需要不安全的Lua倒數使用。C_DurationUtil.GetCurrentTime。GetEventCPUUsage、GetFunctionCPUUsage 和 GetScriptCPUUsage 僅適用於 debug/profiling 指令,不適用於執行時間熱路徑。table.freeze / table.isfrozen 行為,並驗證 SavedVariables/runtime 狀態沒有被凍結。FontString:ClearText() 清除文本,沒有污染或過時的秘密文本問題。DurationTextBinding 適配器保留綁定引用,在回收圖示時停用 /releases 它,並在 API 不可用時安全回退。debug-min 輸出包括環境、事實、衍生計數和警告。analysis-full 輸出包含緊湊的每個警報狀態。github-issue 輸出排除大量日誌和敏感的僅限本地的混亂。/eam 匯出 包含資料庫修訂、aura 快取計數、渲染器可見/deferred 計數和邊界警告計數。Tools/Run-FlowValidation.ps1 -Suite aura121;全回歸使用 -Suite all。/eam test aura121 或流程面板「12.1 Aura」。_ptr_ 實測 player Slot、target Slot、多 Aura Group、原生倒數、Tooltip、三種 Sound trigger、戰鬥 pending、taint/forbidden action。Docs/23_AURA_CONTAINER_IMPLEMENTATION.md。Tools/Run-FlowValidation.ps1 -Suite boundary;全回歸使用 -Suite all,不新增獨立測試按鈕。遊戲內沿用流程面板「邊界流程」與 JSON 報告回灌。tooltip_monitor.capability:四種 post-call 各只註冊一次;重複 initialize 不得增加 callback;必須載入真正的 Popup frame,且按鈕必須綁定 OnClick;12.1 必須成功啟用 tooltipShowAuraSpellIDs。tooltip_monitor.offline_spell_item_routes:真 Popup 顯示精確 ID/action,透過 button:Click() 分派 OnClick 後寫入隔離 DB;added 必須走正式 Options.notifyConfigChanged() 的 AuraContainer/Aura/Cooldown/ItemCooldown/Renderer 五個下游,第二次 unchanged 不增加 revision 或刷新。tooltip_monitor.offline_macro_resolution:TooltipData.id 放入錯誤值,安全 GetAction 路徑須解析並實際提交 spell/item;非 GetAction 來源須以手動 ID 分別提交 spell/item。tooltip_monitor.offline_aura_manual_route:Secret TooltipData 欄位讀取次數必須為零;真 Popup 以普通數字分別提交 player/target Aura;CVar 能力關閉時 Tooltip 與 Popup 必須使用手動已知 ID 提示。tooltip_monitor.offline_fail_closed:callback 當下、戰鬥開窗、戰鬥中 hover 後出戰重播、EditBox 焦點、Tooltip 類型變更、Tooltip 隱藏、五秒逾時、額外 Shift/Meta、缺 Ctrl/Alt 均不得開啟;同類型連續候選必須取最後一筆。tooltip_monitor.offline_secret_scalars:Secret spell、macro、manual 與 action 必須零算術、零字串化、零 table-key 操作、零 SavedVariables 寫入;受監控 table proxy 必須先自證能攔截 Secret key。tooltip_monitor.offline_db_isolation:隔離 DB 與五下游 spy 在 callback 成功及刻意拋錯兩路都必須還原原 reference。runtime_probe.schema:建立已知候選後序列化完整 snapshot 並建立人類可讀 lines,兩種輸出都不得出現候選 ID,狀態只能含匿名計數。pcall 後還原 EAM.db/EAM_DB,不可用 remove 動作污染 revision 來清理測試。boundary 10/10(TestResults/EAM_FlowValidation_boundary_20260728_120708.json);all 24/24(TestResults/EAM_FlowValidation_all_20260728_120708.json)。第一次真 Popup 測試因未重新產生已消耗的 candidate 而 7/9,失敗報告 TestResults/EAM_FlowValidation_boundary_20260727_042850.json 保留追溯;中間通過報告亦保留。_ptr_ 實機:分別懸停 Spellbook、Action Bar Macro、Bag Item、player/target Aura;核對 ID 行、Ctrl+Alt Popup 位置、ESC/取消、added/unchanged、ReloadUI 後 CVar 重設、戰鬥拒絕、無 blocked action/taint/Forbidden 錯誤。_xptr_ 12.0.7 實機:Spell/Item/Macro 路由仍須工作;Aura 官方 CVar 若不存在,Tooltip/Popup 必須明示手動已知 ID,不得回退讀 AuraData。/reload/LoD,以及 Popup 開啟後立即進戰;離線 mock 不得替代這些 PTR 時序與 taint 證據。此文件通行證未執行任何即時正式服驗證。
每次功能或架構變更依序執行:
Tools/CheckLuaSyntax.ps1:Lua 5.1 語法。Tools/Run-FlowValidation.ps1 -Suite all:離線 Mock 流程。/eam test all 或 Options「流程測試」按鈕。Tools/Import-EAMFlowReport.ps1:將 JSON 或 WTF 報告回灌開發環境。證據狀態必須分為靜態、語法、Mock、PTR、Retail。離線流程通過不能取代實機。
詳細規格見 Docs/26_FLOW_VALIDATION_FRAMEWORK.md。
120007。C_Timer.After(function.SetScript("OnUpdate")。table.freeze。UnitAura 解包路徑。GetSpellCooldown 解包假設。spellID比較。/eam opt 開啟選項。/eam help 列印指令摘要。/eam add <spellID> 新增玩家光環警報。/eam add target <spellID> 新增目標光環警報。/eam add cd <spellID> 新增法術冷卻時間警報。/eam add item <itemID> 新增物品冷卻警報。/eam remove <spellID> 刪除玩家光環警報。/eam 刪除目標 <spellID> 刪除目標光環警報。/eam remove cd <spellID> 刪除法術冷卻時間警報。/eam 刪除物品 <itemID> 刪除物品冷卻警報。/eam export 列印緊湊的提示/debug export。/eam show 切換自我光環 spellID 偵測。/eam showt 切換目標光環 spellID 偵測。/eam showc 切換強制轉換 spellID 偵測。/eam showa 是可選的並且顯然是可停止的。/eam MiniMap 切換小地圖選項按鈕。/eam MiniMap Reset 重設小地圖位置。/eam SCDRemoveWhenCooldown/eam SCDNocombatStillKeep/eam SCDGlowWhenUsable/eam IconAppenSpellTip/eam ShowRunesBar/eam刪除<spellID>刪除該buff並確認圖示隱藏。UNIT_AURA 增量更新過程 addedAuras、updatedAuraInstanceIDs 和 removedAuraInstanceIDs。updateInfo 為零或標記為完全更新時,確認完全更新回退仍然有效。/eam新增目標<spellID>和/eam刪除目標<spellID>新增/remove目標光環。C_Spell.IsSpellUsable。PLAYER_REGEN_ENABLED 之後刷新。C_DurationUtil.CreateDurationTextBinding 存在並確定它是否有利於 EAM 計時器標籤。C_DurationUtil.CreateDurationTextBinding 範例在 12.0.7 PTR 用戶端中正常顯示。C_DurationUtil.CreateManualClock存在且不需要不安全的Lua倒數使用。C_DurationUtil.GetCurrentTime。GetEventCPUUsage、GetFunctionCPUUsage 和 GetScriptCPUUsage 僅適用於 debug/profiling 指令,不適用於執行時間熱路徑。table.freeze / table.isfrozen 行為,並驗證 SavedVariables/runtime 狀態沒有被凍結。FontString:ClearText() 清除文本,沒有污染或過時的秘密文本問題。DurationTextBinding 適配器保留綁定引用,在回收圖示時停用 /releases 它,並在 API 不可用時安全回退。debug-min 輸出包括環境、事實、衍生計數和警告。analysis-full 輸出包含緊湊的每個警報狀態。github-issue 輸出排除大量日誌和敏感的僅限本地的混亂。/eam 匯出 包含資料庫修訂、aura 快取計數、渲染器可見/deferred 計數和邊界警告計數。Tools/Run-FlowValidation.ps1 -Suite aura121;全回歸使用 -Suite all。/eam test aura121 或流程面板「12.1 Aura」。_ptr_ 實測 player Slot、target Slot、多 Aura Group、原生倒數、Tooltip、三種 Sound trigger、戰鬥 pending、taint/forbidden action。Docs/23_AURA_CONTAINER_IMPLEMENTATION.md。Tools/Run-FlowValidation.ps1 -Suite boundary;全回歸使用 -Suite all,不新增獨立測試按鈕。遊戲內沿用流程面板「邊界流程」與 JSON 報告回灌。tooltip_monitor.capability:四種 post-call 各只註冊一次;重複 initialize 不得增加 callback;必須載入真正的 Popup frame,且按鈕必須綁定 OnClick;12.1 必須成功啟用 tooltipShowAuraSpellIDs。tooltip_monitor.offline_spell_item_routes:真 Popup 顯示精確 ID/action,透過 button:Click() 分派 OnClick 後寫入隔離 DB;added 必須走正式 Options.notifyConfigChanged() 的 AuraContainer/Aura/Cooldown/ItemCooldown/Renderer 五個下游,第二次 unchanged 不增加 revision 或刷新。tooltip_monitor.offline_macro_resolution:TooltipData.id 放入錯誤值,安全 GetAction 路徑須解析並實際提交 spell/item;非 GetAction 來源須以手動 ID 分別提交 spell/item。tooltip_monitor.offline_aura_manual_route:Secret TooltipData 欄位讀取次數必須為零;真 Popup 以普通數字分別提交 player/target Aura;CVar 能力關閉時 Tooltip 與 Popup 必須使用手動已知 ID 提示。tooltip_monitor.offline_fail_closed:callback 當下、戰鬥開窗、戰鬥中 hover 後出戰重播、EditBox 焦點、Tooltip 類型變更、Tooltip 隱藏、五秒逾時、額外 Shift/Meta、缺 Ctrl/Alt 均不得開啟;同類型連續候選必須取最後一筆。tooltip_monitor.offline_secret_scalars:Secret spell、macro、manual 與 action 必須零算術、零字串化、零 table-key 操作、零 SavedVariables 寫入;受監控 table proxy 必須先自證能攔截 Secret key。tooltip_monitor.offline_db_isolation:隔離 DB 與五下游 spy 在 callback 成功及刻意拋錯兩路都必須還原原 reference。runtime_probe.schema:建立已知候選後序列化完整 snapshot 並建立人類可讀 lines,兩種輸出都不得出現候選 ID,狀態只能含匿名計數。pcall 後還原 EAM.db/EAM_DB,不可用 remove 動作污染 revision 來清理測試。boundary 10/10(TestResults/EAM_FlowValidation_boundary_20260728_120708.json);all 24/24(TestResults/EAM_FlowValidation_all_20260728_120708.json)。第一次真 Popup 測試因未重新產生已消耗的 candidate 而 7/9,失敗報告 TestResults/EAM_FlowValidation_boundary_20260727_042850.json 保留追溯;中間通過報告亦保留。_ptr_ 實機:分別懸停 Spellbook、Action Bar Macro、Bag Item、player/target Aura;核對 ID 行、Ctrl+Alt Popup 位置、ESC/取消、added/unchanged、ReloadUI 後 CVar 重設、戰鬥拒絕、無 blocked action/taint/Forbidden 錯誤。_xptr_ 12.0.7 實機:Spell/Item/Macro 路由仍須工作;Aura 官方 CVar 若不存在,Tooltip/Popup 必須明示手動已知 ID,不得回退讀 AuraData。/reload/LoD,以及 Popup 開啟後立即進戰;離線 mock 不得替代這些 PTR 時序與 taint 證據。