PopChoice v0.2.0
Better Taste Control release.
Status: release candidate. Tracked by #826.
Release Goal
Make PopChoice feel more controllable by letting users describe what they want, what they want to avoid, and how safe or surprising the recommendation should be.
Highlights
- Explicit avoids and constraints in Fast Pick and Normal Match.
- Optional, lower-friction reference movie UX.
- Discovery appetite control for safe, balanced, and surprising picks in both Fast Pick and Normal Match.
- Result feedback loop v1: completed results now expose correction feedback signals plus "More like this" and "Try another" actions backed by the existing one-shot more-picks queue.
- Deterministic recommendation eval cases for the new taste-control signals: hard avoids, runtime limits, discovery appetite, optional reference movies, and feedback-derived memory.
- Product docs now describe the completed 0.2.0 behavior as the current product contract and keep future signal-model work separate.
Implementation Scope
- #827: explicit avoids and constraints.
- #828: optional reference movie.
- #829: discovery appetite.
- #830: result feedback loop v1.
- #831: deterministic eval coverage.
- #832: product docs and release notes.
Out Of Scope
- Taste Swipe MVP.
- Multi-device group rooms.
- A full canonical
TasteSignal[]recommendation backend rewrite.
Verification Before Promotion
-
Confirm every 0.2.0 implementation PR passed the normal PR gate: lint, type-check, build, server tests, deterministic recommendation evals, and relevant e2e/storybook coverage.
-
Confirm
npm run eval:recommendationspasses with the 0.2.0 taste-control fixture set. -
Let the merged
developmentbranch deploy to the Coolify development resource, then verify:curl -fsS https://dev.pop-choice.shchilkin.dev/api/health | jq . curl -fsS https://dev.pop-choice.shchilkin.dev/api/build | jq ./api/buildshould reportversion: 0.2.0,channel: development,environment: development, andbranch: development. -
Smoke-test development manually:
- Fast Pick with at least one hard avoid.
- Normal Match with an empty reference movie.
- Safe, balanced, and surprise discovery appetite.
- Completed-result feedback plus "More like this" or "Try another".
-
Promote production only after development is accepted: merge
developmentintomain, run theContainer Imagesworkflow onmainwithdeploy_environment=production, approve the GitHubproductionEnvironment, and wait for Coolify deploy verification. -
Verify production after promotion:
curl -fsS https://pop-choice.shchilkin.dev/api/health | jq . curl -fsS https://pop-choice.shchilkin.dev/api/build | jq ./api/buildshould reportversion: 0.2.0,channel: production,environment: production,branch: main, and the expected release commit or image tag. -
Do not set
APP_VERSIONin Coolify project, environment, resource, or preview variables. The deployed image should provide the package version.
Full Changelog
https://github.com/shchilkin/PopChoice/compare/v0.1.0...v0.2.0