Fix cookie expiration, ranking by completion time, and checklist confirmation

Issues fixed:
- #87: Extend video session cookie to 24h and add keep-alive refresh every
  30 minutes during playback to prevent expiration while watching long movies
- #88: Rank checklist completers by completion datetime (earliest first)
  in both the 100% tab and main stats ranking as tiebreaker
- #89: Add confirmation modal when unchecking a movie from the checklist
  to prevent accidental removal

Co-Authored-By: Claude Opus 4.5 <[email protected]>
This commit is contained in:
Mathieu Moran
2026-01-31 22:42:13 -05:00
co-authored by Claude Opus 4.5
parent c81135a4c1
commit 7a629b6c91
7 changed files with 217 additions and 36 deletions
+1 -1
View File
@@ -92,7 +92,7 @@ router.post("/session", (req, res) => {
const maxAgeSecondsRaw = typeof process.env.VIDEO_SESSION_MAX_AGE_SECONDS === "string" ? process.env.VIDEO_SESSION_MAX_AGE_SECONDS.trim() : "";
const maxAgeSeconds = Number.isFinite(Number(maxAgeSecondsRaw)) && Number(maxAgeSecondsRaw) > 0
? Math.floor(Number(maxAgeSecondsRaw))
: 60 * 60 * 8; // 8h
: 60 * 60 * 24; // 24h (longer default to avoid expiration during long movie sessions)
const cookie = [
`video_auth=${encodeURIComponent(token)}`,
"Path=/api/video",