Vigil
← All news

v0.18.0 — ### Added

- **T-104** Cross-pull consensus timeline (boss-side only, PLAN §3 Invariant 3). `analysis/consensus.py::consensus_timeline_for_encounter(session, encounter_id)` reads every inges…

  • T-104 Cross-pull consensus timeline (boss-side only, PLAN §3 Invariant 3). analysis/consensus.py::consensus_timeline_for_encounter(session, encounter_id) reads every ingested kill of the encounter, runs T-103 phase segmentation per pull, and for each phase clusters boss casts by ability_game_id. An ability is canonical if occurrence_rate ≥ 0.70 (PLAN-spec default). Median relative-t and a half-IQR variance proxy describe the timing distribution. Player casts are filtered via the combatants table.
  • GET /api/encounters/{id}/consensus exposes the per-encounter canonical timeline.
  • React ConsensusTimeline component in PullDetail (collapsed by default) — per-phase canonical-ability table sorted by median time.
  • Phase 1 of PLAN is now complete. All 6 Phase-1 tasks (T-101, T-103, T-104, T-105, T-106, T-107, T-108) shipped.
  • 8 new tests (6 unit + 2 API smoke). 166 tests total.
  • Live AC nailed FRU's deterministic structure: 11 ingested FRU kills produce a 6-phase consensus. The boss is essentially frame-deterministic — most canonical abilities recur at 100% with ±0.1s variance. A few abilities show high variance (±21s on ability 40149 in P0) — likely position-dependent reactions; future M-INFER refinements could disambiguate.

Data

  • Ingested 10 additional public FRU kills via a one-off scripts/ingest_fru_kills.py so the consensus algorithm had ≥3 pulls per encounter to operate on. Dev DB now carries 11 FRU kill fights with events (~100k events of boss casts + damage).