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
ProgSectiononly showed manual prog points. It embedded the genericProgPointscomponent (queries/api/prog-pointsfor manual entries) instead of the per-encounter/api/encounters/{id}/prog-curvethat auto-derives sessions from watched reports. RewroteProgSectionto fetch the per-encounter prog-curve and render aComposedChartwith auto sessions + manual points + a sessions table + the manual-entry form. Y axis switched from% remainingto a continuous prog distancephase + (1 - fp/100)because % remaining doesn't reflect phase structure (multi-boss phases collapse weirdly).prog_trajectory_for_encounterwas returning relative offsets.Fight.start_timeis FFLogs convention millisecond OFFSET fromReport.start_time. The chart was treating these tiny offsets as Unix epoch ms → all sessions plotted in 1970. Fixed by joiningReportand computing absolute wall-clock ms.- Test isolation bug in
test_poll_watched.py. The tests assumedpoll_oncereturned empty for static_id=1, but the new DSR data load exposed the bug. Tests now filtersummariesto just the test's seededT101_*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).