feat(rec): per-card member interest UI + audience staleness fixes #19

Merged
aureus merged 3 commits from feat/per-card-audience-interest into main 2026-05-27 05:46:44 +00:00
Owner

Each card now ships memberInterest with per-member score + rated sources;
multi-member audiences render tier-ringed avatars with hover tooltips and a
"View by member" sidebar that reorders cards client-side. Adds ?debug=recs
for inspecting raw source contributions. Fixes buildConsensusPicks to
enforce all-members-influence (was missing the COUNT(DISTINCT) HAVING) and
adds audience.last_refreshed_at so the TMDB worker re-scores after new
ratings even when source rec_links are already cached. Bumps the Ollama
timeout default from 60s to 180s.

Each card now ships memberInterest with per-member score + rated sources; multi-member audiences render tier-ringed avatars with hover tooltips and a "View by member" sidebar that reorders cards client-side. Adds ?debug=recs for inspecting raw source contributions. Fixes buildConsensusPicks to enforce all-members-influence (was missing the COUNT(DISTINCT) HAVING) and adds audience.last_refreshed_at so the TMDB worker re-scores after new ratings even when source rec_links are already cached. Bumps the Ollama timeout default from 60s to 180s.
feat(rec): per-card member interest UI + audience staleness fixes
Some checks failed
PR Checks / test (pull_request) Failing after 5m3s
f5b5f9ebe3
Each card now ships memberInterest with per-member score + rated sources;
multi-member audiences render tier-ringed avatars with hover tooltips and a
"View by member" sidebar that reorders cards client-side. Adds ?debug=recs
for inspecting raw source contributions. Fixes buildConsensusPicks to
enforce all-members-influence (was missing the COUNT(DISTINCT) HAVING) and
adds audience.last_refreshed_at so the TMDB worker re-scores after new
ratings even when source rec_links are already cached. Bumps the Ollama
timeout default from 60s to 180s.
fix(tests): use db.fn.now() for fetched_at so MariaDB accepts the insert
Some checks failed
PR Checks / test (pull_request) Failing after 3m12s
d5b8c53faf
The new loadAudienceWork tests bound `fetched_at` from a JS ISO string
(toISOString) — MariaDB strict mode rejected the `T`/`Z` format and the
suite failed with "Incorrect datetime value". Use db.fn.now() so the
driver renders the column's native CURRENT_TIMESTAMP for every backend.
fix(tests): drop flaky 'buildFeed returns same order twice' assertion
All checks were successful
PR Checks / test (pull_request) Successful in 5m35s
d4e5ebc093
The assertion was non-deterministic on Postgres: partner cards land in
discoverMovies without a secondary sort, so two sequential buildFeed calls
could include different partner_card subsets. The intent (no focusedUserId
parameter) is already enforced by the TypeScript signature; composite-order
behavior is covered by the other memberInterest tests.
aureus merged commit 9499668fd3 into main 2026-05-27 05:46:44 +00:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
aureus/watchcraft!19
No description provided.