Phase 1d — Recommendation Engine & Browse UI #5
Labels
No labels
Compat/Breaking
Kind/Bug
Kind/Documentation
Kind/Enhancement
Kind/Feature
Kind/Security
Kind/Testing
Priority
Critical
Priority
High
Priority
Low
Priority
Medium
Reviewed
Confirmed
Reviewed
Duplicate
Reviewed
Invalid
Reviewed
Won't Fix
Status
Abandoned
Status
Blocked
Status
Need More Info
No milestone
No assignees
1 participant
Notifications
Due date
No due date set.
Reference
marvin8/xique#5
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
The core feature: tell a user what to watch next.
This issue ports the recommendation engine proven in the spike (TMDB recommendations/similar fan-out, bayesian quality weighting, franchise cap, TV multi-seed requirement, genre-affinity discovery layer, wildcard injection, release-date filter) and builds the server-rendered browse UI — paginated movie/TV lists, a details page, rate/hide/mark-watched actions, the unrated-watched view, and dark/light themes.
Plan of attack for 1d, ported from the spike's round-2 (scoring formula reverse-checked against its tables: score = adjacency × clip((bayes/6)², 0.3, 2.0), adjacency = Σ(seed rating − 5), bayes m=300 C=6.0 — Alien 26×1.87≈48 ✓, Kill Bill 18×1.72≈31 ✓).
Findings
recommendationstable does not exist yet (migration 2 stopped at dismissals) → migration 3.belongs_to_collection, which only exists on movie details, not fan-out payloads → per-candidate detail fetch after the vote floor (vote_count ≥ 100)./{movie,tv}/{id}/recommendations+/similarpage 1 per seed; seeds = ledger items rated ≥ 8 (spike-faithful).Rulings (full list in the plan file)
vote_count.gte=100, release-date ≤ today, bayes-sorted.random.Random(user_id)from discovery mid-tier (ranks 10–60)./movies,/shows,/discover,/item/{id},/library/unrated,/actions/{rate,hide,seen,refresh}(rate handles the rate+watched / rate+hide combos),/themecookie override withprefers-color-schemedefault; 20/page pagination.Branch:
feat/issue-5-phase-1d-recommendationsCommits: ci fold (max_diff_lines 5000) → recommendations schema + ledger helpers → TMDB client → engine + recommend job → browse UI; then review fix wave. No new dependencies; no dependency bump today (consumed this morning).
Merged via PR #10 (
e939d3c). Recommendation engine (spike round-2 port, migration 3, workerrecommendjob) and the zero-JS browse UI are onmain; 305 tests, real-ledger smoke verified, whole-branch review approved.