Skip to content

Releases: ZacharyArthur/tasterr

v2.3.1

Choose a tag to compare

@ZacharyArthur ZacharyArthur released this 09 Oct 00:55
Immutable release. Only release title and notes can be modified.
bde1f59

Fixed

  • Local email/password sign-in now correctly recognizes Seerr admins and uses their full profile display name. Fixes #44 in #45.
  • Failed or incomplete profile reads reject sign-in without updating local identity or creating a session, and emit a generic warning.

Upgrade

Use ghcr.io/zacharyarthur/tasterr:2.3.1 and recreate the container.
Sign out and back in with local credentials to refresh an incorrect admin flag or display name.
No configuration change or database migration is required; Plex sign-in is unchanged.

Verification

  • Required PR checks and merged-main just release-check passed: 909 backend tests, 181 frontend tests, five browser journeys, and native container smoke.
  • Backend and frontend locked dependency audits found no known vulnerabilities.
  • The release owner confirmed successful manual candidate testing of local-admin sign-in and explicitly waived the complete automated live Seerr rerun for this patch. No fresh complete live-suite pass is claimed.
  • Candidate and stable images passed anonymous pulls and fresh disposable installations: exact release revision/version, health, private logs, headers, SPA, non-root uid, volume persistence, and cleanup.
  • Both AMD64 and ARM64 manifests and GitHub artifact attestations were verified.
  • 2.3.1, 2.3, 2, and latest resolve to the same release manifest. The commit-SHA candidate retains its pre-tag digest.

Released artifacts

  • Release commit: bde1f59cab8d513724f9b9161a3ed11fafbdd4e5
  • Stable multi-platform manifest: sha256:de37229e53424f15078d3fbee86f3e34b3db8040b1b9da400e3bda4416981fae
  • Immutable image reference: ghcr.io/zacharyarthur/tasterr@sha256:de37229e53424f15078d3fbee86f3e34b3db8040b1b9da400e3bda4416981fae
  • Candidate tag: sha-bde1f59cab8d513724f9b9161a3ed11fafbdd4e5
  • Unchanged candidate manifest: sha256:faa233165a7d29de002b6b3a97a090e16e75748e5596d3bce37179d0fcf50090

Pre-tag evidence: docs/releases/v2.3.1.md.

Full changelog: v2.3.0...v2.3.1

v2.3.0

Choose a tag to compare

@ZacharyArthur ZacharyArthur released this 06 Oct 21:48
Immutable release. Only release title and notes can be modified.
40e111a

What's new

  • Choose TV seasons before requesting a show when Seerr permits partial requests. Regular seasons start selected; Specials start off and appear only when allowed. The default choice preserves whole-series requests.
  • Season selection retains Standard/4K quality and advanced destinations. Cancel and Escape submit nothing, and keyboard focus returns to the title details.
  • Compatible source-map-js and Mako security fixes, updated deployment/support docs and repository-managed CodeQL scanning.

Contributor credit

Thank you to @jpdexter101-lang for contributing the season selector in PR #40.

Upgrade

Back up and validate SQLite, pull ghcr.io/zacharyarthur/tasterr:2.3.0, and recreate using the existing data volume. No new migration is introduced. Image-only rollback uses the previous v2.2.0 digest on the same schema; returning to v1.1 requires the documented downgrade or matching backup.

Verification and limitations

Release checks passed: 892 backend tests, 181 frontend tests, five real-backend browser journeys and native container smoke. Both dependency audits were clean.

Fresh Seerr 3.5.0 contracts passed twelve cases; the 4K destination case skipped because no disposable 4K title was supplied. All five owner/managed/shared Plex contracts passed on PMS 1.43.4.10903-e5521bd8c after correcting the live check's candidate accounting.

Partial season selection requires Seerr's partialRequestsEnabled setting; Specials additionally require enableSpecialEpisodes and eligible episode data. Existing availability guards remain. Explicit-season request payloads are covered by mocked tests and browser fixtures rather than a live TV season round-trip. The owner-confirmed deployment error-log limitation is recorded in the redacted evidence.

Upgrade guidance · Full changelog

Published images

  • Release commit: 40e111a.
  • Pinned stable image: ghcr.io/zacharyarthur/tasterr@sha256:61464e1da41d31de95c9193c1abb8384729e32af67df7f07c676abe7a0792643.
  • Aliases 2.3.0, 2.3, 2 and latest share that digest.
  • The SHA candidate remains unchanged at sha256:9219e72757b9ffb9f9ab2f8bdc73f757811e38d3d8ec598ee04a6c72f62d2d14.
  • Both architectures (linux/amd64, linux/arm64) and both image attestations were verified against the expected workflow, source refs and release commit.
  • Fresh anonymous candidate and tagged installations passed health, private logs, headers, SPA, non-root runtime, version/revision and volume-persistence checks; disposable resources were cleaned up.

v2.2.0

Choose a tag to compare

@ZacharyArthur ZacharyArthur released this 05 Oct 02:47
Immutable release. Only release title and notes can be modified.
80b8324

What's new

  • Optional household discovery filters hide available/partially available library titles, including 4K availability, and excluded subscription-service matches. Admin settings and explicit environment overrides are supported; both filters default off. Search, My List, Continue Watching and direct title access remain available.
  • Authorized users can choose request servers, quality profiles and root folders for movies and TV, including standard/4K variants. Seerr defaults remain when no destination is selected.
  • Compatible dependency security fixes and updated deployment/support documentation.

Contributor credit

Thank you to @jpdexter101-lang for contributing the request destination picker in PR #36.

Upgrade

Back up and validate SQLite, pull ghcr.io/zacharyarthur/tasterr:2.2.0, and recreate using the existing data volume. No new migration is introduced. Image-only rollback to the prior v2.1.1 digest uses the existing schema; returning to v1.1 requires the documented downgrade or matching backup.

Verification and limitations

Required CI and merged-main release checks passed: 828 backend tests, 144 frontend tests, four browser journeys and native container smoke. Both dependency audits were clean.

Fresh Seerr contracts passed 11 cases; 4K destination persistence was skipped for an absent data precondition. The approved unchanged-Plex exception and deployment logging limitation are recorded in the redacted evidence.

Unverified titles stay visible after the shared five-second budget expires. The 4,096-entry cache has no measured household warmth or memory guarantee. Browser smoke journeys predate exclusions; the new behavior has local API, unit and interaction coverage.

Published images

  • Release commit: 80b8324.
  • Pinned stable image: ghcr.io/zacharyarthur/tasterr@sha256:7f7cef9566d98809799397c05d8fba45e2410d01e2403a944f8e67e1d53619aa.
  • Aliases 2.2.0, 2.2, 2 and latest share that digest.
  • The SHA candidate remains unchanged at sha256:3b94df5b724c5b9f3a7976401caaf58418d8813e3ba33d9bb672f1bd9a8b1cae.
  • Both architectures (linux/amd64, linux/arm64) and both image attestations were verified against the expected workflow, source refs and release commit.
  • Fresh anonymous candidate and tagged installations passed native health, privacy, headers, SPA, non-root, version/revision and volume-persistence checks; disposable resources were cleaned up.

Upgrade guidance · Full changelog

Tasterr v2.1.1

Choose a tag to compare

@ZacharyArthur ZacharyArthur released this 09 Sep 16:00
Immutable release. Only release title and notes can be modified.
e47bda5

What changed

  • Plex server discovery now reserves available remote-direct and relay fallbacks within its bounded probe budget, so failing local connections cannot hide a reachable server.
  • Added the optional server-side TASTERR_PLEX_MAX_CONNECTION_PROBES setting. It defaults to 6 and validates the inclusive range 3 through 12 for both Continue Watching and Plex history discovery.
  • Existing HTTPS, certificate, hostname, redirect, identity-verification, token-handling, resource-count, and five-minute Continue Watching cache protections remain unchanged.
  • Updated the existing Vitest and js-yaml development dependency chain to patched compatible versions.

Upgrade

  1. Record the currently running immutable image digest.
  2. Take and validate a sensitive backup of /data/tasterr.db.
  3. Set TASTERR_IMAGE=ghcr.io/zacharyarthur/tasterr:2.1.1.
  4. Run docker compose pull and docker compose up -d --no-build.
  5. Verify health, login, Continue Watching, Plex history synchronization, detail, and one non-destructive request-state read.

This release adds no database migration. Roll back to the prior immutable v2.1.0 digest against the existing volume if needed.

For a fully immutable deployment, pin:

ghcr.io/zacharyarthur/tasterr@sha256:6c1a0ebc341fe6d839a2db59584de5065fe281d7bc8ceb739dd885c41265d868

Verified artifact

  • Release commit: e47bda52fbfd838ab9ea43c15aba65c63732695b
  • Platforms: linux/amd64, linux/arm64
  • Stable digest: sha256:6c1a0ebc341fe6d839a2db59584de5065fe281d7bc8ceb739dd885c41265d868
  • 2.1.1, 2.1, 2, and latest resolve to the stable digest.
  • Candidate sha-e47bda52fbfd838ab9ea43c15aba65c63732695b remains unchanged at sha256:a08291069ae068466d27ddbcb8be955a07f84ad9f278c5eb7d836c1cbf552a9a.
  • GitHub artifact attestations verified for candidate and stable images.
  • Public anonymous pulls and disposable clean Compose installations passed.
  • The tag workflow passed health, private-log, hardened-header, SPA, non-root runtime, license, and named-volume persistence checks.
  • The merged release gate passed with 655 backend and 111 frontend tests, generated API type freshness, strict typing and linting, production build, Chromium E2E, and native container smoke.
  • Backend and frontend dependency audits reported no known vulnerabilities.
  • Fresh live Plex contracts passed all five owner, managed, and shared cases against PMS 1.43.3.10896-cb3ebc72d; a service-level check returned twenty mapped Continue Watching summaries.
  • The unchanged Seerr path used the accepted complete 2026-08-30 automated baseline, a limited 2026-09-09 automated run, and a successful 2026-09-09 manual integration test. This is not represented as a fresh complete Seerr automation pass.

Known limitations

  • Plex items without canonical TMDB GUIDs are omitted; legacy-agent libraries may need an agent upgrade and metadata refresh.
  • Continue Watching resolves at most twenty catalog details within a ten-second deadline.
  • Raising the Plex probe setting increases bounded unauthenticated identity traffic per advertised server resource; up to four resources may be probed concurrently.
  • Tasterr remains a single-process household service; multiple workers are unsupported.

Full changelog: v2.1.0...v2.1.1

Tasterr v2.1.0

Choose a tag to compare

@ZacharyArthur ZacharyArthur released this 30 Aug 04:39
Immutable release. Only release title and notes can be modified.
b5df5d5

What's changed

  • Selected-service rails now combine recent flatrate movies and TV, alternate media types while both are available, and degrade each discovery source independently.
  • Continue Watching now includes eligible next-up episodes without progress, uses the best available Plex activity timestamp for ordering, and shows episode context without a misleading progress bar.
  • Plex approval recovery keeps polling authoritative while providing a protected approval link and repeatable copy action with accessible, flow-scoped feedback.
  • Plex playback-history queries now encode their time-window operators correctly, so PMS applies the intended bounded history window.
  • The devcontainer now includes GitHub CLI and pinned OpenSpec tooling while preserving the no-host-toolchain workflow.

Upgrade

  1. Record the currently running immutable image digest.
  2. Take and validate a sensitive backup of /data/tasterr.db.
  3. Set TASTERR_IMAGE=ghcr.io/zacharyarthur/tasterr:2.1.0.
  4. Run docker compose pull and docker compose up -d --no-build.
  5. Verify health, login including Plex approval recovery, Home service and Continue Watching rails, detail, and one non-destructive request-state read.

This release adds no database migration. Roll back to the prior immutable v2.0 digest against the existing volume if needed.

For a fully immutable deployment, pin:

ghcr.io/zacharyarthur/tasterr@sha256:1694a4d0d7e997a0eb63f0dcbf1d6b7e5bcca64b2305077173999894930ab274

Verified artifact

  • Release commit: b5df5d520e937710e09fa2b9f6a5d94da080277c
  • Platforms: linux/amd64, linux/arm64
  • Stable digest: sha256:1694a4d0d7e997a0eb63f0dcbf1d6b7e5bcca64b2305077173999894930ab274
  • 2.1.0, 2.1, 2, and latest resolve to the stable digest.
  • Candidate sha-b5df5d520e937710e09fa2b9f6a5d94da080277c remains unchanged at sha256:ef56072d5e37a39d21b0ba1f4f3aa596fee0b98daec52c2e3356044b60e9975f.
  • GitHub artifact attestations verified for candidate and stable images.
  • Public package visibility, credential-free pulls, and disposable fresh Compose installations passed.
  • Tagged-image verification passed health, private-log checks, hardened headers, SPA serving, non-root runtime, license inclusion, and named-volume persistence.
  • The release gate passed with 643 backend and 111 frontend tests, generated API type freshness, strict typing and linting, production build, Chromium E2E, and native container smoke.
  • Dependency audits reported no known backend or frontend vulnerabilities.
  • Fresh live contracts passed all five owner/managed/shared Plex cases against PMS 1.43.3.10896-cb3ebc72d and all nine mandatory Seerr cases against Seerr 3.4.1. Only the explicitly data-dependent known-available-title case skipped.

Known limitations

  • Plex items without canonical TMDB GUIDs are omitted; legacy-agent libraries may need an agent upgrade and metadata refresh.
  • Plex library access remains managed in Plex rather than through a separate Tasterr allow/deny control.
  • Continue Watching resolves at most twenty catalog details within a ten-second deadline to keep household work bounded.
  • Copy feedback is best effort if a browser rejects both clipboard mechanisms; the protected approval link remains available.
  • Tasterr remains a single-process household service; multiple workers are unsupported.

Full changelog: v2.0.0...v2.1.0

Tasterr v2.0.0

Choose a tag to compare

@ZacharyArthur ZacharyArthur released this 29 Aug 14:14
Immutable release. Only release title and notes can be modified.
e75ee25

What's changed

  • Plex-backed sessions now learn from bounded canonical watch history without persisting raw Plex history, progress, account/server identifiers, URLs, or resource tokens.
  • Caller-scoped Continue Watching adds playback progress and resume context. Concurrent bounded server discovery allows healthy later-priority Plex connections to succeed without weakening TLS, machine-identity, redirect, or credential controls.
  • Home adds Picks You Wouldn't Usually Watch and a hideable, initially collapsed Something for Everyone Tonight household blend. The personalized, service, decade, and randomized movie/TV genre rails use the reviewed v2 ordering.
  • Owner, managed, and shared Plex accounts remain isolated. Items without canonical TMDB GUIDs fail closed instead of using title/year guesses.
  • Migration 0006 adds Plex history synchronization timestamps and the canonical watched_plex signal index.

Upgrade

  1. Record the currently running immutable image digest.
  2. Take and validate a sensitive backup of /data/tasterr.db.
  3. Set TASTERR_IMAGE=ghcr.io/zacharyarthur/tasterr:2.0.0.
  4. Run docker compose pull and docker compose up -d --no-build.
  5. Verify health, login, Home, detail, and one non-destructive request-state read.

Startup applies migration 0006 automatically.

Do not start a v1.1 image on a v2 database. To return to v1.1, keep the v2 image selected, stop the writer, run the documented Alembic downgrade to 0005, and only then select the previous immutable v1.1 digest. Restoring the matching validated pre-upgrade backup is also supported.

For a fully immutable deployment, pin:

ghcr.io/zacharyarthur/tasterr@sha256:1e9b6a461003f5a34c8ad5dbe77e0d5505a283747bd777d3a2da948cede36d89

Verified artifact

  • Platforms: linux/amd64, linux/arm64
  • Stable digest: sha256:1e9b6a461003f5a34c8ad5dbe77e0d5505a283747bd777d3a2da948cede36d89
  • 2.0.0, 2.0, 2, and latest resolve to the stable digest.
  • Candidate sha-e75ee250454c1f0ce7fe693ce0637b11f68045c9 remains unchanged at sha256:a3a2b0ea81922b81c58a4950d643f961df75a2c10241d222514e33cddc16d99b.
  • GitHub artifact attestations verified for candidate and stable images.
  • Public package visibility, credential-free pulls, and disposable fresh Compose installations passed.
  • Tagged-image verification passed health, hardened headers, SPA serving, non-root runtime, license inclusion, and named-volume persistence.
  • The release gate passed with 634 backend and 106 frontend tests, generated API type freshness, strict typing and linting, production build, Chromium E2E, and native container smoke.
  • Dependency audits reported no known backend or frontend vulnerabilities.
  • The complete Seerr 3.3.0 baseline passed ten live cases on 2026-07-13. The complete five-test owner/managed/shared Plex suite passed on 2026-08-27 against PMS 1.43.3.10896-cb3ebc72d.
  • A release rerun could not complete the retained owner history phase because the stored access may have become stale. The release owner completed a fresh integrated manual test and explicitly accepted the dated automated baselines. This is an exception, not a claim that the fresh automated rerun passed.

Known limitations

  • Plex items without canonical TMDB GUIDs are omitted; legacy-agent libraries may need an agent upgrade and metadata refresh.
  • Plex library access remains managed in Plex rather than through a separate Tasterr allow/deny control.
  • Continue Watching resolves at most twenty catalog items per request to keep work bounded.
  • Tasterr remains a single-process household service; multiple workers are unsupported.

Full changelog: v1.1.0...v2.0.0

Tasterr v1.1.0

Choose a tag to compare

@ZacharyArthur ZacharyArthur released this 22 Aug 14:43
Immutable release. Only release title and notes can be modified.
8a00e7a

What's changed

  • Home discovery now uses accurate Recent Releases labels, covers the preceding 365 days for selected services, and keeps every remaining curated movie genre accessible through additional rail pages.
  • Available title details now offer validated, token-free Plex Web and Plex App handoffs with regular-to-4K fallback. Plex PIN authentication also cleans up its protected approval window after completion.
  • Signal-less users receive an optional, non-blocking, one-time taste picker after cold-start seeding. This release includes the additive 0005_taste_onboarding database migration.
  • Local login, Plex login, logout, and detected identity changes now form a secure TanStack Query session boundary. Cached or late-arriving data from one household user cannot render or repopulate state for the next user, while failed authentication transitions preserve the confirmed session.
  • Development tooling was updated to pip 26.2.1 and js-yaml 4.3.1, clearing both ecosystem vulnerability audits without adding a runtime dependency.

Upgrade

  1. Back up /data/tasterr.db using the documented configuration procedure.
  2. Set TASTERR_IMAGE=ghcr.io/zacharyarthur/tasterr:1.1.0.
  3. Run docker compose pull and docker compose up -d --no-build.

Startup applies the additive 0005_taste_onboarding migration. For rollback to v1.0.2, restore the matching pre-upgrade database backup if the older application cannot tolerate the migrated schema.

For a fully immutable deployment, pin:

ghcr.io/zacharyarthur/tasterr@sha256:b1897a4860e6afad981e5ba3ea959a1b45bc3091b524d330583623c94e0cb095

Verified artifact

  • Platforms: linux/amd64, linux/arm64
  • Stable digest: sha256:b1897a4860e6afad981e5ba3ea959a1b45bc3091b524d330583623c94e0cb095
  • 1.1.0, 1.1, 1, and latest resolve to the stable digest.
  • Candidate sha-8a00e7a0414fb69c4d4bb7bff9ad3a05e7089f58 remains at sha256:bf0558f76bec4ed75af838574ee7c91182e6d9ac8810856d1c55406146391a71.
  • GitHub artifact attestations verified for both candidate and stable images.
  • Credential-free pulls and fresh Compose installations passed health, SPA serving, non-root runtime, source/revision identity, and named-volume persistence checks.
  • The release gate passed with 490 backend and 98 frontend tests, strict typing and linting, the production build, Chromium E2E, and native container smoke.
  • At the release owner’s direction, the automated live Seerr contract suite was not rerun. The new Tasterr build was manually exercised before release.

Known limitations

  • Plex handoffs remain experimental because Plex clients may discard the requested title during sign-in or household-user selection.
  • A shared browser profile still has one cookie jar across tabs; concurrent tabs cannot carry independent household sessions.
  • Tasterr remains a single-process household service; multiple workers are unsupported.

Full changelog: v1.0.2...v1.1.0

Tasterr v1.0.2

Choose a tag to compare

@ZacharyArthur ZacharyArthur released this 19 Aug 03:07
Immutable release. Only release title and notes can be modified.
29d4130

What's changed

  • Related-title navigation now replaces the active detail entry, so closing the detail overlay returns directly to browsing.
  • The page behind the detail overlay no longer scrolls while the modal is open.
  • Reopened My List items reconcile correctly and no longer require an extra click before removal.
  • Detail views now include a safe external link to the title's TMDB page.
  • Modal focus behavior and keyboard regression coverage were strengthened.
  • Compatible security updates include cryptography 50.0.0, brace-expansion 2.1.4, nanoid 3.3.18, and undici 7.29.0.

This patch adds no database migration or configuration change.

Upgrade

  1. Back up /data/tasterr.db using the documented configuration procedure.
  2. Set TASTERR_IMAGE=ghcr.io/zacharyarthur/tasterr:1.0.2.
  3. Run docker compose pull and docker compose up -d --no-build.

For a fully immutable deployment, pin:

ghcr.io/zacharyarthur/tasterr@sha256:e2ec99c5d0d100a964ce7b3ec874b8733203f39f6c5a87c387280cf6c3d17661

Verified artifact

  • Platforms: linux/amd64, linux/arm64
  • Stable digest: sha256:e2ec99c5d0d100a964ce7b3ec874b8733203f39f6c5a87c387280cf6c3d17661
  • 1.0.2, 1.0, 1, and latest resolve to the stable digest.
  • Candidate sha-29d413057af6b14861e339019fd553e1f107cc86 remains at sha256:96d4725402da9e25d200080fe03d6f9e78bdf5efcaa440523bf4f4b3526238d7.
  • GitHub artifact attestations verified for both candidate and stable images.
  • Credential-free pulls and fresh Compose installations passed health, SPA serving, non-root runtime, and named-volume persistence checks.
  • The release gate passed with 446 backend and 68 frontend tests, Chromium E2E, and native container smoke.

Known limitations

  • Browser-level long-detail scrolling, direct-detail Close followed by browser Back, and stable scrollbar-gutter coverage remain deferred.
  • Tasterr v1.0 remains a single-process household service; multiple workers are unsupported.
  • Tasterr does not bundle Seerr, play media, import Plex history, or provide native apps.
  • A development-only js-yaml advisory remains accepted through the current OpenAPI generator chain; it is absent from the runtime image.

Full changelog: v1.0.1...v1.0.2

Tasterr v1.0.1

Choose a tag to compare

@ZacharyArthur ZacharyArthur released this 26 Jul 07:03
f0bf7f7

Tasterr v1.0.1 is the first public GitHub Release of the self-hosted TMDB and Seerr discovery app with per-user learned taste profiles.

Highlights

  • Netflix-style home rails, search, title details, trailers, availability, and Seerr requests
  • Local and Plex sign-in with per-user recommendations and feedback
  • Resilient browsing when Seerr is unavailable
  • Single non-root, multi-architecture Docker image with persistent SQLite storage
  • Privacy-focused logging and hardened HTTP response headers
  • AGPL-3.0-only licensed source and image

Install

Use the Compose example and configuration guidance in the README, or pull directly:

docker pull ghcr.io/zacharyarthur/tasterr:1.0.1

The container requires TMDB credentials, an existing Seerr instance, and a generated Tasterr secret key. Bind it to loopback and place it behind a TLS proxy or tunnel for remote access.

Upgrade

Change TASTERR_IMAGE to ghcr.io/zacharyarthur/tasterr:1.0.1, pull, and recreate the service. This release has no database migration; retain the existing named volume and take a SQLite backup before upgrading.

Verified artifact

  • Image: ghcr.io/zacharyarthur/tasterr:1.0.1
  • OCI digest: sha256:a191b896b530e631c9197bee598b6ddb236d1daf0d1ea94e83ab0477fd64b6a9
  • Platforms: linux/amd64, linux/arm64
  • Source commit: f0bf7f7229530b548ef36ace046f855b652e608a

The image passed an anonymous clean installation, health and SPA checks, non-root runtime verification, and named-volume persistence across recreation.

Notes

The earlier v1.0.0 tag is retained for provenance but was not announced as a GitHub Release. v1.0.1 fixes forward with protected commit-SHA image aliases that SemVer workflows cannot rewrite.