Fixes from your 1.5.0/1.5.1 testing
- Profile card 404 — link now uses absolute URL
- Toast popping on every refresh — first-visit seed + sessionStorage dedupe
- Header badges showing during playback — CSS hides them when video player is active
- Watch heatmap placeholder — wired to real data via new
/users/{id}/watch-calendarendpoint, colors cells by intensity, tooltip on hover - Missing Top Directors / Actors in Recap — switched from reflection to
ILibraryManager.GetPeople()which actually returns data. Re-run Scan Watch History to populate - No rarity sort — new sort dropdown (Rarity high/low, Progress high/low, Title A-Z) + rarity-specific filter options (Common through Mythic)
- Filter dropdown looked light/dated — styled dark with custom arrow,
color-scheme: darkapplied - Daily quest buried in Stats — now has its own Quests tab
- More quests — 12 daily templates (up from 8) + 8 new weekly quests with bigger rewards (Cinephile, Series Sprinter, Daily Dedication, Marathon Week, Genre Week, Finisher, Creature of the Night, Weekend Binge)
- Admin page dated look —
<details>sections restyled with modern expanding containers, hover/open states, dark form controls with focus rings, arrow indicators - Scan All Users wasn't automatic — new
EvaluateAllProfiles()method runs on plugin startup so newly shipped badges auto-unlock based on existing counter data without manual intervention
How to test this one
- Update to 1.5.3 → restart Jellyfin
- Watch the server log for:
[AchievementBadges] Startup re-evaluation processed 10 profiles. - Re-run Scan Watch History once — this populates the new per-person counters (directors, actors) using the proper API. After it finishes, check the Recap tab → you should see Top Directors and Top Actors populated.
- Refresh the page twice — no toast should pop up the second time (unless you actually unlocked something new in between).
- Click the "Open shareable profile card" link — should load the card (not a 404).
- Play something — the header badge pills should disappear while the player is open and come back when you close it.
- Check the Quests tab in the nav — daily and weekly quest both visible.
- On My Badges, try the new Sort dropdown: Rarity highest / Progress most / Title A-Z.
- Try rarity filters: "Rarity: Legendary" should only show legendary badges.
- Stats tab → heatmap should show colored cells where you watched stuff. Hover a cell for day + count.
- Dashboard → Plugins → Achievement Badges → Settings — admin sections should look cleaner with arrows, hover states, better-styled inputs.
Known stuff I'm still tracking
- Daily quest uses a shared seed so all users get the same daily. Tell me if you want per-user randomization.
- Weekly quest also shared. Same.
- Score bank accrual is 5 base points per playback — tell me if you want to tune.
- Toast dedup uses sessionStorage (resets each tab). If you want permanent dedup across sessions, it'd need localStorage + a cleanup policy. Let me know.