diff --git a/.github/releases/v2.0.1.md b/.github/releases/v2.0.1.md new file mode 100644 index 0000000..bf947fa --- /dev/null +++ b/.github/releases/v2.0.1.md @@ -0,0 +1,30 @@ +# Blockbusterr v2.0.1 + +This patch fixes the broken connection setup workflow in v2.0.0. I am sorry for the frustrating first experience, and thank you to the users who reported it. + +## Fixes + +- Save changes works repeatedly without reloading the page. +- Radarr and Sonarr can load profiles and root folders using newly entered credentials before saving. +- Saved API keys stay hidden while connections correctly show as configured. Retesting no longer requires retyping saved keys. +- Temporary connection failures preserve selected profiles and folders, and show the actual error. +- Changes typed while a save is in progress remain marked as unsaved. + +The previous empty key fields did not by themselves mean saved keys were deleted. Changes that were never successfully saved still need to be entered again. + +## Update from v2.0.0 + +Keep your existing data volume. Set your image to `ghcr.io/mahcks/blockbusterr:v2.0.1`, pull it, and recreate the container. The stable `latest` tag also receives this patch. + +For Docker Compose, after updating the image tag: + +```bash +docker compose pull +docker compose up -d +``` + +Reload Settings, verify your connections, and save any unfinished setup. There is no configuration migration required from v2.0.0 and no need to delete your installation or data. + +New desktop and mobile browser checks cover setup from empty configuration, testing, loading options, saving twice, and returning to saved settings. The release pipeline now runs the browser suite against the candidate image before publishing it. + +Upgrading from v1? Follow the [v2 upgrade guide](https://blockbusterr.dev/getting-started/upgrading-to-v2/). diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index a5d73b0..3bb3afd 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -74,6 +74,11 @@ jobs: - name: Smoke runtime image run: scripts/test-container-smoke.sh blockbusterr:release-candidate + - name: Verify fresh-install settings in the release image + run: | + npx playwright install --with-deps chromium + BLOCKBUSTERR_BROWSER_IMAGE=blockbusterr:release-candidate npm run test:browser + - name: Set up Docker Buildx uses: docker/setup-buildx-action@8d2750c68a42422c14e847fe6c8ac0403b4cbd6f # v3 diff --git a/CHANGELOG.md b/CHANGELOG.md index c96313f..4a4bc22 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,21 @@ All notable changes to Blockbusterr are documented here. The project follows sem ## [Unreleased] +## [2.0.1] - 2026-09-12 + +### Fixed + +- Settings can save successive changes without reloading the page. +- Radarr and Sonarr profiles and root folders load with the credentials entered during setup, before saving. +- Saved hidden credentials correctly count as configured and can be retested without re-entering keys. +- Failed option loading preserves saved defaults and displays the server error. +- Edits made during a save remain marked as unsaved. + +### Validation + +- Added desktop and mobile browser coverage for empty configuration, connection testing, two saves, navigation, saved credentials, and unavailable delivery services. +- Release publication now requires the browser suite to pass against the candidate Docker image. + ## [2.0.0] - 2026-09-12 ### Added diff --git a/README.md b/README.md index 7a43732..ab821fe 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ # Blockbusterr > [!IMPORTANT] -> **Blockbusterr v2.0.0** introduces reusable rules, preview-first jobs, and delivery safeguards. `latest` follows stable releases; `latest-beta` follows prereleases. Read the [documentation](https://blockbusterr.dev/) and [release notes](https://github.com/Mahcks/blockbusterr/releases/tag/v2.0.0). Upgrading from v1? Back up your complete data directory and follow the [upgrade guide](https://blockbusterr.dev/getting-started/upgrading-to-v2/). +> **Blockbusterr v2.0.1** fixes connection setup and saving settings in v2. `latest` follows stable releases; `latest-beta` follows prereleases. Read the [documentation](https://blockbusterr.dev/) and [release notes](https://github.com/Mahcks/blockbusterr/releases/tag/v2.0.1). Upgrading from v1? Back up your complete data directory and follow the [upgrade guide](https://blockbusterr.dev/getting-started/upgrading-to-v2/). **Automated media discovery with rule-based decision making for self-hosted libraries.** @@ -82,7 +82,7 @@ docker run -d \ --restart unless-stopped \ -p 9090:9090 \ -v blockbusterr-data:/app/data \ - ghcr.io/mahcks/blockbusterr:v2.0.0 + ghcr.io/mahcks/blockbusterr:v2.0.1 ``` Open `http://localhost:9090`, connect one discovery provider and one delivery target, then create and preview a job. diff --git a/docker-compose.yaml b/docker-compose.yaml index a5a7680..7540c74 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -1,6 +1,6 @@ services: blockbusterr: - image: ghcr.io/mahcks/blockbusterr:v2.0.0 + image: ghcr.io/mahcks/blockbusterr:v2.0.1 container_name: blockbusterr restart: unless-stopped ports: diff --git a/docs/src/content/docs/getting-started/deployment-platforms.mdx b/docs/src/content/docs/getting-started/deployment-platforms.mdx index 67c0644..b7b9ba2 100644 --- a/docs/src/content/docs/getting-started/deployment-platforms.mdx +++ b/docs/src/content/docs/getting-started/deployment-platforms.mdx @@ -9,8 +9,8 @@ Blockbusterr uses the same container on every compatible platform. The platform | Setting | Value | | --- | --- | -| Image | `ghcr.io/mahcks/blockbusterr:v2.0.0` | -| Pinned release tag | `ghcr.io/mahcks/blockbusterr:v2.0.0` | +| Image | `ghcr.io/mahcks/blockbusterr:v2.0.1` | +| Pinned release tag | `ghcr.io/mahcks/blockbusterr:v2.0.1` | | Container port | `9090/tcp` | | Persistent container path | `/app/data` | | Required environment variables | None | @@ -30,7 +30,7 @@ Use this on a Linux server, Docker Desktop, or any platform that accepts a Compo ```yaml services: blockbusterr: - image: ghcr.io/mahcks/blockbusterr:v2.0.0 + image: ghcr.io/mahcks/blockbusterr:v2.0.1 container_name: blockbusterr ports: - "9090:9090" @@ -55,7 +55,7 @@ Remove `BLOCKBUSTERR_DRY_RUN` after you have previewed a job and are ready to pe 1. Open **Docker**, select **Add Container**, and switch to the advanced view if needed. -2. Set the name to `blockbusterr` and the repository to `ghcr.io/mahcks/blockbusterr:v2.0.0`. +2. Set the name to `blockbusterr` and the repository to `ghcr.io/mahcks/blockbusterr:v2.0.1`. 3. Map a free host port, normally `9090`, to container port `9090` using TCP. 4. Map `/mnt/user/appdata/blockbusterr` on the host to `/app/data` in the container with read/write access. 5. Add `TZ` using your IANA timezone. Add `BLOCKBUSTERR_DRY_RUN=true` while verifying your setup. @@ -70,7 +70,7 @@ An official Community Applications template is not currently published. Adding t -1. Open **Apps**, choose the option to install a custom app, and use `ghcr.io/mahcks/blockbusterr:v2.0.0` as the image. +1. Open **Apps**, choose the option to install a custom app, and use `ghcr.io/mahcks/blockbusterr:v2.0.1` as the image. 2. Expose container port `9090` over TCP using an available host port. 3. Add host-path storage for a dataset such as `/mnt//apps/blockbusterr`, mounted inside the container at `/app/data` with write access. 4. Add `TZ` and, while verifying your setup, `BLOCKBUSTERR_DRY_RUN=true` as environment variables. diff --git a/docs/src/content/docs/getting-started/installation.mdx b/docs/src/content/docs/getting-started/installation.mdx index 2a48dee..8f7bfaf 100644 --- a/docs/src/content/docs/getting-started/installation.mdx +++ b/docs/src/content/docs/getting-started/installation.mdx @@ -30,7 +30,7 @@ Configure any one supported discovery provider: TMDB, Simkl, Trakt, or MDBList.