Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
96 changes: 96 additions & 0 deletions _posts/releases/themerr/2026-10-22-v2026.1022.123038.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,96 @@
---
layout: release
title: Themerr v2026.1022.123038 Released
release-tag: v2026.1022.123038
gh-repo: LizardByte/Themerr
gh-badge: [follow, fork, star]
tags: [release, themerr]
thumbnail-img: https://app.lizardbyte.dev/dashboard/github/openGraphImages/Themerr_624x312.png
comments: true
authors:
- github: LizardByte-bot
---

## ‼️ Attention: Final release supporting macOS 14

**This is the last Themerr release supporting macOS 14 (Sonoma).** Future releases will require a newer version of macOS.

## ✨ Highlights

- **Built-in MCP server.** Connect MCP-compatible clients to Themerr, with access token management directly in the web UI. ([#631](https://github.com/LizardByte/Themerr/pull/631))
- **More reliable Plex and Jellyfin dashboards.** Fix duplicate items and preserve items shared across multiple libraries, keeping counts and upload progress accurate. ([#627](https://github.com/LizardByte/Themerr/pull/627))
- **Complete Jellyfin library browsing.** Movies remain visible when Jellyfin groups them into collections. ([#639](https://github.com/LizardByte/Themerr/pull/639))
- **Improved startup reliability.** Fix configuration parsing errors that could prevent Themerr from starting. ([#630](https://github.com/LizardByte/Themerr/pull/630))
- **Reduced Docker disk activity.** Avoid repeatedly extracting the application bundle during startup and health checks, reducing unnecessary disk writes. ([#660](https://github.com/LizardByte/Themerr/pull/660))

For a comprehensive list of changes, see below.

## What's Changed
* fix: handle duplicate dashboard items for Plex and Jellyfin by [@ReenigneArcher](https://github.com/ReenigneArcher) in [#627](https://github.com/LizardByte/Themerr/pull/627)
* chore(deps): update dependency fastapi to v0.143.0 by [@renovate[bot]](https://github.com/apps/renovate) in [#629](https://github.com/LizardByte/Themerr/pull/629)
* chore(deps): update apple-actions/import-codesign-certs action to v7.1.0 by [@renovate[bot]](https://github.com/apps/renovate) in [#628](https://github.com/LizardByte/Themerr/pull/628)
* fix: handle configuration startup failures by [@ReenigneArcher](https://github.com/ReenigneArcher) in [#630](https://github.com/LizardByte/Themerr/pull/630)
* feat: embed MCP server with web UI token management by [@ReenigneArcher](https://github.com/ReenigneArcher) in [#631](https://github.com/LizardByte/Themerr/pull/631)
* chore(l10n): update translations by [@ReenigneArcher](https://github.com/ReenigneArcher) in [#632](https://github.com/LizardByte/Themerr/pull/632)
* chore(deps): update xunit-dotnet monorepo by [@renovate[bot]](https://github.com/apps/renovate) in [#633](https://github.com/LizardByte/Themerr/pull/633)
* chore(deps): update astral-sh/setup-uv action to v10.3.0 by [@renovate[bot]](https://github.com/apps/renovate) in [#634](https://github.com/LizardByte/Themerr/pull/634)
* chore(deps): update ghcr.io/astral-sh/uv docker tag to v0.13 by [@renovate[bot]](https://github.com/apps/renovate) in [#635](https://github.com/LizardByte/Themerr/pull/635)
* chore(deps): lock file maintenance by [@renovate[bot]](https://github.com/apps/renovate) in [#636](https://github.com/LizardByte/Themerr/pull/636)
* chore(deps): update dependency lucide to v1.55.0 by [@renovate[bot]](https://github.com/apps/renovate) in [#637](https://github.com/LizardByte/Themerr/pull/637)
* fix(jellyfin): include collection members in item queries by [@ReenigneArcher](https://github.com/ReenigneArcher) in [#639](https://github.com/LizardByte/Themerr/pull/639)
* build(deps): bump third-party/dockle from `c1304a7` to `13ef435` by [@dependabot[bot]](https://github.com/apps/dependabot) in [#640](https://github.com/LizardByte/Themerr/pull/640)
* chore(deps): update dependency swagger-ui-dist to v5.33.2 by [@renovate[bot]](https://github.com/apps/renovate) in [#641](https://github.com/LizardByte/Themerr/pull/641)
* chore(deps): use Dockle submodule for documentation by [@ReenigneArcher](https://github.com/ReenigneArcher) in [#643](https://github.com/LizardByte/Themerr/pull/643)
* chore(deps): update dependency starlette to v1.8.0 by [@renovate[bot]](https://github.com/apps/renovate) in [#645](https://github.com/LizardByte/Themerr/pull/645)
* chore(deps): update dependency pre-commit to v4.7.0 by [@renovate[bot]](https://github.com/apps/renovate) in [#646](https://github.com/LizardByte/Themerr/pull/646)
* chore(deps): update dependency microsoft.net.test.sdk to 18.11.0 by [@renovate[bot]](https://github.com/apps/renovate) in [#647](https://github.com/LizardByte/Themerr/pull/647)
* chore(deps): update dependency lucide to v1.56.0 by [@renovate[bot]](https://github.com/apps/renovate) in [#648](https://github.com/LizardByte/Themerr/pull/648)
* chore(deps): update dependency fastapi to v0.143.1 by [@renovate[bot]](https://github.com/apps/renovate) in [#650](https://github.com/LizardByte/Themerr/pull/650)
* refactor(web): resolve CSS Sonar findings without visual changes by [@ReenigneArcher](https://github.com/ReenigneArcher) in [#651](https://github.com/LizardByte/Themerr/pull/651)
* chore(deps): update dependency fastapi to v0.143.2 by [@renovate[bot]](https://github.com/apps/renovate) in [#652](https://github.com/LizardByte/Themerr/pull/652)
* chore(deps): update dependency swagger-ui-dist to v5.33.3 by [@renovate[bot]](https://github.com/apps/renovate) in [#653](https://github.com/LizardByte/Themerr/pull/653)
* chore(deps): update dependency fastapi to v0.143.3 by [@renovate[bot]](https://github.com/apps/renovate) in [#654](https://github.com/LizardByte/Themerr/pull/654)
* chore(deps): update dependency sqlalchemy to v2.1.5 by [@renovate[bot]](https://github.com/apps/renovate) in [#655](https://github.com/LizardByte/Themerr/pull/655)
* chore(deps): update dependency paramiko to v5.1.0 by [@renovate[bot]](https://github.com/apps/renovate) in [#656](https://github.com/LizardByte/Themerr/pull/656)
* chore(deps): update dependency pillow to v13 by [@renovate[bot]](https://github.com/apps/renovate) in [#657](https://github.com/LizardByte/Themerr/pull/657)
* chore(deps): update dependency fastapi to v0.146.0 by [@renovate[bot]](https://github.com/apps/renovate) in [#658](https://github.com/LizardByte/Themerr/pull/658)
* chore(deps): update dependency httpx2 to v2.14.0 by [@renovate[bot]](https://github.com/apps/renovate) in [#659](https://github.com/LizardByte/Themerr/pull/659)
* fix(docker): build the image binary as one-dir by [@Kisnov](https://github.com/Kisnov) in [#660](https://github.com/LizardByte/Themerr/pull/660)
* chore(deps): use upstream sphinx-csharp from PyPI by [@ReenigneArcher](https://github.com/ReenigneArcher) in [#661](https://github.com/LizardByte/Themerr/pull/661)
* chore(deps): update dependency av to v19.0.2 by [@renovate[bot]](https://github.com/apps/renovate) in [#662](https://github.com/LizardByte/Themerr/pull/662)
* chore(deps): update dependency fastapi to v0.156.5 by [@renovate[bot]](https://github.com/apps/renovate) in [#663](https://github.com/LizardByte/Themerr/pull/663)
* chore(deps): update dependency deno to v2.9.8 by [@renovate[bot]](https://github.com/apps/renovate) in [#665](https://github.com/LizardByte/Themerr/pull/665)
* chore(deps): update dependency fastapi to v0.158.1 by [@renovate[bot]](https://github.com/apps/renovate) in [#667](https://github.com/LizardByte/Themerr/pull/667)
* chore(deps): update dependency httpx2 to v2.16.0 by [@renovate[bot]](https://github.com/apps/renovate) in [#668](https://github.com/LizardByte/Themerr/pull/668)
* chore(deps): update dependency lucide to v1.61.0 by [@renovate[bot]](https://github.com/apps/renovate) in [#669](https://github.com/LizardByte/Themerr/pull/669)
* chore(deps): update dependency starlette to v1.9.0 by [@renovate[bot]](https://github.com/apps/renovate) in [#670](https://github.com/LizardByte/Themerr/pull/670)
* chore(deps): update dependency yt-dlp to v2026.10.21 by [@renovate[bot]](https://github.com/apps/renovate) in [#671](https://github.com/LizardByte/Themerr/pull/671)
* chore(deps): update dependency swagger-ui-dist to v5.34.0 by [@renovate[bot]](https://github.com/apps/renovate) in [#672](https://github.com/LizardByte/Themerr/pull/672)
* chore(deps): update astral-sh/setup-uv action to v10.3.1 by [@renovate[bot]](https://github.com/apps/renovate) in [#673](https://github.com/LizardByte/Themerr/pull/673)
* chore(deps): update dependency sqlalchemy to v2.1.6 by [@renovate[bot]](https://github.com/apps/renovate) in [#666](https://github.com/LizardByte/Themerr/pull/666)
* chore(deps): update actions/setup-python action to v7.1.0 by [@renovate[bot]](https://github.com/apps/renovate) in [#674](https://github.com/LizardByte/Themerr/pull/674)
* chore(deps): update dependency fastapi to v0.159.1 by [@renovate[bot]](https://github.com/apps/renovate) in [#675](https://github.com/LizardByte/Themerr/pull/675)
* chore(deps): update dependency alembic to v1.20.1 by [@renovate[bot]](https://github.com/apps/renovate) in [#676](https://github.com/LizardByte/Themerr/pull/676)
* chore(deps): lock file maintenance by [@renovate[bot]](https://github.com/apps/renovate) in [#677](https://github.com/LizardByte/Themerr/pull/677)

## New Contributors
* [@Kisnov](https://github.com/Kisnov) made their first contribution in [#660](https://github.com/LizardByte/Themerr/pull/660)

**Full Changelog**: https://github.com/LizardByte/Themerr/compare/v2026.1008.3030...v2026.1022.123038

---
## Contributors
<a href="https://github.com/apps/renovate" target="_blank" rel="external noopener noreferrer" aria-label="GitHub profile of contributor, renovate[bot]" ><img src="https://avatars.githubusercontent.com/in/2740?size=40" width="40" height="40" alt="renovate[bot]" title="renovate[bot]: 36 merges" ></a><a href="https://github.com/ReenigneArcher" target="_blank" rel="external noopener noreferrer" aria-label="GitHub profile of contributor, ReenigneArcher" ><img src="https://github.com/ReenigneArcher.png?size=40" width="40" height="40" alt="ReenigneArcher" title="ReenigneArcher: 8 merges" ></a><a href="https://github.com/Kisnov" target="_blank" rel="external noopener noreferrer" aria-label="GitHub profile of contributor, Kisnov" ><img src="https://github.com/Kisnov.png?size=40" width="40" height="40" alt="Kisnov" title="Kisnov: 1 merge" ></a><a href="https://github.com/apps/dependabot" target="_blank" rel="external noopener noreferrer" aria-label="GitHub profile of contributor, dependabot[bot]" ><img src="https://avatars.githubusercontent.com/in/29110?size=40" width="40" height="40" alt="dependabot[bot]" title="dependabot[bot]: 1 merge" ></a>


---
📦 **Assets:**

| ⬇️ Download | #️⃣ Download Count | 🛡️ VirusTotal |
|-------------|-------------------|---------------|
| [Themerr_Linux_aarch64.zip](https://github.com/LizardByte/Themerr/releases/download/v2026.1022.123038/Themerr_Linux_aarch64.zip) | ![Downloads](https://img.shields.io/github/downloads/LizardByte/Themerr/v2026.1022.123038/Themerr_Linux_aarch64.zip?style=flat-square&label=&displayAssetName=false) | [![VirusTotal](https://badges.cssnr.com/vt/id/sha256:2205a5fd2868047fa60b95f5c5adb0501b7ab25a0d96125a4e12b094d0f0251b?style=flat-square&icon=virustotal&label=)](https://www.virustotal.com/gui/file-analysis/MTAwMzUxM2VkNmRkM2YxOTMzMTE3YjUzMDU5MDdmMGI6MTc5MjY3MzUwMQ==) |
| [Themerr_Linux_x86_64.zip](https://github.com/LizardByte/Themerr/releases/download/v2026.1022.123038/Themerr_Linux_x86_64.zip) | ![Downloads](https://img.shields.io/github/downloads/LizardByte/Themerr/v2026.1022.123038/Themerr_Linux_x86_64.zip?style=flat-square&label=&displayAssetName=false) | [![VirusTotal](https://badges.cssnr.com/vt/id/sha256:06c27c15cc2f91a4d88747cc75dd7adc7c0ba0a06fee9e3e51bfe6481af4ad3e?style=flat-square&icon=virustotal&label=)](https://www.virustotal.com/gui/file-analysis/ZTBhM2YwMzBlZDRkMmYzYThiNmVkNWI2N2Y5NjU4NmM6MTc5MjY3MzUwNA==) |
| [Themerr_Windows_AMD64.zip](https://github.com/LizardByte/Themerr/releases/download/v2026.1022.123038/Themerr_Windows_AMD64.zip) | ![Downloads](https://img.shields.io/github/downloads/LizardByte/Themerr/v2026.1022.123038/Themerr_Windows_AMD64.zip?style=flat-square&label=&displayAssetName=false) | [![VirusTotal](https://badges.cssnr.com/vt/id/sha256:14f8c39330579cd98565392cc50d3d75dab945cb2e21fb3b823cb3ca6e8d7cf2?style=flat-square&icon=virustotal&label=)](https://www.virustotal.com/gui/file-analysis/NjIxZjFhNWIxYTg5NzY5YTM3MDhmYjNlODQyZDUyZTI6MTc5MjY3MzUwNw==) |
| [Themerr_Windows_ARM64.zip](https://github.com/LizardByte/Themerr/releases/download/v2026.1022.123038/Themerr_Windows_ARM64.zip) | ![Downloads](https://img.shields.io/github/downloads/LizardByte/Themerr/v2026.1022.123038/Themerr_Windows_ARM64.zip?style=flat-square&label=&displayAssetName=false) | [![VirusTotal](https://badges.cssnr.com/vt/id/sha256:9701a709c12c84b3f4e46c6e69bade9744f0a4832c382b4f9339da9879cece64?style=flat-square&icon=virustotal&label=)](https://www.virustotal.com/gui/file-analysis/MmY4NjIwOWVlM2M1ZWY3OGI4NjY4YTUyNzJiYmQzNTg6MTc5MjY3MzUxMA==) |
| [Themerr_macOS_arm64.zip](https://github.com/LizardByte/Themerr/releases/download/v2026.1022.123038/Themerr_macOS_arm64.zip) | ![Downloads](https://img.shields.io/github/downloads/LizardByte/Themerr/v2026.1022.123038/Themerr_macOS_arm64.zip?style=flat-square&label=&displayAssetName=false) | [![VirusTotal](https://badges.cssnr.com/vt/id/sha256:deb8413a3fa2d8a90d19683f650c917852e61871699d385d5854a692dea48192?style=flat-square&icon=virustotal&label=)](https://www.virustotal.com/gui/file-analysis/ZjIwNjNiMjY0N2VhNDM5YjVmMWVlZWE5ZWJiZmYyNmU6MTc5MjY3MzU2MQ==) |
| [Themerr_macOS_x86_64.zip](https://github.com/LizardByte/Themerr/releases/download/v2026.1022.123038/Themerr_macOS_x86_64.zip) | ![Downloads](https://img.shields.io/github/downloads/LizardByte/Themerr/v2026.1022.123038/Themerr_macOS_x86_64.zip?style=flat-square&label=&displayAssetName=false) | [![VirusTotal](https://badges.cssnr.com/vt/id/sha256:e2749f799a58897c2ed13a58c70cb7431470a292b405f894fb8edc572cce17ed?style=flat-square&icon=virustotal&label=)](https://www.virustotal.com/gui/file-analysis/ZTdmOWQ5ODRiMmYxNzdhM2RiOGM5OWUzYmEyZTgyN2U6MTc5MjY3MzU2NQ==) |
Loading