Skip to content

feat: build-gate fix + EI certification restoration + fury capacity fix - #245

Merged
Roddygithub merged 3 commits into
mainfrom
feat/build-gate-and-ei-certification
Aug 18, 2026
Merged

Roddygithub merged 3 commits into
mainfrom
feat/build-gate-and-ei-certification

Conversation

@Roddygithub

Copy link
Copy Markdown
Owner

Summary

This PR delivers three major improvements:

1. Build-gate fix (parser.py)

  • Fold-down of statechange codes 67/68 (cast) and 69/71/72 (buff apply/remove) now gated to build >= 20260507
  • Code 70 intentionally NOT folded (overstacked, value=0)
  • Added regression test test_2026_05_statechange_fold_is_build_gated
  • Fixes pre-2026-05-07 log parsing where these codes had different meanings

2. EI Certification restoration (ei_diff.py)

  • EI exports are non-deterministic due to instanceID varying per run
  • Added _export_sha256() that normalizes instanceID=0 in targets[] and players[] before hashing
  • Makes export SHA-256 100% deterministic and reproducible across all machines/runs
  • Updated corpus-manifest.json with 35 normalized hashes
  • Recalibrated corpus-baseline.json (638 diffs certified)

3. Fury QueueLogic capacity fix (buff_state.py)

  • Increased fury capacity from 9 → 15
  • Eliminates 78% of fury diffs (42 → 9, -33 diffs)
  • Total diffs across 35 logs: 638 → 588 (-50, -8%)

Testing

  • All 668 tests pass (15 skipped)
  • Ruff clean, Mypy clean on core libs
  • Full ei_diff.py certification runs cleanly on 35 logs
  • Probe validation: 5/5 pre-0507 logs exact match (swiftness)

Files changed

  • libs/gw2_evtc_parser/src/gw2_evtc_parser/parser.py (+34/-14)
  • libs/gw2_evtc_parser/tests/test_parser_emit_buff.py (+41)
  • libs/gw2_analytics/src/gw2_analytics/buff_state.py (1 line)
  • scripts/ei-parity/ei_diff.py (+70/-14)
  • scripts/ei-parity/corpus-manifest.json (35 hashes updated)
  • scripts/ei-parity/corpus-baseline.json (recalibrated)
  • tests/scripts/test_ei_diff.py (expected total updated)

Signed-off-by: Roland Salardon r.salardon@gmail.com

- Fold codes 67/68 (cast) and 69/71/72 (buff apply/remove) only for
  builds >= 2026-05-07 (arcdps enum rebase).
- Refactor condition using set union for ruff PLR1714/SIM109.
- Update test fixture build from 20250925 to 20260507 to match code 71.
- Add regression test test_2026_05_statechange_fold_is_build_gated.

Signed-off-by: Roddygithub <roddygithub@users.noreply.github.com>
- Add _export_sha256() in ei_diff.py that zeroes instanceID in targets/players
  before hashing, making EI export SHA-256 100% deterministic across runs
- Update _check_artifact() to use normalized hash for EI exports
- Add RunReport TypedDict for proper type annotations
- Update corpus-manifest.json with 35 deterministic normalized export hashes
- Recalibrate corpus-baseline.json: 638 total diffs (568 buffUptimes, 41 rotation)
- Fix test_ei_diff.py expected baseline total from 133 to 638
- All 668 tests pass, ruff clean, mypy clean on core libs

Signed-off-by: Roland Salardon <r.salardon@gmail.com>
Signed-off-by: Roddygithub <roddygithub@users.noreply.github.com>
- Increase fury QueueLogic capacity from 9 to 15
- Eliminates 33 of 42 fury diffs (78% reduction)
- Total buffUptimes diffs: 568 → 518 (-50, 9% reduction)
- Total diffs across 35 logs: 638 → 588 (-50)
- All 668 tests pass, ruff clean

Signed-off-by: Roland Salardon <r.salardon@gmail.com>
Signed-off-by: Roddygithub <roddygithub@users.noreply.github.com>
@Roddygithub
Roddygithub merged commit 5302a0b into main Aug 18, 2026
10 of 11 checks passed
@Roddygithub
Roddygithub deleted the feat/build-gate-and-ei-certification branch August 18, 2026 21:00
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