• v0.3.0 764d52f500

    v0.3.0
    Some checks failed
    Release / release (release) Failing after 2m1s
    Stable

    aureus released this 2026-05-26 05:47:33 +00:00 | 1 commits to main since this release

    v0.3.0

    A big UX, theming, and infrastructure release on top of v0.2.0.

    Highlights

    • Group recommendations rework. New Curate/Discover modes, Group Taste panel, and Consensus Picks. Audience candidates now require every member to influence the score, not just one. Personal ratings drive per-user group scoring under the hood.
    • Warm cinema theme. Amber accent on an espresso palette with editorial copy throughout.
    • Branding & navigation. Logo in the nav bar and as the favicon; URL-driven media-type selector; rate cards moved out of the Discover feed onto their own surface.
    • Richer cards. Expanded metadata on every card, with the rec engine now preserving and enriching source/library rows so the extra detail actually renders.
    • Auto-save ratings. Star click saves immediately — no more Save button.
    • Ratings management page for reviewing and editing your history in one place.
    • User badge personalization (#18) — per-user color/identity in shared views.

    Reliability & Performance

    • N+1 query batching across the rec engine, history sync, and feed assembly.
    • Library sync now resolves missing TMDB IDs via title search.
    • Cron metadata cache eviction is wired to CACHE_METADATA_DAYS; rec_links cap works across SQLite/Postgres/MariaDB.
    • Settings de-duplicates the not-interested list by tmdb_id.
    • Group member dropdown shows all users regardless of AUTH_MODE.
    • Ollama integration fixes; per-iteration cron logs demoted to debug.
    • Log output redacts sensitive fields (API keys, tokens, passwords).

    Privacy / Self-Hosting

    • No external CDN. All CSS, JS, and fonts are served from src/public/. The browser never contacts a third party — only the server talks to TMDB/Jellyfin/Seerr/Ollama.
    • Docker image builds Tailwind from source after COPY src/, so customized layouts ship correctly.

    Developer Experience

    • Two-tier Forgejo Actions pipeline with a custom CI image.
    • Parallel browser test matrix across 9 device tiers (Chromium, WebKit, Firefox — desktop/tablet/phone) via snapshot-based dev stacks.
    • Expanded dev bootstrap library (20 movies + 20 TV shows) and seeded Together/Family audiences.
    • Added MIT license.

    Upgrade Notes

    No manual migration steps — schema changes apply automatically on startup. Review CACHE_METADATA_DAYS in your .env if you want non-default cache retention.

    Downloads
  • v0.2.0 dd5cd3d770

    watchcraft v0.2.0
    Some checks failed
    Release / release (release) Failing after 2m48s
    Stable

    aureus released this 2026-05-21 05:53:58 +00:00 | 51 commits to main since this release

    What's new

    TV shows now appear in the feed

    Two bugs conspired to make TV shows invisible. The rate queue used a single
    LIMIT 30 query sorted by vote average — high-rated movies consumed all 30
    slots. TV shows now get their own top-30 pool, so both types are always
    represented.

    Redesigned feed layout

    The Movies / TV Shows tabs have moved to the top of the page. Each tab now
    owns a complete experience: a For You strip of in-library recommendations
    followed by the Discover feed. Previously For You was a single mixed strip
    above a tabbed Discover section.

    Rating fixes

    • "Haven't seen it" (★×0) no longer blocks recommendations. A skip vote
      was being treated as a preference signal and evicting items from the scored
      pool. It no longer does.
    • Watched-but-unrated items return to the rate queue after playback. Items
      played in Jellyfin are now cleared of their skip flag on history sync, so
      they surface for rating.
    • Watched items are no longer hidden from the rate queue entirely. Excluding
      all watch history meant watched TV shows could never be rated, making TV
      recommendations structurally impossible.

    Structured logging

    All application layers (feed, rec engine, Jellyfin sync, Seerr, cron jobs,
    routes) now emit structured JSON logs via pino, with module and
    request-scoped fields. Log level is controlled by the LOG_LEVEL env var.

    Leaner Docker image

    The runtime image no longer depends on tsx. TypeScript is compiled to
    plain JS in a multi-stage build; the final image runs node dist/src/app.js
    directly, cutting image size and removing a dev dependency from the attack
    surface.

    Downloads
  • v0.1.2 5e5d90b43f

    watchcraft v0.1.2
    All checks were successful
    Build & Push Docker Image / build (push) Successful in 1m6s
    Release / release (release) Successful in 38s
    Stable

    aureus released this 2026-05-21 03:44:30 +00:00 | 63 commits to main since this release

    watchcraft v0.1.2

    • Proxy and none auth modes now grant admin to the first user, matching
      the behaviour of local mode's setup wizard.
    • Auth failures now report which header was expected, and log received
      headers at debug level to aid misconfiguration diagnosis.
    Downloads
  • v0.1.1 8ffa33b297

    watchcraft v0.1.1
    All checks were successful
    Build & Push Docker Image / build (push) Successful in 1m4s
    Release / release (release) Successful in 38s
    Stable

    aureus released this 2026-05-21 03:24:11 +00:00 | 67 commits to main since this release

    watchcraft v0.1.1

    Fixes production image startup failure caused by pino-pretty being
    listed as a dev dependency and excluded from the Docker build.

    Downloads
  • v0.1.0 7b84045fd1

    watchcraft v0.1.0
    All checks were successful
    Build & Push Docker Image / build (push) Successful in 32s
    Release / release (release) Successful in 33s
    Stable

    aureus released this 2026-05-21 02:54:52 +00:00 | 70 commits to main since this release

    watchcraft v0.1.0

    Initial release. Self-hosted media recommendation app for Jellyfin libraries.

    What's included:

    • Star-rating UI for your Jellyfin library
    • Discovery feed powered by TMDB recommendations
    • Optional Seerr/Jellyseerr request buttons
    • Optional Ollama one-sentence explanations
    • Multi-user support with shared audiences
    • Three auth modes: local accounts, SSO proxy header, none
    • SQLite (default), PostgreSQL, and MariaDB support

    See docker-compose.yml for deployment. Requires a Jellyfin instance and a free TMDB API key.

    Downloads