feat(recommendations): content-based "Recommended for you" endpoint

Add GET /me/recommendations: rank mangas by weighted tag overlap with the
user's taste — explicit like +1.0, bookmark +0.5, dislike −1.0 (reaction
overrides bookmark). Per-tag affinities are summed, candidates scored by
their tags' affinity normalized by tag count (anti-tag-stuffing, à la
list_similar), with already-reacted/bookmarked/read mangas excluded and
net-negative candidates dropped (dislike down-ranks, not browse-hides).
Reuses manga_cols/cards_from_rows. Integration tests cover like-driven recs,
dislike down-rank, bookmark half-weight ordering, seen-exclusion, empty
cold-start, and auth.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
MechaCat02
2026-07-05 17:42:05 +02:00
parent bb833c7e71
commit d6a109df2d
7 changed files with 277 additions and 5 deletions

View File

@@ -1,6 +1,6 @@
[package]
name = "mangalord"
version = "0.107.0"
version = "0.108.0"
edition = "2021"
default-run = "mangalord"