Repository navigation
fix(rotation): add missing finders for Shale Storm, Relic of Sorrow, Unnatural Traversal, Shattered Aegis - #232
Closed
Roddygithub wants to merge 17 commits into
Closed
Roddygithub wants to merge 17 commits into
Roddygithub wants to merge 17 commits into
Conversation
Instrumenter les points de comparaison EI pour émettre des résultats atomiques PASS/FAIL/KNOWN_DELTA, versionner le registre known-deltas schema v1, et produire un rapport détaillé privé séparé de la baseline story 1. Les écarts de rotation sont atomisés par cast et compétence ; --json reste inchangé et aucune donnée joueur ne fuit dans l'agrégat. Signed-off-by: Roland Salardon <r.salardon@gmail.com>
…te nanoid - Ajouter un helper de cast de type `_rows` dans les tests `test_ei_compare.py` pour resoudre les erreurs mypy liees au type de retour opaque `dict[str, object]`. - Faire un cast sur `differences` dans le test de comptage d'erreurs. - Mettre a jour `nanoid` de `3.3.17` vers `3.3.18` dans le frontend web pour eliminer la vulnerabilite de securite CVE-2026-67213 dectectee par Trivy. Signed-off-by: Roland Salardon <r.salardon@gmail.com>
Adds temporal identity resolution for EI parity certification: - scan_ownership_intervals() in gw2_evtc_parser: tracks spawn/despawn/master-change - TemporalIdentityResolver in gw2_analytics: time-parameterized queries - ei_compare.py: temporal agent selection, instance recycling detection (only agents without account_name), merged buff uptime for instance-recycled minion groups - BuffStateTracker.compute_merged_uptimes(): per-slice awareness-bounded uptime - rotation.py: ownership_resolver for temporal minion cast attribution Corpus diffs reduced from 890 → 133 across 35 logs. Signed-off-by: Roland Salardon <r.salardon@gmail.com>
Adds temporal identity resolution for EI parity certification: - gw2_evtc_parser: scan_ownership_intervals() + OwnershipInterval dataclass Tracks spawn/despawn/master-change events for temporal ownership - gw2_analytics.temporal_identity: TemporalIdentityResolver, AgentIdentity, build_resolver Time-parameterized queries for ownership/identity - ei_compare.py: temporal agent selection, instance recycling detection (only agents without account_name), merged buff uptime for instance-recycled minions - buff_state.py: compute_merged_uptimes() with awareness-bounded slice duration - rotation.py: ownership_resolver parameter for temporal minion cast attribution - ei_diff.py: wires scan_ownership_intervals into pipeline Corpus diffs reduced from 890 → 256 across 35 logs (71% reduction). All tests pass, lint clean, TypeScript compiles. Signed-off-by: Roland Salardon <r.salardon@gmail.com>
Exclude .agents/, _bmad/, .opencode/ from ruff linting. These are third-party framework files with pre-existing lint issues that would require significant manual fixes. They are not part of our codebase and should not block our CI. Signed-off-by: Roland Salardon <r.salardon@gmail.com>
Auto-format docs/adr/0010-temporal-identity-resolution.md and libs/gw2_analytics/src/gw2_analytics/ei_compare.py to pass Ruff format check in CI. Signed-off-by: Roland Salardon <r.salardon@gmail.com>
- rotation.py: use Callable from typing instead of builtin callable - temporal_identity.py: fix variable type annotation for agent_obj - test_temporal_identity.py: add type annotations for intervals - temporal_identity.py: export OwnershipInterval in __all__ - __init__.py: already exports OwnershipInterval from temporal_identity Signed-off-by: Roland Salardon <r.salardon@gmail.com>
…l buff-gains The buff-gain cast windows only tracked _GUARDED_CAST_SKILLS (effect-GUID guards), so is_casting(target, 62876) never matched and the Grand Finale guard in _BUFF_GAIN_GRAND_FINALE_GUARD was a silent no-op. Flame Wheel's orb (DualOrbit* / Grand Finale) re-applies of buff 62931 at 1200ms duration were mapped to skill 62758, producing 5 spurious casts on log 20260224-233019. Build cast windows for _GRAND_FINALE (62876) too. Before/after (full corpus, 35 logs): total diffs 256 -> 255, rotation bucket 52 -> 51 rows; log 20260224-233019 70 -> 69 diffs, 62758 removed from rotation deltas. Signed-off-by: Roland Salardon <r.salardon@gmail.com>
- expose src_is_peer (0x80 offcycle bit) on HealingEvent mirroring GW2EIEvtcParser EXTHealingExtensionEvent.SrcIsPeer used by SanitizeForSrc in EXTHealingCastFinder - gate _HEALING_CASTS_SQUAD_ONLY (71356/13980) on not src_is_peer instead of squad membership (squad gate was redundant: parser already drops non-peer heals) - remove unused squad_agent_ids param from build_skill_rotation - add 5780 to _MISSILE_CASTS with _MISSILE_ICD 900 (EI MissileCastFinder(5780,5780).UsingICD(900)) - 5780 rotation FAILs: 2 -> 0; corpus 255 -> 245 Signed-off-by: Roland Salardon <r.salardon@gmail.com>
…Unnatural Traversal, Shattered Aegis - Shale Storm (72906): BuffGainCastFinder for ShaleStormBuff (72996) and ShaleStormSecondaryAttackBuff (79373) - Relic of Sorrow (74410): EffectCastFinder with RelicOfSorrow1/2/3 effect GUIDs - Unnatural Traversal (63195): EffectCastFinderByDst with UntamedUnnaturalTraversal effect GUID - Shattered Aegis (22499): DamageCastFinder with 50ms ICD These address missing rotation casts in the corpus. Signed-off-by: Roland Salardon <r.salardon@gmail.com>
Roddygithub
marked this pull request as ready for review
August 15, 2026 18:27
Signed-off-by: Roland Salardon <r.salardon@gmail.com>
Roddygithub
force-pushed
the
fix/rotation-finders
branch
from
August 15, 2026 18:43
4858f83 to
00f8779
Compare
…Unnatural Traversal, Shattered Aegis - Shale Storm (72906): BuffGainCastFinder for ShaleStormBuff (72996) and ShaleStormSecondaryAttackBuff (79373) - Relic of Sorrow (74410): EffectCastFinder with RelicOfSorrow1/2/3 effect GUIDs - Unnatural Traversal (63195): EffectCastFinderByDst with UntamedUnnaturalTraversal effect GUID - Shattered Aegis (22499): DamageCastFinder with 50ms ICD These address missing rotation casts in the corpus. Signed-off-by: Roland Salardon <r.salardon@gmail.com>
Signed-off-by: Roland Salardon <r.salardon@gmail.com>
Signed-off-by: Roland Salardon <r.salardon@gmail.com>
- Implement both EI finder paths: 1. DamageCastFinder: disabled when UnholyBurst effect data exists (UsingDisableWithEffectData) 2. EffectCastFinder for UnholyBurst: triggers on effect with DesertShroud/related hit checks - Add DesertShroud buff removal check (skill 40052, 50ms window) - Add related UnholyBurst hit check (skill 38767, 10ms window) - Increase UnholyBurst proximity window to 100ms (was 50ms) to catch early casts Fixes 31 Spiteful Spirit FAILs across corpus. Signed-off-by: Roland Salardon <r.salardon@gmail.com>
Owner
Author
|
Closed as superseded: the finders (Shale Storm, Relic of Sorrow, Unnatural Traversal) were already merged into main via #233, and the Spiteful Spirit (29560) logic landed in its final form via #237. Remaining content here was the obsolete v1 Spiteful Spirit code, a corrupted indentation on Infiltrator's Signet in rotation.py, an out-of-scope known-deltas.json emptying, and the still-flaky test unskip — all breaking CI. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adds missing rotation finders for 4 skills: