Repository navigation
Releases: ZacharyArthur/tasterr
Release list
v2.3.1
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-checkpassed: 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, andlatestresolve 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
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,2andlatestshare 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
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,2andlatestshare 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.
Tasterr v2.1.1
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_PROBESsetting. 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
- Record the currently running immutable image digest.
- Take and validate a sensitive backup of
/data/tasterr.db. - Set
TASTERR_IMAGE=ghcr.io/zacharyarthur/tasterr:2.1.1. - Run
docker compose pullanddocker compose up -d --no-build. - 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, andlatestresolve to the stable digest.- Candidate
sha-e47bda52fbfd838ab9ea43c15aba65c63732695bremains unchanged atsha256: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
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
- Record the currently running immutable image digest.
- Take and validate a sensitive backup of
/data/tasterr.db. - Set
TASTERR_IMAGE=ghcr.io/zacharyarthur/tasterr:2.1.0. - Run
docker compose pullanddocker compose up -d --no-build. - 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, andlatestresolve to the stable digest.- Candidate
sha-b5df5d520e937710e09fa2b9f6a5d94da080277cremains unchanged atsha256: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-cb3ebc72dand 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
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
0006adds Plex history synchronization timestamps and the canonicalwatched_plexsignal index.
Upgrade
- Record the currently running immutable image digest.
- Take and validate a sensitive backup of
/data/tasterr.db. - Set
TASTERR_IMAGE=ghcr.io/zacharyarthur/tasterr:2.0.0. - Run
docker compose pullanddocker compose up -d --no-build. - 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, andlatestresolve to the stable digest.- Candidate
sha-e75ee250454c1f0ce7fe693ce0637b11f68045c9remains unchanged atsha256: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
What's changed
- Home discovery now uses accurate
Recent Releaseslabels, 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_onboardingdatabase 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
pip26.2.1 andjs-yaml4.3.1, clearing both ecosystem vulnerability audits without adding a runtime dependency.
Upgrade
- Back up
/data/tasterr.dbusing the documented configuration procedure. - Set
TASTERR_IMAGE=ghcr.io/zacharyarthur/tasterr:1.1.0. - Run
docker compose pullanddocker 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, andlatestresolve to the stable digest.- Candidate
sha-8a00e7a0414fb69c4d4bb7bff9ad3a05e7089f58remains atsha256: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
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
cryptography50.0.0,brace-expansion2.1.4,nanoid3.3.18, andundici7.29.0.
This patch adds no database migration or configuration change.
Upgrade
- Back up
/data/tasterr.dbusing the documented configuration procedure. - Set
TASTERR_IMAGE=ghcr.io/zacharyarthur/tasterr:1.0.2. - Run
docker compose pullanddocker 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, andlatestresolve to the stable digest.- Candidate
sha-29d413057af6b14861e339019fd553e1f107cc86remains atsha256: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-yamladvisory 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
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.1The 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.