Clear Combat Log 2.0.2 - 2026-09-23
42 regression scenarios passed under Lua 5.1 and LuaJIT 2.1.1774896198.
Real local ToME 1.7.6 functions; simulated map/UI. In-game visual validation pending.

PASS Flame, anonymous Arcane Destruction, melee and an already burning target
PASS instant actions in the same turn stay separate
PASS unidentified nested projection never inherits Flame
PASS known delayed projectile uses its own descriptor
PASS scope unwinds on errors and preserves nil return values
PASS coroutines do not share talent scopes
PASS DoT requires an actual ticking effect source
PASS outgoing retaliation keeps outgoing direction
PASS healing, absorption, damage and final HP stay separate
PASS native deaths, delayed messages and flyers still execute once
PASS invisible names and HP stay hidden
PASS summons keep their own names
PASS partial native packet uses untouched vanilla output
PASS ambiguous shared source keeps both native messages
PASS disable restores native output, no ICT or logdisplay mutation
PASS renderer error restores methods and propagates
PASS presentation failure falls back without rerunning native side effects
PASS capture failure preserves the complete native packet
PASS exact totals remain numeric, never parsed from descriptions
PASS attack misses still produce details without a damage packet
PASS enemy avatars appear on direct, splash and miss rows but not invisible targets
PASS nested extra strikes consolidate splash totals per target, keeping Flame and heals separate
PASS splash never merges separate actions or sources
PASS splash retains absorbed fragments and exact numeric totals
PASS details toggle suppresses only attack stats
PASS retaliation names the real actor once and preserves separate triggers
PASS retaliation does not identify an invisible real source through its proxy
PASS unique enemy color applies to incoming, outgoing and splash names only
PASS only exact scoped melee critical notices are eligible for deduplication
PASS each nested critical attack keeps one inline CRIT
PASS render fallback replays the deferred native critical once
PASS reset, disable and queue replacement preserve deferred native critical
PASS native weapon UID icon and hover tag survive melee rendering and shield lookup
PASS real 1.7.6 hit-proc and grid code: Arcane Combat then Arcane Destruction
PASS native melee: accuracy after talent bonuses and unrelated save checks
PASS native melee: misses retain chance without damage
PASS native melee: evasion bypasses accuracy roll
PASS native melee: repel bypasses accuracy roll
PASS native melee: forced hits keep base chance distinct
PASS native melee: no-procs attacks still capture the real chance
PASS native melee: critical result on damage row
PASS native melee: no-procs critical has inline CRIT without redundant notice

Source SHA-256:
.clearlog-work\Game.lua dcd6dc85d9b2cf74741e82ac9156128b782193d23a459d53f7cda324b099092a
.clearlog-work\Actor.lua e839397f675ca77d46aa345b81ea49c341c7109b4d3064e6b3598639be5fa711
.clearlog-work\Combat.lua 0cfaba3995f19a0ddb9e716b2ae8ab68e916c1e1784bb753f72b159bfd17af13
.clearlog-work\inspect-weapon\mod\class\Object.lua 17266682ae9c344a9b3c4d87a660ddb5c786c4a76103b804a91898146b69d02d
.clearlog-work\inspect-weapon\engine\Entity.lua 4c9eb3873ad9f99ffd01ab75a44faaf219a6dc1393dbf0a30584a9288f2141d2
