From 18b37bbf7debf5f9936a36a177e0877d9203e83b Mon Sep 17 00:00:00 2001 From: Roland Salardon Date: Sat, 15 Aug 2026 14:34:55 +0200 Subject: [PATCH] fix(buffUptimes): pass slice bounds to player_agent_ids for instance recycling Non Squad Players (instance-recycled anonymous agents) were not getting their recycled aliases included in buff uptime calculation because player_agent_ids() was called without slice bounds, disabling the instance-recycling logic. Fix: pass slice_lo, slice_hi to player_agent_ids() so it can add other agents sharing the same instance_id whose awareness overlaps the slice window. Result: buffUptimes FAILs 175 -> 53 (-122, 70% reduction) on corpus. 20260118-020548 Non Squad Player buffs now match (0 diffs). Signed-off-by: Roland Salardon --- libs/gw2_analytics/src/gw2_analytics/ei_compare.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libs/gw2_analytics/src/gw2_analytics/ei_compare.py b/libs/gw2_analytics/src/gw2_analytics/ei_compare.py index 6b1f064d..d5da4f6d 100644 --- a/libs/gw2_analytics/src/gw2_analytics/ei_compare.py +++ b/libs/gw2_analytics/src/gw2_analytics/ei_compare.py @@ -1072,7 +1072,7 @@ def in_slice(event: Event, _lo: int = slice_lo, _hi: int = slice_hi) -> bool: # exactly the absence window to every one of them -- the # signature was several buffs on one actor all overcounting by # the identical amount. - for alias_id in player_agent_ids(agent): + for alias_id in player_agent_ids(agent, slice_lo, slice_hi): alias_uptime = tracker.compute_player_uptimes( alias_id, duration_ms,