Skip to content

Seek/i18n fixes + watchlist & expanded recommendation signals - #73

Merged
Athenox14 merged 1 commit into
masterfrom
claude/pensive-pascal-PENgR
Jun 3, 2026
Merged

Seek/i18n fixes + watchlist & expanded recommendation signals#73
Athenox14 merged 1 commit into
masterfrom
claude/pensive-pascal-PENgR

Conversation

@Athenox14

@Athenox14 Athenox14 commented Jun 3, 2026

Copy link
Copy Markdown
Owner

This branch bundles three pieces of work.

1. Seek freeze fix

VideoPlayer.vue — the lastPreheatSegment dedup no longer swallows forced user seeks (only hover preheats), fixing the endless "too far ahead" 504 loop / frozen playback when seeking where you'd just hovered.

2. Bug-report toast i18n

BugReportButton.vue now uses the existing bugReport.success / bugReport.failed keys instead of the non-existent submitted / submitError.

3. Watchlist + expanded recommendation algorithm

Watchlist (new feature):

  • watchlist table + toggleWatchlist / watchlistStatus / getWatchlist endpoints
  • detail-page toggle button, home "My list" rail, i18n (fr/en/de)
  • WATCHLIST_ADD/REMOVE events; folded into the taste model and used as a positive affinity signal

New signals fed into scoreCandidateWithProfile:

  • likes / dislikes (strengthened) + watchlist affinity
  • per-title abandonment curve (normalized deciles), effective completion (>75%), sessions-to-finish, impression/hover click-through — via a new cross-user media_stats table + mediaStatsEngine
  • active vs idle playback time
  • impressions without click and hover without opening
  • collection / saga, keywords / themes, director / composer, age rating, popularity / novelty (new TMDB-enriched media columns)
  • genre × moment (weekday × daypart affinity — e.g. action Saturday night, cartoons Wednesday)
  • binge / session detection + co-viewing capture
  • seasonality (month buckets) and churn (gaps, reactivations)

Data model: new media columns (keywords, director, composer, certification, popularity), new watchlist and media_stats tables — all via idempotent migrations. TMDB enrichment extended for keywords, crew, certification, popularity.

Docs: docs/recommendation-algorithm.md documents every signal and proposes future improvements (cold-start/exploration, recency decay, diversity/MMR re-ranking, score normalization & explanations, offline eval, per-household profiles, etc.).

https://claude.ai/code/session_01RF3jY6P1ySdMQzuv97NFtL

- VideoPlayer: don't let the lastPreheatSegment dedup swallow forced user
  seeks. When a user clicked exactly where they had just hovered, the forced
  preheat-seek was dropped, leaving ffmpeg at its old position while the player
  kept requesting the far-ahead target segment, triggering an endless
  'too far ahead' 504 loop and a frozen playback. Dedup now only applies to
  non-force hover preheats.
- BugReportButton: use the existing bugReport.success / bugReport.failed i18n
  keys instead of the non-existent bugReport.submitted / bugReport.submitError,
  which made the success/error toast render the raw key path.

https://claude.ai/code/session_01RF3jY6P1ySdMQzuv97NFtL
@Athenox14
Athenox14 merged commit 2575c7b into master Jun 3, 2026
1 check passed
@Athenox14 Athenox14 changed the title fix: seek freeze on timeline + bug-report toast i18n Seek/i18n fixes + watchlist & expanded recommendation signals Jun 3, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants