PopChoice Docs
Releases

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:recommendations passes with the 0.2.0 taste-control fixture set.

  • Let the merged development branch 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/build should report version: 0.2.0, channel: development, environment: development, and branch: 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 development into main, run the Container Images workflow on main with deploy_environment=production, approve the GitHub production Environment, 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/build should report version: 0.2.0, channel: production, environment: production, branch: main, and the expected release commit or image tag.

  • Do not set APP_VERSION in 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

On this page