Skip to content

observe: count one wipe while a member may revive; emit the wipe trace event - #282

Merged
pjerra merged 1 commit into
devfrom
fix/observe-wipe-hysteresis
Oct 21, 2026
Merged

pjerra merged 1 commit into
devfrom
fix/observe-wipe-hysteresis

Conversation

@pjerra

@pjerra pjerra commented Oct 21, 2026

Copy link
Copy Markdown
Owner

Round 2 on 19z19 (Zul'Farrak step 26): the tank revived in place at 1/3 HP 2 s after the first all-dead and died again 10 s later, so the latch from #280 (re-arm as soon as one member is alive) counted one collapse twice, and the deaths oracle read 0 wipes because observe mode only bumped the report counter without a 'wipe' trace event. Now every counted wipe also emits the 'wipe' trace event (leg, error, observe: true), and the latch re-arms only when fewer than 3 members are dead (the module's kWipeDead, same as DungeonRunPolicy.h:1624). On the r2 sequence this counts the two real collapses and nothing else; the oracle text reads 2 wipes. Test TestObserveWipeLatchReArmsBelowThreeDead (all-dead / 4 dead / all-dead / all alive / all-dead => Wipes 2 and exactly 2 events); mutations (re-arm on not-all-dead; remove the event) fail it; go test ./... clean. Reviews: Sonnet cold review (SHIP; no other reader of a 'wipe' trace event). Limits: a party smaller than 3 re-arms on every poll that is not all-dead (as before); two collapses separated by a partial recovery with 3+ still dead count as one (the module does the same). leader_deaths and resurrections are untouched (they belong to the agent-led driver).

…e event

The observe watch counted a wipe on the rising edge of all-dead and re-armed
the latch as soon as one member was alive, so a bot revived in place for one
poll and dead again the next double counted a collapse (r2-19z19 step 26:
one collapse of the tank was counted twice, 3 wipes for 2 collapses). The
latch now re-arms only once fewer than 3 members are dead (the module's
kWipeDead), and every counted wipe goes to the trace as a "wipe" event with
"observe": true, so the tracecheck deaths oracle sees it (stepFailedRecover
never runs in observe mode, the oracle read 0 wipes).
@pjerra
pjerra merged commit fdf6d35 into dev Oct 21, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant