Vigil
← All news

v1.14.2 — prog curve uses per-encounter trajectory + DSR test data loaded

- **`ProgSection` only showed manual prog points.** It embedded the generic `ProgPoints` component (queries `/api/prog-points` for manual entries) instead of the per-encounter `/a…

Fixed

  • ProgSection only showed manual prog points. It embedded the generic ProgPoints component (queries /api/prog-points for manual entries) instead of the per-encounter /api/encounters/{id}/prog-curve that auto-derives sessions from watched reports. Rewrote ProgSection to fetch the per-encounter prog-curve and render a ComposedChart with auto sessions + manual points + a sessions table + the manual-entry form. Y axis switched from % remaining to a continuous prog distance phase + (1 - fp/100) because % remaining doesn't reflect phase structure (multi-boss phases collapse weirdly).
  • prog_trajectory_for_encounter was returning relative offsets. Fight.start_time is FFLogs convention millisecond OFFSET from Report.start_time. The chart was treating these tiny offsets as Unix epoch ms → all sessions plotted in 1970. Fixed by joining Report and computing absolute wall-clock ms.
  • Test isolation bug in test_poll_watched.py. The tests assumed poll_once returned empty for static_id=1, but the new DSR data load exposed the bug. Tests now filter summaries to just the test's seeded T101_* codes.

Added — dev test data: 20 DSR reports under Default Static

  • User shared a guild reports URL (FFLogs guild 136735). Pulled via the existing user-OAuth client, added 20 DSR reports as watched under Default Static (skipped 1 actually-FRU report per user instruction).
  • Ingested ~510 fights, ~3.1M events, 467 DSR wipes + 5 kills.
  • Encounter 1076 (DSR Legacy) had no fight_model — cloned the 162 rows from encounter 1065's existing field-backfill model, then ran T-104 consensus (added 1 new ability) + T-203 mechanic classifier (163 labeled: 36 raidwide, 25 aoe_party, 7 tankbuster, 80 cosmetic, 15 unknown).
  • Bulk-computed fault scores: 602 root, 1389 cascade, 2125 unknown across the 467 wipes.

Added — README pointers, no functional change

Encounter labels updated in 3 UI files (Encounters / FieldStats / Home) to include 1076=DSR + 1065=DSR(alt).