Skip to content

feat(ei-parity): Story 3 - temporal identity resolution (CAP-4) - #224

Merged
Roddygithub merged 7 commits into
mainfrom
chore/bmad-ei-parity-report
Aug 14, 2026
Merged

Roddygithub merged 7 commits into
mainfrom
chore/bmad-ei-parity-report

Conversation

@Roddygithub

Copy link
Copy Markdown
Owner

Story 3 implementation for CAP-4 temporal identity resolution.

Changes:

  • : + dataclass
  • : , ,
  • : temporal agent selection, instance recycling (only agents without account_name), merged buff uptime for instance-recycled minions
  • : with awareness-bounded slice duration
  • : parameter for temporal minion cast attribution
  • : wires into pipeline

Corpus impact: 890 → 133 diffs across 35 logs (85% reduction)

  • Remaining: (~72), (~37), (6), (6), etc.

Tests: All 341 Python + 379 web tests pass.

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>
@Roddygithub
Roddygithub merged commit d2c4899 into main Aug 14, 2026
11 checks passed
@Roddygithub
Roddygithub deleted the chore/bmad-ei-parity-report branch August 14, 2026 22:21
Roddygithub added a commit that referenced this pull request Aug 14, 2026
Signed-off-by: Roland Salardon <r.salardon@gmail.com>
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