Commit Graph

54095 Commits

Author SHA1 Message Date
TrueCharts Bot 1660141259 fix(metabase): update image docker.io/metabase/metabase v0.59.3 → v0.59.4 (#46195) 2026-03-18 22:57:33 +01:00
TrueCharts Bot 25b73a17c9 feat(seerr): update image oci.trueforge.org/containerforge/seerr 3.0.1 → 3.1.0 (#46199)
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
|
[oci.trueforge.org/containerforge/seerr](https://ghcr.io/trueforge-org/seerr)
([source](https://redirect.github.com/seerr-team/seerr)) | minor |
`f52d058` → `95e84d1` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the [Dependency
Dashboard](../issues/18710) for more information.

Add the preset `:preserveSemverRanges` to your config if you don't want
to pin your dependencies.

---

### Release Notes

<details>
<summary>seerr-team/seerr
(oci.trueforge.org/containerforge/seerr)</summary>

###
[`v3.1.0`](https://redirect.github.com/seerr-team/seerr/releases/tag/v3.1.0)

[Compare
Source](https://redirect.github.com/seerr-team/seerr/compare/v3.0.1...v3.1.0)

##### 🛡️ Security

- Patch
[CVE-2026-27707](https://redirect.github.com/seerr-team/seerr/security/advisories/GHSA-rc4w-7m3r-c2f7)
- Unauthenticated account registration on Plex-configured Seerr
instances via Jellyfin authentication endpoint -
([4ae2068](https://redirect.github.com/seerr-team/seerr/commit/4ae20684092b5b28527b23dfbc1a3417858fee8e))
- Patch
[CVE-2026-27793](https://redirect.github.com/seerr-team/seerr/security/advisories/GHSA-f7xw-jcqr-57hp)
- Broken Object-Level Authorization in User Profile Endpoint Exposes
Third-Party Notification Credentials -
([4f089b2](https://redirect.github.com/seerr-team/seerr/commit/4f089b29d0bb41d382168b17aa152eb5b8a25303))
- Patch
[CVE-2026-27792](https://redirect.github.com/seerr-team/seerr/security/advisories/GHSA-gx3h-3jg5-q65f)
- Missing authentication on pushSubscription endpoints -
([946bdecec](https://redirect.github.com/seerr-team/seerr/commit/946bdecec524b4e7f8aaf8f2b3856f319a3580c1))

##### 🚀 Features

- *(helm)* Use an existing PVC as config volume
([#&#8203;2447](https://redirect.github.com/seerr-team/seerr/issues/2447))
-
([8f0c904](https://redirect.github.com/seerr-team/seerr/commit/8f0c90492859e1331cb9b4fbe85497ce5eb22061))
- *(servarr-api)* Make Servarr API request timeout configurable
([#&#8203;2556](https://redirect.github.com/seerr-team/seerr/issues/2556))
-
([3bcb4da](https://redirect.github.com/seerr-team/seerr/commit/3bcb4da1e5048a7b2141716d9bf0387a75909ee6))
- Self-host font for better privacy
([#&#8203;2540](https://redirect.github.com/seerr-team/seerr/issues/2540))
-
([10ea21b](https://redirect.github.com/seerr-team/seerr/commit/10ea21b20ff696768424b64f6fd834c8e3e24108))

##### 🐛 Bug Fixes

- *(helm)* Add "v" as prefix for appVersion tag
([#&#8203;2445](https://redirect.github.com/seerr-team/seerr/issues/2445))
-
([04b9d87](https://redirect.github.com/seerr-team/seerr/commit/04b9d87174f08e8d08ee31a032154f8b0f12e322))
- *(jellyfin-scanner)* Include unmatched seasons in processable seasons
([#&#8203;2538](https://redirect.github.com/seerr-team/seerr/issues/2538))
-
([68f56d2](https://redirect.github.com/seerr-team/seerr/commit/68f56d2035d05827d47ffd9a4e374b19043146b5))
- *(link-account)* Fix error-message override
([#&#8203;2547](https://redirect.github.com/seerr-team/seerr/issues/2547))
-
([b843be0](https://redirect.github.com/seerr-team/seerr/commit/b843be0cad895c5f974d47dc44c85557fdbcce36))
- *(plex-scanner)* Add TVDb to TMDB fallback in plex scanner
([#&#8203;2537](https://redirect.github.com/seerr-team/seerr/issues/2537))
-
([7c60a5c](https://redirect.github.com/seerr-team/seerr/commit/7c60a5c3c5209116506de6f590a6b0f428610871))
- *(radarr)* Trigger search for existing monitored movies without files
([#&#8203;2391](https://redirect.github.com/seerr-team/seerr/issues/2391))
-
([55776ea](https://redirect.github.com/seerr-team/seerr/commit/55776ea24f271435d83b30e5220b42c150f59175))
- *(servarr)* Increase default API timeout from 5000ms to 10000ms
([#&#8203;2442](https://redirect.github.com/seerr-team/seerr/issues/2442))
-
([b499976](https://redirect.github.com/seerr-team/seerr/commit/b49997690276c58abf66b53c308b23e55e299da3))
- *(sonarr)* Use configured metadata provider for season filtering
([#&#8203;2516](https://redirect.github.com/seerr-team/seerr/issues/2516))
-
([5013d1d](https://redirect.github.com/seerr-team/seerr/commit/5013d1d54db5787469e030493fc628f5c2db57d9))
- *(watch-data)* Use sentinel values to avoid invalid SQL syntax
([#&#8203;2552](https://redirect.github.com/seerr-team/seerr/issues/2552))
-
([947f70c](https://redirect.github.com/seerr-team/seerr/commit/947f70c3d7c370453b9000691ac17a34a8fcebb7))
- *(watchlist-sync)* Correct permission typo for TV auto requests
([#&#8203;2488](https://redirect.github.com/seerr-team/seerr/issues/2488))
-
([e0e4b6f](https://redirect.github.com/seerr-team/seerr/commit/e0e4b6f512d2efe717d1065ab5a85aa5c717dea4))
- Preserve blocklist on media deletion & optimise watchlist-sync
([#&#8203;2478](https://redirect.github.com/seerr-team/seerr/issues/2478))
-
([9da8bb6](https://redirect.github.com/seerr-team/seerr/commit/9da8bb6deaca09a93d89a2ec1df3e42f3c1f6bcd))

##### 🚜 Refactor

- *(tailwind)* Replace deprecated tailwind utilities
([#&#8203;2542](https://redirect.github.com/seerr-team/seerr/issues/2542))
-
([f42a4ec](https://redirect.github.com/seerr-team/seerr/commit/f42a4ecf82fd09d11b116e8751c77631006125f8))

##### 📖 Documentation

- *(synology)* Add installation guide via SynoCommunity
([#&#8203;2503](https://redirect.github.com/seerr-team/seerr/issues/2503))
-
([0e636a3](https://redirect.github.com/seerr-team/seerr/commit/0e636a3f9905df66124a29a60fc7a01a78821016))
- *(truenas)* Update install/migration guide
([#&#8203;2491](https://redirect.github.com/seerr-team/seerr/issues/2491))
-
([dc1734d](https://redirect.github.com/seerr-team/seerr/commit/dc1734d41fcd7a66f835e5f14538254fa8f8b2c2))
- *(unraid)* Improve unraid migration guide
([#&#8203;2470](https://redirect.github.com/seerr-team/seerr/issues/2470))
-
([5e64d49](https://redirect.github.com/seerr-team/seerr/commit/5e64d49c32a8510d1f19b62395e46b78476084a3))
- Update Unraid install and migration guides with dual permission
methods
([#&#8203;2532](https://redirect.github.com/seerr-team/seerr/issues/2532))
-
([a0d0eb1](https://redirect.github.com/seerr-team/seerr/commit/a0d0eb185800a1444f5402b15bdd1047b05b04aa))
- Add a warning in migration-guide for third party installation
([#&#8203;2527](https://redirect.github.com/seerr-team/seerr/issues/2527))
-
([7e9dff3](https://redirect.github.com/seerr-team/seerr/commit/7e9dff3a1b7055d598edaa0cd3d2425a03edd306))
- Remove double quotes (") from DB\_HOST environment variable
([#&#8203;2514](https://redirect.github.com/seerr-team/seerr/issues/2514))
-
([fa905be](https://redirect.github.com/seerr-team/seerr/commit/fa905be0026c91d55e3fe632d9110ed679455761))
- Add Unraid installation and migration guide
([#&#8203;2440](https://redirect.github.com/seerr-team/seerr/issues/2440))
-
([b6a9132](https://redirect.github.com/seerr-team/seerr/commit/b6a913211a0bced304de394d716df3b09e04774d))
- Fix migration guide title
([#&#8203;2425](https://redirect.github.com/seerr-team/seerr/issues/2425))
-
([39ae32f](https://redirect.github.com/seerr-team/seerr/commit/39ae32f509e532f828393b2b2ff9c7a5b1db132f))

#####  Performance

- Add missing indexes on all foreign key columns
([#&#8203;2461](https://redirect.github.com/seerr-team/seerr/issues/2461))
-
([c6bcfe0](https://redirect.github.com/seerr-team/seerr/commit/c6bcfe0ae4637565e46b56f63284f473b732baae))

##### ⚙️ Miscellaneous Tasks

- *(changelog)* Fix changelog template
([#&#8203;2431](https://redirect.github.com/seerr-team/seerr/issues/2431))
-
([c2977f6](https://redirect.github.com/seerr-team/seerr/commit/c2977f64306207d44a10081c0791a42fcd774c48))
- *(eslint)* Add react/self-closing-comp
([#&#8203;2563](https://redirect.github.com/seerr-team/seerr/issues/2563))
-
([cd8b386](https://redirect.github.com/seerr-team/seerr/commit/cd8b386bf819a8874f5384dcd397422f001fb1d3))
- *(github)* Add docs and maintenance issue templates
([#&#8203;2467](https://redirect.github.com/seerr-team/seerr/issues/2467))
-
([cf4883a](https://redirect.github.com/seerr-team/seerr/commit/cf4883a55ef2881c9c8113cfdfce891acc5f10de))
- *(helm)* Add GatewayAPI route support to helm chart
([#&#8203;2544](https://redirect.github.com/seerr-team/seerr/issues/2544))
-
([3a42f59](https://redirect.github.com/seerr-team/seerr/commit/3a42f593d57292d1e9ddd0c2955f7b0a6b09c38b))
- *(helm)* Update ghcr.io/seerr-team/seerr ( 3.0.0 → 3.0.1 ) \[skip-ci]
([#&#8203;2441](https://redirect.github.com/seerr-team/seerr/issues/2441))
-
([87fb0df](https://redirect.github.com/seerr-team/seerr/commit/87fb0dfd6c0cd3ed39cee20b79e08c2ef9b6ffa4))
- *(husky)* Fixed husky commit message from bash/zsh syntax to sh syntax
([#&#8203;2572](https://redirect.github.com/seerr-team/seerr/issues/2572))
-
([a00c9e5](https://redirect.github.com/seerr-team/seerr/commit/a00c9e5e7c4bc24a3af4740a89da334b922e8c30))
- *(release)* Prepare ${TAG\_VERSION} -
([94a70bb](https://redirect.github.com/seerr-team/seerr/commit/94a70bb5fc9a4486857071a6fc048c8081fa7ca9))
- Updated the Contributing and Security guides to reflect our current
practices
([#&#8203;2579](https://redirect.github.com/seerr-team/seerr/issues/2579))
-
([0d40a42](https://redirect.github.com/seerr-team/seerr/commit/0d40a42de708913e4328f871f9c57de5c88767de))
- Disable nextjs telemetry
([#&#8203;2517](https://redirect.github.com/seerr-team/seerr/issues/2517))
-
([cecdd63](https://redirect.github.com/seerr-team/seerr/commit/cecdd631086232daaf73b3ba8a8c220315340d8c))
- Update contributing guide regarding Automated AI Agent
([#&#8203;2518](https://redirect.github.com/seerr-team/seerr/issues/2518))
-
([880fbc9](https://redirect.github.com/seerr-team/seerr/commit/880fbc902dad86f35c765437c8dea28046ed0f4c))
- Remove discord notification from release
([#&#8203;2501](https://redirect.github.com/seerr-team/seerr/issues/2501))
-
([fba20c1](https://redirect.github.com/seerr-team/seerr/commit/fba20c1b39b428a68bd09893ebba9cbd8d4e2d4e))
- Add create-tag workflow to streamline release process
([#&#8203;2493](https://redirect.github.com/seerr-team/seerr/issues/2493))
-
([06e5eb0](https://redirect.github.com/seerr-team/seerr/commit/06e5eb0704d995fdfc14738e8a085c27a20e2e11))
- Update concurrency logic
([#&#8203;2481](https://redirect.github.com/seerr-team/seerr/issues/2481))
-
([4939f13](https://redirect.github.com/seerr-team/seerr/commit/4939f13dbe00ab0d268373e2bf1f27513fd9d0fd))
- Add semantic-pr workflow to enforce conventional commits
([#&#8203;2472](https://redirect.github.com/seerr-team/seerr/issues/2472))
-
([5e57fdc](https://redirect.github.com/seerr-team/seerr/commit/5e57fdcf66928f0cd17557fa5cf22e9805ebcf14))

#### New Contributors ❤️

- [@&#8203;caillou](https://redirect.github.com/caillou) made their
first contribution
- [@&#8203;Kenshin9977](https://redirect.github.com/Kenshin9977) made
their first contribution
- [@&#8203;MagicLegend](https://redirect.github.com/MagicLegend) made
their first contribution
- [@&#8203;wiiaam](https://redirect.github.com/wiiaam) made their first
contribution
- [@&#8203;mjonkus](https://redirect.github.com/mjonkus) made their
first contribution
- [@&#8203;nova-api](https://redirect.github.com/nova-api) made their
first contribution
- [@&#8203;mreid-tt](https://redirect.github.com/mreid-tt) made their
first contribution
- [@&#8203;DataBitz](https://redirect.github.com/DataBitz) made their
first contribution
- [@&#8203;Hyperion2220](https://redirect.github.com/Hyperion2220) made
their first contribution
- [@&#8203;blassley](https://redirect.github.com/blassley) made their
first contribution
- [@&#8203;JanKleine](https://redirect.github.com/JanKleine) made their
first contribution
- [@&#8203;koiralasandesh](https://redirect.github.com/koiralasandesh)
made their first contribution<!-- generated by git-cliff -->

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Renovate
Bot](https://redirect.github.com/renovatebot/renovate).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4yOS4yIiwidXBkYXRlZEluVmVyIjoiNDMuMjkuMiIsInRhcmdldEJyYW5jaCI6Im1hc3RlciIsImxhYmVscyI6WyJhcHAvc2VlcnIiLCJhdXRvbWVyZ2UiLCJyZW5vdmF0ZS9jb250YWluZXIiLCJ0eXBlL21pbm9yIl19-->
2026-03-18 22:57:28 +01:00
TrueCharts Bot c5a97a96b3 fix(unifi): update image ghcr.io/goofball222/unifi 10.1.85 → 10.1.89 (#46198)
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
|
[ghcr.io/goofball222/unifi](https://redirect.github.com/goofball222/unifi)
| patch | `cca3bbc` → `1ad78e0` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the [Dependency
Dashboard](../issues/18710) for more information.

Add the preset `:preserveSemverRanges` to your config if you don't want
to pin your dependencies.

---

### Release Notes

<details>
<summary>goofball222/unifi (ghcr.io/goofball222/unifi)</summary>

###
[`v10.1.89`](https://redirect.github.com/goofball222/unifi/releases/tag/10.1.89)

[Compare
Source](https://redirect.github.com/goofball222/unifi/compare/10.1.85...10.1.89)

#### What's Changed

- UniFi Network Application v10.1.89 -
<https://community.ui.com/releases/UniFi-Network-Application-10-1-89/625f366f-7ea5-4266-bd9f-500180494035>
- Bump docker/login-action from 3 to 4 by
[@&#8203;dependabot](https://redirect.github.com/dependabot)\[bot] in
[#&#8203;163](https://redirect.github.com/goofball222/unifi/pull/163)
- Bump docker/setup-qemu-action from 3 to 4 by
[@&#8203;dependabot](https://redirect.github.com/dependabot)\[bot] in
[#&#8203;164](https://redirect.github.com/goofball222/unifi/pull/164)
- Bump docker/setup-buildx-action from 3 to 4 by
[@&#8203;dependabot](https://redirect.github.com/dependabot)\[bot] in
[#&#8203;165](https://redirect.github.com/goofball222/unifi/pull/165)
- Bump docker/build-push-action from 6 to 7 by
[@&#8203;dependabot](https://redirect.github.com/dependabot)\[bot] in
[#&#8203;166](https://redirect.github.com/goofball222/unifi/pull/166)
- Bump docker/metadata-action from 5 to 6 by
[@&#8203;dependabot](https://redirect.github.com/dependabot)\[bot] in
[#&#8203;167](https://redirect.github.com/goofball222/unifi/pull/167)

**Full Changelog**:
<https://github.com/goofball222/unifi/compare/10.1.85...10.1.89>

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Renovate
Bot](https://redirect.github.com/renovatebot/renovate).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4yOS4yIiwidXBkYXRlZEluVmVyIjoiNDMuMjkuMiIsInRhcmdldEJyYW5jaCI6Im1hc3RlciIsImxhYmVscyI6WyJhcHAvdW5pZmkiLCJhdXRvbWVyZ2UiLCJyZW5vdmF0ZS9jb250YWluZXIiLCJ0eXBlL3BhdGNoIl19-->
2026-03-18 22:56:36 +01:00
TrueCharts Bot 9b84428048 chore(webtop): update webtop (#46191)
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| lscr.io/linuxserver/webtop | digest | `7bd32ea` → `7db2bfd` |
| lscr.io/linuxserver/webtop | digest | `323bf86` → `86f256b` |
| lscr.io/linuxserver/webtop | digest | `0920db1` → `384cce4` |
| lscr.io/linuxserver/webtop | digest | `8cbdc75` → `5aab368` |
| lscr.io/linuxserver/webtop | digest | `587f628` → `347c08f` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the [Dependency
Dashboard](../issues/18710) for more information.

Add the preset `:preserveSemverRanges` to your config if you don't want
to pin your dependencies.

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get
[config
help](https://redirect.github.com/renovatebot/renovate/discussions) if
that's undesired.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Renovate
Bot](https://redirect.github.com/renovatebot/renovate).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4yOS4yIiwidXBkYXRlZEluVmVyIjoiNDMuMjkuMiIsInRhcmdldEJyYW5jaCI6Im1hc3RlciIsImxhYmVscyI6WyJhcHAvd2VidG9wIiwiYXV0b21lcmdlIiwicmVub3ZhdGUvY29udGFpbmVyIiwidHlwZS9kaWdlc3QiXX0=-->
2026-03-18 22:54:36 +01:00
TrueCharts Bot 9d685b6447 chore(jellyseerr): update image oci.trueforge.org/containerforge/jellyseerr digest to 9afe374 (#46187)
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
|
[oci.trueforge.org/containerforge/jellyseerr](https://ghcr.io/trueforge-org/jellyseerr)
([source](https://redirect.github.com/seerr-team/seerr)) | digest |
`1924b1e` → `9afe374` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the [Dependency
Dashboard](../issues/18710) for more information.

Add the preset `:preserveSemverRanges` to your config if you don't want
to pin your dependencies.

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Renovate
Bot](https://redirect.github.com/renovatebot/renovate).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4yOS4yIiwidXBkYXRlZEluVmVyIjoiNDMuMjkuMiIsInRhcmdldEJyYW5jaCI6Im1hc3RlciIsImxhYmVscyI6WyJhcHAvamVsbHlzZWVyciIsImF1dG9tZXJnZSIsInJlbm92YXRlL2NvbnRhaW5lciIsInR5cGUvZGlnZXN0Il19-->
2026-03-18 21:53:11 +00:00
TrueCharts Bot d1d7ba3ee0 chore(orcaslicer): update image ghcr.io/linuxserver/orcaslicer digest to 4e36105 (#46188)
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
|
[ghcr.io/linuxserver/orcaslicer](https://redirect.github.com/linuxserver/docker-orcaslicer/packages)
([source](https://redirect.github.com/linuxserver/docker-orcaslicer)) |
digest | `3448b73` → `4e36105` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the [Dependency
Dashboard](../issues/18710) for more information.

Add the preset `:preserveSemverRanges` to your config if you don't want
to pin your dependencies.

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Renovate
Bot](https://redirect.github.com/renovatebot/renovate).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4yOS4yIiwidXBkYXRlZEluVmVyIjoiNDMuMjkuMiIsInRhcmdldEJyYW5jaCI6Im1hc3RlciIsImxhYmVscyI6WyJhcHAvb3JjYXNsaWNlciIsImF1dG9tZXJnZSIsInJlbm92YXRlL2NvbnRhaW5lciIsInR5cGUvZGlnZXN0Il19-->
2026-03-18 22:52:58 +01:00
TrueCharts Bot f2874d78ae chore(digikam): update image ghcr.io/linuxserver/digikam digest to 8ac0ff3 (#46184)
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
|
[ghcr.io/linuxserver/digikam](https://redirect.github.com/linuxserver/docker-digikam/packages)
([source](https://redirect.github.com/linuxserver/docker-digikam)) |
digest | `f047de0` → `8ac0ff3` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the [Dependency
Dashboard](../issues/18710) for more information.

Add the preset `:preserveSemverRanges` to your config if you don't want
to pin your dependencies.

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Renovate
Bot](https://redirect.github.com/renovatebot/renovate).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4yOS4yIiwidXBkYXRlZEluVmVyIjoiNDMuMjkuMiIsInRhcmdldEJyYW5jaCI6Im1hc3RlciIsImxhYmVscyI6WyJhcHAvZGlnaWthbSIsImF1dG9tZXJnZSIsInJlbm92YXRlL2NvbnRhaW5lciIsInR5cGUvZGlnZXN0Il19-->
2026-03-18 22:52:55 +01:00
TrueCharts Bot ee841717d0 chore(blender): update image lscr.io/linuxserver/blender digest to c5906c4 (#46182)
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| lscr.io/linuxserver/blender | digest | `12716f1` → `c5906c4` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the [Dependency
Dashboard](../issues/18710) for more information.

Add the preset `:preserveSemverRanges` to your config if you don't want
to pin your dependencies.

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Renovate
Bot](https://redirect.github.com/renovatebot/renovate).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4yOS4yIiwidXBkYXRlZEluVmVyIjoiNDMuMjkuMiIsInRhcmdldEJyYW5jaCI6Im1hc3RlciIsImxhYmVscyI6WyJhcHAvYmxlbmRlciIsImF1dG9tZXJnZSIsInJlbm92YXRlL2NvbnRhaW5lciIsInR5cGUvZGlnZXN0Il19-->
2026-03-18 22:52:23 +01:00
TrueCharts Bot 95983264bb fix(tdarr-node): update image docker.io/haveagitgat/tdarr_node 2.64.01 → 2.64.02 (#46196)
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
|
[docker.io/haveagitgat/tdarr_node](https://redirect.github.com/HaveAGitGat/tdarr_express_be)
| patch | `47d8774` → `ac2486f` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the [Dependency
Dashboard](../issues/18710) for more information.

Add the preset `:preserveSemverRanges` to your config if you don't want
to pin your dependencies.

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Renovate
Bot](https://redirect.github.com/renovatebot/renovate).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4yOS4yIiwidXBkYXRlZEluVmVyIjoiNDMuMjkuMiIsInRhcmdldEJyYW5jaCI6Im1hc3RlciIsImxhYmVscyI6WyJhcHAvdGRhcnItbm9kZSIsImF1dG9tZXJnZSIsInJlbm92YXRlL2NvbnRhaW5lciIsInR5cGUvcGF0Y2giXX0=-->
2026-03-18 22:50:36 +01:00
TrueCharts Bot e283c74fe6 chore(boinc): update image ghcr.io/linuxserver/boinc digest to c073c13 (#46183) 2026-03-18 22:49:54 +01:00
TrueCharts Bot 5cfee78e6b chore(filezilla): update image ghcr.io/linuxserver/filezilla digest to 0383fb6 (#46185) 2026-03-18 22:49:34 +01:00
TrueCharts Bot 9b98d742aa chore(wordpress): update image docker.io/bitnamisecure/wordpress digest to daa3e64 (#46192) 2026-03-18 22:49:27 +01:00
TrueCharts Bot d24f1a2aae fix(drawio): update image docker.io/jgraph/drawio 29.6.3 → 29.6.4 (#46193) 2026-03-18 22:49:21 +01:00
TrueCharts Bot 990c106ad0 chore(synclounge): update image ghcr.io/linuxserver/synclounge digest to 7bd82cc (#46190) 2026-03-18 22:49:02 +01:00
TrueCharts Bot 4ebaee11f4 chore(grafana-image-renderer): update image docker.io/grafana/grafana-image-renderer digest to 92f3d09 (#46186) 2026-03-18 22:47:43 +01:00
TrueCharts Bot db44346ecc feat(tdarr-node): update image docker.io/haveagitgat/tdarr_node 2.63.01 → 2.64.01 (#46180)
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
|
[docker.io/haveagitgat/tdarr_node](https://redirect.github.com/HaveAGitGat/tdarr_express_be)
| minor | `1617291` → `47d8774` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the [Dependency
Dashboard](../issues/18710) for more information.

Add the preset `:preserveSemverRanges` to your config if you don't want
to pin your dependencies.

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Renovate
Bot](https://redirect.github.com/renovatebot/renovate).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4yOS4yIiwidXBkYXRlZEluVmVyIjoiNDMuMjkuMiIsInRhcmdldEJyYW5jaCI6Im1hc3RlciIsImxhYmVscyI6WyJhcHAvdGRhcnItbm9kZSIsImF1dG9tZXJnZSIsInJlbm92YXRlL2NvbnRhaW5lciIsInR5cGUvbWlub3IiXX0=-->
2026-03-18 15:47:07 +00:00
TrueCharts Bot ac5faf3ba6 fix(cloudcommander): update image ghcr.io/coderaiser/cloudcmd 19.7.0 → 19.7.1 (#46176) 2026-03-18 16:47:03 +01:00
TrueCharts Bot e4fe4d52e4 feat(tdarr): update image docker.io/haveagitgat/tdarr 2.63.01 → 2.64.01 (#46181)
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
|
[docker.io/haveagitgat/tdarr](https://redirect.github.com/HaveAGitGat/tdarr_express_be)
| minor | `6d3522f` → `43dd3ec` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the [Dependency
Dashboard](../issues/18710) for more information.

Add the preset `:preserveSemverRanges` to your config if you don't want
to pin your dependencies.

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Renovate
Bot](https://redirect.github.com/renovatebot/renovate).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4yOS4yIiwidXBkYXRlZEluVmVyIjoiNDMuMjkuMiIsInRhcmdldEJyYW5jaCI6Im1hc3RlciIsImxhYmVscyI6WyJhcHAvdGRhcnIiLCJhdXRvbWVyZ2UiLCJyZW5vdmF0ZS9jb250YWluZXIiLCJ0eXBlL21pbm9yIl19-->
2026-03-18 15:47:01 +00:00
TrueCharts Bot 2236cc8ee2 fix(nocodb): update image docker.io/nocodb/nocodb 0.301.4 → 0.301.5 (#46178) 2026-03-18 16:46:56 +01:00
TrueCharts Bot c23c6dd535 fix(n8n): update image ghcr.io/n8n-io/n8n 2.13.0 → 2.13.1 (#46177)
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [ghcr.io/n8n-io/n8n](https://n8n.io)
([source](https://redirect.github.com/n8n-io/n8n)) | patch | `34fd08a` →
`51dc2be` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the [Dependency
Dashboard](../issues/18710) for more information.

Add the preset `:preserveSemverRanges` to your config if you don't want
to pin your dependencies.

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Renovate
Bot](https://redirect.github.com/renovatebot/renovate).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4yOS4yIiwidXBkYXRlZEluVmVyIjoiNDMuMjkuMiIsInRhcmdldEJyYW5jaCI6Im1hc3RlciIsImxhYmVscyI6WyJhcHAvbjhuIiwiYXV0b21lcmdlIiwicmVub3ZhdGUvY29udGFpbmVyIiwidHlwZS9wYXRjaCJdfQ==-->
2026-03-18 16:46:44 +01:00
TrueCharts Bot c0b775992e feat(mealie): update image ghcr.io/mealie-recipes/mealie v3.12.0 → v3.13.0 (#46179)
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
|
[ghcr.io/mealie-recipes/mealie](https://redirect.github.com/mealie-recipes/mealie)
| minor | `8d962f6` → `37c7d9c` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the [Dependency
Dashboard](../issues/18710) for more information.

Add the preset `:preserveSemverRanges` to your config if you don't want
to pin your dependencies.

---

### Release Notes

<details>
<summary>mealie-recipes/mealie (ghcr.io/mealie-recipes/mealie)</summary>

###
[`v3.13.0`](https://redirect.github.com/mealie-recipes/mealie/releases/tag/v3.13.0)

[Compare
Source](https://redirect.github.com/mealie-recipes/mealie/compare/v3.12.0...v3.13.0)

### 🍴🍴🍴🍴🍴🍴

Welcome to the latest release of Mealie! We've got a ton of new features
ready for you with this release, as well as a good chunk of bug fixes.

#### 🎉 Highlights

- You can now import recipes from YouTube, TikTok, Instagram, and other
video sources using OpenAI. Simply drop the URL of your video into
Mealie and it will download and transcribe the video, then create a
recipe.

- Units can now be standardized to enable conversions (e.g. "1 pint" can
be converted to "2 cups"). All known, standard units will be
standardized for you, but you can customize your own units on the data
management page. This enables automatic merging of shopping list
ingredients with compatible units. This is the first of many
unit-standardization features coming to Mealie, so stay tuned!

- We've upgraded our scraper to more-consistently fetch websites without
the need to copy/paste the raw HTML. Some sites may still require this,
but the vast majority work again. We'll continue to roll out
improvements to make creating recipes from websites as easy as possible.

####  New features

- feat: Unit standardization / conversion
[@&#8203;michael-genson](https://redirect.github.com/michael-genson)
([#&#8203;7121](https://redirect.github.com/mealie-recipes/mealie/issues/7121))
- feat: Add social media video import (YouTube, TikTok, Instagram)
[@&#8203;AurelienPautet](https://redirect.github.com/AurelienPautet)
([#&#8203;6764](https://redirect.github.com/mealie-recipes/mealie/issues/6764))
- feat: Recipe import progress
[@&#8203;michael-genson](https://redirect.github.com/michael-genson)
([#&#8203;7252](https://redirect.github.com/mealie-recipes/mealie/issues/7252))
- feat: Switch to httpx-curl-cffi for better scraping
[@&#8203;michael-genson](https://redirect.github.com/michael-genson)
([#&#8203;7254](https://redirect.github.com/mealie-recipes/mealie/issues/7254))
- feat: Adjust linked recipe unit and seperate when adding to shopping
list
[@&#8203;michael-genson](https://redirect.github.com/michael-genson)
([#&#8203;7260](https://redirect.github.com/mealie-recipes/mealie/issues/7260))

#### 🐛 Bug fixes

- fix: migrate RecipeRating component to script setup and defineModel
[@&#8203;ProperTeaMogul](https://redirect.github.com/ProperTeaMogul)
([#&#8203;7203](https://redirect.github.com/mealie-recipes/mealie/issues/7203))
- fix: Allow more precise standard quantities in unit data management
[@&#8203;michael-genson](https://redirect.github.com/michael-genson)
([#&#8203;7218](https://redirect.github.com/mealie-recipes/mealie/issues/7218))
- fix: Restore original recipe description string
[@&#8203;michael-genson](https://redirect.github.com/michael-genson)
([#&#8203;7221](https://redirect.github.com/mealie-recipes/mealie/issues/7221))
- fix: Don't continue parsing recipes with errored HTTP status codes
[@&#8203;deanmalan](https://redirect.github.com/deanmalan)
([#&#8203;7230](https://redirect.github.com/mealie-recipes/mealie/issues/7230))
- fix: Add ffmpeg to prod image
[@&#8203;michael-genson](https://redirect.github.com/michael-genson)
([#&#8203;7235](https://redirect.github.com/mealie-recipes/mealie/issues/7235))
- fix: Update user agents in user-agents.txt
[@&#8203;RealMochaFox](https://redirect.github.com/RealMochaFox)
([#&#8203;7250](https://redirect.github.com/mealie-recipes/mealie/issues/7250))
- fix: exclude index.html from workbox precache to prevent stale 401 app
shell [@&#8203;api2062](https://redirect.github.com/api2062)
([#&#8203;7255](https://redirect.github.com/mealie-recipes/mealie/issues/7255))

#### 🧰 Maintenance

<details>
<summary>18 changes</summary>

- chore(l10n): New Crowdin updates
[@&#8203;hay-kot](https://redirect.github.com/hay-kot)
([#&#8203;7205](https://redirect.github.com/mealie-recipes/mealie/issues/7205))
- chore(l10n): New Crowdin updates
[@&#8203;hay-kot](https://redirect.github.com/hay-kot)
([#&#8203;7208](https://redirect.github.com/mealie-recipes/mealie/issues/7208))
- chore(auto): Update pre-commit hooks
[@&#8203;mealie-actions](https://redirect.github.com/mealie-actions)
([#&#8203;7209](https://redirect.github.com/mealie-recipes/mealie/issues/7209))
- chore(l10n): New Crowdin updates
[@&#8203;hay-kot](https://redirect.github.com/hay-kot)
([#&#8203;7220](https://redirect.github.com/mealie-recipes/mealie/issues/7220))
- chore(l10n): New Crowdin updates
[@&#8203;hay-kot](https://redirect.github.com/hay-kot)
([#&#8203;7223](https://redirect.github.com/mealie-recipes/mealie/issues/7223))
- chore(l10n): New Crowdin updates
[@&#8203;hay-kot](https://redirect.github.com/hay-kot)
([#&#8203;7225](https://redirect.github.com/mealie-recipes/mealie/issues/7225))
- chore(l10n): New Crowdin updates
[@&#8203;hay-kot](https://redirect.github.com/hay-kot)
([#&#8203;7228](https://redirect.github.com/mealie-recipes/mealie/issues/7228))
- chore(l10n): New Crowdin updates
[@&#8203;hay-kot](https://redirect.github.com/hay-kot)
([#&#8203;7231](https://redirect.github.com/mealie-recipes/mealie/issues/7231))
- chore: run Ruff with --fix in Pre-commit to auto-fix fixable errors
[@&#8203;deanmalan](https://redirect.github.com/deanmalan)
([#&#8203;7232](https://redirect.github.com/mealie-recipes/mealie/issues/7232))
- chore(l10n): New Crowdin updates
[@&#8203;hay-kot](https://redirect.github.com/hay-kot)
([#&#8203;7236](https://redirect.github.com/mealie-recipes/mealie/issues/7236))
- chore(l10n): New Crowdin updates
[@&#8203;hay-kot](https://redirect.github.com/hay-kot)
([#&#8203;7240](https://redirect.github.com/mealie-recipes/mealie/issues/7240))
- chore(l10n): New Crowdin updates
[@&#8203;hay-kot](https://redirect.github.com/hay-kot)
([#&#8203;7245](https://redirect.github.com/mealie-recipes/mealie/issues/7245))
- chore(l10n): Crowdin locale sync
[@&#8203;mealie-actions](https://redirect.github.com/mealie-actions)
([#&#8203;7246](https://redirect.github.com/mealie-recipes/mealie/issues/7246))
- chore(l10n): New Crowdin updates
[@&#8203;hay-kot](https://redirect.github.com/hay-kot)
([#&#8203;7253](https://redirect.github.com/mealie-recipes/mealie/issues/7253))
- chore(l10n): New Crowdin updates
[@&#8203;hay-kot](https://redirect.github.com/hay-kot)
([#&#8203;7258](https://redirect.github.com/mealie-recipes/mealie/issues/7258))
- chore(auto): Update pre-commit hooks
[@&#8203;mealie-actions](https://redirect.github.com/mealie-actions)
([#&#8203;7256](https://redirect.github.com/mealie-recipes/mealie/issues/7256))
- chore(l10n): New Crowdin updates
[@&#8203;hay-kot](https://redirect.github.com/hay-kot)
([#&#8203;7266](https://redirect.github.com/mealie-recipes/mealie/issues/7266))
- chore(l10n): New Crowdin updates
[@&#8203;hay-kot](https://redirect.github.com/hay-kot)
([#&#8203;7270](https://redirect.github.com/mealie-recipes/mealie/issues/7270))

</details>

#### ⬆️ Dependency updates

<details>
<summary>16 changes</summary>

- fix(deps): update dependency apprise to v1.9.8
[@&#8203;renovate](https://redirect.github.com/renovate)
([#&#8203;7207](https://redirect.github.com/mealie-recipes/mealie/issues/7207))
- chore(deps): update dependency setuptools to v82.0.1
[@&#8203;renovate](https://redirect.github.com/renovate)
([#&#8203;7211](https://redirect.github.com/mealie-recipes/mealie/issues/7211))
- fix(deps): pin dependency pint to v0.25
[@&#8203;renovate](https://redirect.github.com/renovate)
([#&#8203;7213](https://redirect.github.com/mealie-recipes/mealie/issues/7213))
- fix(deps): update dependency pint to v0.25.2
[@&#8203;renovate](https://redirect.github.com/renovate)
([#&#8203;7214](https://redirect.github.com/mealie-recipes/mealie/issues/7214))
- chore(deps): update dependency mkdocs-material to v9.7.5
[@&#8203;renovate](https://redirect.github.com/renovate)
([#&#8203;7224](https://redirect.github.com/mealie-recipes/mealie/issues/7224))
- fix(deps): update dependency pyjwt to v2.12.0
[@&#8203;renovate](https://redirect.github.com/renovate)
([#&#8203;7234](https://redirect.github.com/mealie-recipes/mealie/issues/7234))
- chore(deps): update dependency ruff to v0.15.6
[@&#8203;renovate](https://redirect.github.com/renovate)
([#&#8203;7237](https://redirect.github.com/mealie-recipes/mealie/issues/7237))
- fix(deps): update dependency yt-dlp to v2026.3.13
[@&#8203;renovate](https://redirect.github.com/renovate)
([#&#8203;7239](https://redirect.github.com/mealie-recipes/mealie/issues/7239))
- fix(deps): update dependency openai to v2.28.0
[@&#8203;renovate](https://redirect.github.com/renovate)
([#&#8203;7242](https://redirect.github.com/mealie-recipes/mealie/issues/7242))
- fix(deps): update dependency uvicorn to v0.42.0
[@&#8203;renovate](https://redirect.github.com/renovate)
([#&#8203;7257](https://redirect.github.com/mealie-recipes/mealie/issues/7257))
- fix(deps): update dependency pyjwt to v2.12.1
[@&#8203;renovate](https://redirect.github.com/renovate)
([#&#8203;7241](https://redirect.github.com/mealie-recipes/mealie/issues/7241))
- chore(deps): update dependency coverage to v7.13.5
[@&#8203;renovate](https://redirect.github.com/renovate)
([#&#8203;7265](https://redirect.github.com/mealie-recipes/mealie/issues/7265))
- chore(deps): update node.js to
[`5a593d7`](https://redirect.github.com/mealie-recipes/mealie/commit/5a593d7)
[@&#8203;renovate](https://redirect.github.com/renovate)
([#&#8203;7262](https://redirect.github.com/mealie-recipes/mealie/issues/7262))
- chore(deps): update node.js to
[`5a593d7`](https://redirect.github.com/mealie-recipes/mealie/commit/5a593d7)
[@&#8203;renovate](https://redirect.github.com/renovate)
([#&#8203;7267](https://redirect.github.com/mealie-recipes/mealie/issues/7267))
- fix(deps): update dependency yt-dlp to v2026.3.17
[@&#8203;renovate](https://redirect.github.com/renovate)
([#&#8203;7269](https://redirect.github.com/mealie-recipes/mealie/issues/7269))
- fix(deps): update dependency openai to v2.29.0
[@&#8203;renovate](https://redirect.github.com/renovate)
([#&#8203;7268](https://redirect.github.com/mealie-recipes/mealie/issues/7268))

</details>

#### 🙏 New Contributors
* @&#8203;deanmalan made their first
contributi[https://github.com/mealie-recipes/mealie/pull/7230](https://redirect.github.com/mealie-recipes/mealie/pull/7230)l/7230
* @&#8203;RealMochaFox made their first
contributi[https://github.com/mealie-recipes/mealie/pull/7250](https://redirect.github.com/mealie-recipes/mealie/pull/7250)l/7250
* @&#8203;api2062 made their first
contributi[https://github.com/mealie-recipes/mealie/pull/7255](https://redirect.github.com/mealie-recipes/mealie/pull/7255)l/7255

### 🍴🍴🍴🍴🍴🍴

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Renovate
Bot](https://redirect.github.com/renovatebot/renovate).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4yOS4yIiwidXBkYXRlZEluVmVyIjoiNDMuMjkuMiIsInRhcmdldEJyYW5jaCI6Im1hc3RlciIsImxhYmVscyI6WyJhcHAvbWVhbGllIiwiYXV0b21lcmdlIiwicmVub3ZhdGUvY29udGFpbmVyIiwidHlwZS9taW5vciJdfQ==-->
2026-03-18 16:46:16 +01:00
TrueCharts Bot 947590d320 chore(kubernetes-dashboard): update image oci.trueforge.org/containerforge/kube-sa-proxy digest to 6c93fdc (#46173)
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
|
[oci.trueforge.org/containerforge/kube-sa-proxy](https://ghcr.io/trueforge-org/kube-sa-proxy)
([source](https://redirect.github.com/Jackett/Jackett)) | digest |
`8378313` → `6c93fdc` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the [Dependency
Dashboard](../issues/18710) for more information.

Add the preset `:preserveSemverRanges` to your config if you don't want
to pin your dependencies.

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Renovate
Bot](https://redirect.github.com/renovatebot/renovate).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4yOS4yIiwidXBkYXRlZEluVmVyIjoiNDMuMjkuMiIsInRhcmdldEJyYW5jaCI6Im1hc3RlciIsImxhYmVscyI6WyJhcHAva3ViZXJuZXRlcy1kYXNoYm9hcmQiLCJhdXRvbWVyZ2UiLCJyZW5vdmF0ZS9jb250YWluZXIiLCJ0eXBlL2RpZ2VzdCJdfQ==-->
2026-03-18 16:45:35 +01:00
TrueCharts Bot 8c75c220f0 chore(valkey): update image docker.io/bitnamisecure/valkey digest to 02734c7 (#46175)
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| docker.io/bitnamisecure/valkey | digest | `b1e0c19` → `02734c7` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the [Dependency
Dashboard](../issues/18710) for more information.

Add the preset `:preserveSemverRanges` to your config if you don't want
to pin your dependencies.

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Renovate
Bot](https://redirect.github.com/renovatebot/renovate).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4yOS4yIiwidXBkYXRlZEluVmVyIjoiNDMuMjkuMiIsInRhcmdldEJyYW5jaCI6Im1hc3RlciIsImxhYmVscyI6WyJhcHAvdmFsa2V5IiwiYXV0b21lcmdlIiwicmVub3ZhdGUvY29udGFpbmVyIiwidHlwZS9kaWdlc3QiXX0=-->
2026-03-18 16:45:31 +01:00
TrueCharts Bot d2975042ea chore(kdenlive): update image lscr.io/linuxserver/kdenlive digest to 209b141 (#46172)
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| lscr.io/linuxserver/kdenlive | digest | `5627f43` → `209b141` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the [Dependency
Dashboard](../issues/18710) for more information.

Add the preset `:preserveSemverRanges` to your config if you don't want
to pin your dependencies.

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Renovate
Bot](https://redirect.github.com/renovatebot/renovate).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4yOS4yIiwidXBkYXRlZEluVmVyIjoiNDMuMjkuMiIsInRhcmdldEJyYW5jaCI6Im1hc3RlciIsImxhYmVscyI6WyJhcHAva2RlbmxpdmUiLCJhdXRvbWVyZ2UiLCJyZW5vdmF0ZS9jb250YWluZXIiLCJ0eXBlL2RpZ2VzdCJdfQ==-->
2026-03-18 16:45:07 +01:00
TrueCharts Bot aa44910007 chore(projectsend): update image ghcr.io/linuxserver/projectsend digest to 46b358e (#46174)
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| ghcr.io/linuxserver/projectsend | digest | `938a000` → `46b358e` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the [Dependency
Dashboard](../issues/18710) for more information.

Add the preset `:preserveSemverRanges` to your config if you don't want
to pin your dependencies.

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Renovate
Bot](https://redirect.github.com/renovatebot/renovate).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4yOS4yIiwidXBkYXRlZEluVmVyIjoiNDMuMjkuMiIsInRhcmdldEJyYW5jaCI6Im1hc3RlciIsImxhYmVscyI6WyJhcHAvcHJvamVjdHNlbmQiLCJhdXRvbWVyZ2UiLCJyZW5vdmF0ZS9jb250YWluZXIiLCJ0eXBlL2RpZ2VzdCJdfQ==-->
2026-03-18 16:44:51 +01:00
TrueCharts-Admin 1157ff22ef chore(github-action): update actions/cache digest digest to 6682284 2026-03-18 15:36:24 +00:00
TrueCharts Bot e26a73ec4a BREAKING CHANGE(local-ai): Update image docker.io/localai/localai v3.12.1 → v4.0.0 (#46171)
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
|
[docker.io/localai/localai](https://redirect.github.com/mudler/LocalAI)
| major | `558efc7` → `b841e2b` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the [Dependency
Dashboard](../issues/18710) for more information.

Add the preset `:preserveSemverRanges` to your config if you don't want
to pin your dependencies.

---

### Release Notes

<details>
<summary>mudler/LocalAI (docker.io/localai/localai)</summary>

###
[`v4.0.0`](https://redirect.github.com/mudler/LocalAI/releases/tag/v4.0.0)

[Compare
Source](https://redirect.github.com/mudler/LocalAI/compare/v3.12.1...v4.0.0)

<!-- Release notes generated using configuration in .github/release.yml
at master -->

***

### 🎉 LocalAI 4.0.0 Release! 🚀

<h1 align="center">
  <br>
<img height="300"
src="https://raw.githubusercontent.com/mudler/LocalAI/refs/heads/master/core/http/static/logo.png">
  <br>
  <br>
</h1>

LocalAI 4.0.0 is out!

This major release transforms LocalAI into a complete AI orchestration
platform. We’ve embedded agentic and hybrid search capabilities directly
into the core, completely overhauled the user interface with React for a
modern experience, and are thrilled to introduce **Agenthub** (
[link](https://agenthub.localai.io) ) a brand new community hub to
easily share and import agents. Alongside these massive updates, we've
introduced powerful new features like Canvas mode for code artifacts,
MCP apps and full MCP client-side support.

| Feature | Summary |
| ------------------------------------ |
----------------------------------------------------------------------------------------
|
| **Agentic Orchestration & Agenthub** | Native agent management with
memory, skills, and the new Agenthub for community sharing. |
| **Revamped React UI** | Complete frontend rewrite for lightning-fast
performance and modern UX. |
| **Canvas Mode** | Preview code blocks and artifacts side-by-side in
the chat interface. |
| **MCP Client-Side** | Full Model Context Protocol support, MCP Apps,
and tool streaming in chat. |
| **WebRTC Realtime** | WebRTC support for low-latency realtime audio
conversations. |
| **New Backends** | Added experimental **MLX Distributed**,
fish-speech, ace-step.cpp, and faster-qwen3-tts. |
| **Infrastructure** | Podman documentation, shell completion, and
persistent data path separation. |

***

#### 🚀 Key Features

##### 🤖 Native Agentic Orchestration & Agenthub

LocalAI now includes agentic capabilities embedded directly in the core.
You can manage, import, start, and stop agents via the new UI.

- 🌐 **Agenthub:** We are launching
**[Agenthub](https://agenthub.localai.io/)**! This is a centralized
community space to share common agents and import them effortlessly into
your LocalAI instance.
- **Agent Management:** Full lifecycle management via the React UI.
Create Agents, connect them to Slack, configure MCP servers and skills.
- **Skills Management:** Centralized skill database for AI agents.
- **Memory:** Agents can utilize memory with Hybrid search (PostgreSQL)
or embedded in-memory storage (Chromem).
- **Observability:** New "Events" column in the Agents list to track
observables and status.
- 📚 **Documentation:** Dive into the new capabilities in our [official
Agents documentation](https://localai.io/features/agents).


<https://github.com/user-attachments/assets/6270b331-e21d-4087-a540-6290006b381a>

##### 🎨 Revamped UI & Canvas Mode

The Web interface has been completely migrated to **React**, bringing a
smoother experience and powerful new capabilities:

- **Canvas Mode:** Enable "canvas mode" in the chat to see code blocks
and artifacts generated by the LLM in a dedicated preview bar on the
right.
- **System View:** Tabbed navigation separating Models and Backends for
better organization.
- **Model Size Warnings:** Visual warnings when model storage exceeds
system RAM to prevent lockups.
- **Traces:** Improved trace display using accordions for better
readability.


<https://github.com/user-attachments/assets/08cbb692-57da-48f7-963d-2e7b43883c18>

##### 🔌 MCP Apps & Client-Side Support

We’ve expanded support for the Model Context Protocol (MCP):

- **MCP Apps:** Select which servers to enable for the chat directly
from the UI.
- **Tool Streaming:** Tools from MCP servers are automatically injected
into the standard chat interface.
- **Client-Side Support:** Full client-side integration for MCP tools
and streaming.
- **Disable Option:** Add `LOCALAI_DISABLE_MCP` to completely disable
MCP support for security.

<img width="1920" height="912" alt="mcp apps"
src="https://github.com/user-attachments/assets/ea50d29f-4a3b-412f-8c14-b8c3fb417278"
/>

##### 🎵 New Backends, Audio & Video Enhancements
- **MLX Distributed (Experimental):** We've added an experimental
backend for running distributed workloads using Apple's MLX framework!
[Check out the docs
here](https://localai.io/features/mlx-distributed/index.html).
- **New Audio Backends:** Introduced **fish-speech**, **ace-step.cpp**,
and **faster-qwen3-tts** (CUDA-only).
- **WeRTC Realtime:** WebRTC support added to the Realtime API and Talk
page for better low-latency audio handling.
- **TTS Improvements:** Added `sample_rate` support via post-processing
and multi-voice support for Qwen TTS.
- **Video Generation:** Fixed model selection dropdown sync and added
`vllm-omni` backend detection.

##### 🛠️ Infrastructure & Developer Experience
- **Data Separation:** New `--data-path` CLI flag and
`LOCALAI_DATA_PATH` env var to separate persistent data (agents, skills)
from configuration.
- **Shell Completion:** Dynamic completion scripts for bash, zsh, and
fish.
- **Podman Support:** Dedicated documentation for Podman installation
and rootless configuration.
- **Gallery & Models:** Model storage size display with RAM warnings,
and fallback URI resolution for backend installation failures.
- **Deprecations:** HuggingFace backend support removed, and AIO images
dropped to focus on main images.

***

#### 🐞 Fixes & Improvements

- **Logging:** Fixed watchdog spamming logs when no interval was
configured; downgraded health check logs to debug.
- **CUDA Detection:** Improved GPU vendor checks to prevent false CUDA
detection on CPU-only hosts with runtime libs.
- **Compatibility:** Renamed `json_verbose` to `verbose_json` for OpenAI
spec compliance (fixes Nextcloud integration).
- **Embedding:** Fixed embedding dimension truncation to return full
native dimensions.
- **Permissions:** Changed model install file permissions to 0644 to
ensure server readability.
- **Windows Docker:** Added named volumes to Docker Compose files for
Windows compatibility.
- **Model Reload:** Models now reload automatically after editing YAML
config (e.g., `context_size`).
- **Chat:** Fixed issue where thinking/reasoning blocks were sent to the
LLM.
- **Audio:** Fixed img2img pipeline in diffusers backend and Qwen TTS
duplicate argument error.

#### Known issues

- The `diffusers` backend fails to build currently (due to CI limit
exhaustion) and it's not currently part of this release (the previous
version is still available). We are looking into it but, if you want to
help and know someone at Github that could help supporting us with
better ARM runners, please reach out!

***

#### ❤️ Thank You

LocalAI is a true FOSS movement — built by contributors, powered by
community.

If you believe in privacy-first AI:

-  **Star** the repo
- 💬 **Contribute** code, docs, or feedback
- 📣 **Share** with others

Your support keeps this stack alive.

***

####  Full Changelog

<details>
<summary>📋 Click to expand full changelog</summary>

#### What's Changed
##### Breaking Changes 🛠
* Remove HuggingFace backend support by
@&#8203;localai-b[https://github.com/mudler/LocalAI/pull/8971](https://redirect.github.com/mudler/LocalAI/pull/8971)l/8971
* chore: drop AIO images by
@&#8203;mudl[https://github.com/mudler/LocalAI/pull/9004](https://redirect.github.com/mudler/LocalAI/pull/9004)l/9004

##### Bug fixes 🐛
* fix(cli): Fix watchdog running constantly and spamming logs by
@&#8203;nanoandre[https://github.com/mudler/LocalAI/pull/8624](https://redirect.github.com/mudler/LocalAI/pull/8624)l/8624
* fix(api): Downgrade health/readiness check to debug by
@&#8203;nanoandre[https://github.com/mudler/LocalAI/pull/8625](https://redirect.github.com/mudler/LocalAI/pull/8625)l/8625
* fix: rename json_verbose to verbose_json by
@&#8203;lukasdotc[https://github.com/mudler/LocalAI/pull/8627](https://redirect.github.com/mudler/LocalAI/pull/8627)l/8627
* fix(chatterbox): add support for cuda13/aarch64 by
@&#8203;mudl[https://github.com/mudler/LocalAI/pull/8653](https://redirect.github.com/mudler/LocalAI/pull/8653)l/8653
* fix: reload model after editing YAML config (issue #&#8203;8647) by
@&#8203;loc[https://github.com/mudler/LocalAI/pull/8652](https://redirect.github.com/mudler/LocalAI/pull/8652)AI/pull/8652
* fix(chat): do not send thinking/reasoning messages to the LLM by
@&#8203;mudl[https://github.com/mudler/LocalAI/pull/8656](https://redirect.github.com/mudler/LocalAI/pull/8656)l/8656
* fix: change file permissions from 0600 to 0644 in InstallModel by
@&#8203;localai-b[https://github.com/mudler/LocalAI/pull/8657](https://redirect.github.com/mudler/LocalAI/pull/8657)l/8657
* fix: Add named volumes for Windows Docker compatibility by
@&#8203;localai-b[https://github.com/mudler/LocalAI/pull/8661](https://redirect.github.com/mudler/LocalAI/pull/8661)l/8661
* fix(gallery): add fallback URI resolution for backend installation by
@&#8203;localai-b[https://github.com/mudler/LocalAI/pull/8663](https://redirect.github.com/mudler/LocalAI/pull/8663)l/8663
* fix: whisper breaking on cuda-13 (use absolute path for CUDA directory
detection) by
@&#8203;localai-b[https://github.com/mudler/LocalAI/pull/8678](https://redirect.github.com/mudler/LocalAI/pull/8678)l/8678
* fix(gallery): clean up partially downloaded backend on installation
failure by
@&#8203;localai-b[https://github.com/mudler/LocalAI/pull/8679](https://redirect.github.com/mudler/LocalAI/pull/8679)l/8679
* fix: properly sync model selection dropdown in video generation UI by
@&#8203;localai-b[https://github.com/mudler/LocalAI/pull/8680](https://redirect.github.com/mudler/LocalAI/pull/8680)l/8680
* fix: allow reranking models configured with known_usecases by
@&#8203;localai-b[https://github.com/mudler/LocalAI/pull/8681](https://redirect.github.com/mudler/LocalAI/pull/8681)l/8681
* fix: return full embedding dimensions instead of truncating trailing
zeros (#&#8203;8721) by
@&#8203;loc[https://github.com/mudler/LocalAI/pull/8755](https://redirect.github.com/mudler/LocalAI/pull/8755)AI/pull/8755
* fix: Add vllm-omni backend to video generation model detection
(#&#8203;8659) by
@&#8203;loc[https://github.com/mudler/LocalAI/pull/8781](https://redirect.github.com/mudler/LocalAI/pull/8781)AI/pull/8781
* fix(qwen-tts): duplicate instruct argument in voice design mode by
@&#8203;Weatherco[https://github.com/mudler/LocalAI/pull/8842](https://redirect.github.com/mudler/LocalAI/pull/8842)l/8842
* Fix image upload processing and img2img pipeline in diffusers backend
by
@&#8203;attilagyorf[https://github.com/mudler/LocalAI/pull/8879](https://redirect.github.com/mudler/LocalAI/pull/8879)l/8879
* fix: gate CUDA directory checks on GPU vendor to prevent false CUDA
detection by
@&#8203;sozerc[https://github.com/mudler/LocalAI/pull/8942](https://redirect.github.com/mudler/LocalAI/pull/8942)l/8942
* fix(llama-cpp): Set enable_thinking in the correct place by
@&#8203;richie[https://github.com/mudler/LocalAI/pull/8973](https://redirect.github.com/mudler/LocalAI/pull/8973)l/8973

##### Exciting New Features 🎉
* feat(traces): Use accordian instead of pop-ups by
@&#8203;richie[https://github.com/mudler/LocalAI/pull/8626](https://redirect.github.com/mudler/LocalAI/pull/8626)l/8626
* chore: remove install.sh script and documentation references by
@&#8203;localai-b[https://github.com/mudler/LocalAI/pull/8643](https://redirect.github.com/mudler/LocalAI/pull/8643)l/8643
* docs: add Podman installation documentation by
@&#8203;localai-b[https://github.com/mudler/LocalAI/pull/8646](https://redirect.github.com/mudler/LocalAI/pull/8646)l/8646
* Add `sample_rate` support to TTS API via post-processing resampling by
@&#8203;Copil[https://github.com/mudler/LocalAI/pull/8650](https://redirect.github.com/mudler/LocalAI/pull/8650)l/8650
* feat(backends): add faster-qwen3-tts by
@&#8203;localai-b[https://github.com/mudler/LocalAI/pull/8664](https://redirect.github.com/mudler/LocalAI/pull/8664)l/8664
* feat(models): add model storage size display and RAM warning by
@&#8203;localai-b[https://github.com/mudler/LocalAI/pull/8675](https://redirect.github.com/mudler/LocalAI/pull/8675)l/8675
* feat(ui): add model size estimation by
@&#8203;mudl[https://github.com/mudler/LocalAI/pull/8684](https://redirect.github.com/mudler/LocalAI/pull/8684)l/8684
* feat: Add Free RPC to backend.proto for VRAM cleanup by
@&#8203;localai-b[https://github.com/mudler/LocalAI/pull/8751](https://redirect.github.com/mudler/LocalAI/pull/8751)l/8751
* feat(qwen-tts): Support using multiple voices by
@&#8203;nanoandre[https://github.com/mudler/LocalAI/pull/8757](https://redirect.github.com/mudler/LocalAI/pull/8757)l/8757
* feat(ui): move to React for frontend by
@&#8203;mudl[https://github.com/mudler/LocalAI/pull/8772](https://redirect.github.com/mudler/LocalAI/pull/8772)l/8772
* feat: add WebSocket mode support for the response api by
@&#8203;bitto[https://github.com/mudler/LocalAI/pull/8676](https://redirect.github.com/mudler/LocalAI/pull/8676)l/8676
* feat: Add LOCALAI_DISABLE_MCP environment variable to disable MCP
support by
@&#8203;localai-b[https://github.com/mudler/LocalAI/pull/8816](https://redirect.github.com/mudler/LocalAI/pull/8816)l/8816
* feat: add agentic management by
@&#8203;mudl[https://github.com/mudler/LocalAI/pull/8820](https://redirect.github.com/mudler/LocalAI/pull/8820)l/8820
* feat: Add shell completion support for bash, zsh, and fish by
@&#8203;localai-b[https://github.com/mudler/LocalAI/pull/8851](https://redirect.github.com/mudler/LocalAI/pull/8851)l/8851
* feat(downloader): add HF_MIRROR environment variable support by
@&#8203;localai-b[https://github.com/mudler/LocalAI/pull/8847](https://redirect.github.com/mudler/LocalAI/pull/8847)l/8847
* feat: add Events column to Agents list page by
@&#8203;localai-b[https://github.com/mudler/LocalAI/pull/8870](https://redirect.github.com/mudler/LocalAI/pull/8870)l/8870
* feat: Add tabs to System view for Models and Backends by
@&#8203;localai-b[https://github.com/mudler/LocalAI/pull/8885](https://redirect.github.com/mudler/LocalAI/pull/8885)l/8885
* feat: Add --data-path CLI flag for persistent data separation by
@&#8203;localai-b[https://github.com/mudler/LocalAI/pull/8888](https://redirect.github.com/mudler/LocalAI/pull/8888)l/8888
* feat(mlx-distributed): add new (experimental) MLX-distributed backend
by
@&#8203;mudl[https://github.com/mudler/LocalAI/pull/8801](https://redirect.github.com/mudler/LocalAI/pull/8801)l/8801
* chore(size): display size of HF models and allow to specify it from
the gallery by
@&#8203;mudl[https://github.com/mudler/LocalAI/pull/8907](https://redirect.github.com/mudler/LocalAI/pull/8907)l/8907
* feat(ui): add canvas mode, support history in agent chat by
@&#8203;mudl[https://github.com/mudler/LocalAI/pull/8927](https://redirect.github.com/mudler/LocalAI/pull/8927)l/8927
* feat(ui): MCP Apps, mcp streaming and client-side support by
@&#8203;mudl[https://github.com/mudler/LocalAI/pull/8947](https://redirect.github.com/mudler/LocalAI/pull/8947)l/8947
* feat: add fish-speech backend by
@&#8203;mudl[https://github.com/mudler/LocalAI/pull/8962](https://redirect.github.com/mudler/LocalAI/pull/8962)l/8962
* feat(backends): add ace-step.cpp by
@&#8203;mudl[https://github.com/mudler/LocalAI/pull/8965](https://redirect.github.com/mudler/LocalAI/pull/8965)l/8965
* feat(realtime): WebRTC support by
@&#8203;richie[https://github.com/mudler/LocalAI/pull/8790](https://redirect.github.com/mudler/LocalAI/pull/8790)l/8790

##### 🧠 Models
* chore(model gallery): 🤖 add 1 new models via gallery agent by
@&#8203;localai-b[https://github.com/mudler/LocalAI/pull/8693](https://redirect.github.com/mudler/LocalAI/pull/8693)l/8693
* chore(model gallery): 🤖 add 1 new models via gallery agent by
@&#8203;localai-b[https://github.com/mudler/LocalAI/pull/8694](https://redirect.github.com/mudler/LocalAI/pull/8694)l/8694
* chore(model gallery): 🤖 add 1 new models via gallery agent by
@&#8203;localai-b[https://github.com/mudler/LocalAI/pull/8695](https://redirect.github.com/mudler/LocalAI/pull/8695)l/8695
* chore(model gallery): 🤖 add 1 new models via gallery agent by
@&#8203;localai-b[https://github.com/mudler/LocalAI/pull/8696](https://redirect.github.com/mudler/LocalAI/pull/8696)l/8696
* chore(model gallery): 🤖 add 1 new models via gallery agent by
@&#8203;localai-b[https://github.com/mudler/LocalAI/pull/8698](https://redirect.github.com/mudler/LocalAI/pull/8698)l/8698

##### 📖 Documentation and examples
* fix(realtime): Add functions to conversation history by
@&#8203;richie[https://github.com/mudler/LocalAI/pull/8616](https://redirect.github.com/mudler/LocalAI/pull/8616)l/8616
* docs: update diffusers multi-GPU documentation to mention
tensor_parallel_size configuration by
@&#8203;localai-b[https://github.com/mudler/LocalAI/pull/8621](https://redirect.github.com/mudler/LocalAI/pull/8621)l/8621
* docs: Update Home Assistant links in README.md by
@&#8203;loryanstra[https://github.com/mudler/LocalAI/pull/8688](https://redirect.github.com/mudler/LocalAI/pull/8688)l/8688

##### 👒 Dependencies
* chore(deps): bump fyne.io/fyne/v2 from 2.7.2 to 2.7.3 by
@&#8203;dependabot[bo[https://github.com/mudler/LocalAI/pull/8629](https://redirect.github.com/mudler/LocalAI/pull/8629)l/8629
* chore(deps): bump github.com/anthropics/anthropic-sdk-go from 1.22.0
to 1.26.0 by
@&#8203;dependabot[bo[https://github.com/mudler/LocalAI/pull/8630](https://redirect.github.com/mudler/LocalAI/pull/8630)l/8630
* chore(deps): bump github.com/gpustack/gguf-parser-go from 0.23.1 to
0.24.0 by
@&#8203;dependabot[bo[https://github.com/mudler/LocalAI/pull/8631](https://redirect.github.com/mudler/LocalAI/pull/8631)l/8631
* chore(deps): bump actions/stale from 10.1.1 to 10.2.0 by
@&#8203;dependabot[bo[https://github.com/mudler/LocalAI/pull/8633](https://redirect.github.com/mudler/LocalAI/pull/8633)l/8633
* chore(deps): bump goreleaser/goreleaser-action from 6 to 7 by
@&#8203;dependabot[bo[https://github.com/mudler/LocalAI/pull/8634](https://redirect.github.com/mudler/LocalAI/pull/8634)l/8634
* chore(deps): bump github.com/mudler/cogito from
0.9.1-0.20260217143801-bb7f986ed2c7 to 0.9.1 by
@&#8203;dependabot[bo[https://github.com/mudler/LocalAI/pull/8632](https://redirect.github.com/mudler/LocalAI/pull/8632)l/8632
* chore(deps): bump grpcio from 1.76.0 to 1.78.1 in
/backend/python/coqui by
@&#8203;dependabot[bo[https://github.com/mudler/LocalAI/pull/8642](https://redirect.github.com/mudler/LocalAI/pull/8642)l/8642
* chore(deps): bump grpcio from 1.76.0 to 1.78.1 in
/backend/python/common/template by
@&#8203;dependabot[bo[https://github.com/mudler/LocalAI/pull/8641](https://redirect.github.com/mudler/LocalAI/pull/8641)l/8641
* chore(deps): bump grpcio from 1.76.0 to 1.78.1 in
/backend/python/transformers by
@&#8203;dependabot[bo[https://github.com/mudler/LocalAI/pull/8640](https://redirect.github.com/mudler/LocalAI/pull/8640)l/8640
* chore(deps): bump sentence-transformers from 5.2.2 to 5.2.3 in
/backend/python/transformers by
@&#8203;dependabot[bo[https://github.com/mudler/LocalAI/pull/8638](https://redirect.github.com/mudler/LocalAI/pull/8638)l/8638
* chore(deps): bump grpcio from 1.76.0 to 1.78.1 in
/backend/python/rerankers by
@&#8203;dependabot[bo[https://github.com/mudler/LocalAI/pull/8636](https://redirect.github.com/mudler/LocalAI/pull/8636)l/8636
* chore(deps): bump grpcio from 1.76.0 to 1.78.1 in /backend/python/vllm
by
@&#8203;dependabot[bo[https://github.com/mudler/LocalAI/pull/8635](https://redirect.github.com/mudler/LocalAI/pull/8635)l/8635
* chore(deps): bump actions/download-artifact from 7 to 8 by
@&#8203;dependabot[bo[https://github.com/mudler/LocalAI/pull/8729](https://redirect.github.com/mudler/LocalAI/pull/8729)l/8729
* chore(deps): bump actions/upload-artifact from 6 to 7 by
@&#8203;dependabot[bo[https://github.com/mudler/LocalAI/pull/8730](https://redirect.github.com/mudler/LocalAI/pull/8730)l/8730
* chore(deps): bump github.com/openai/openai-go/v3 from 3.19.0 to 3.24.0
by
@&#8203;dependabot[bo[https://github.com/mudler/LocalAI/pull/8732](https://redirect.github.com/mudler/LocalAI/pull/8732)l/8732
* chore(deps): bump github.com/modelcontextprotocol/go-sdk from 1.3.0 to
1.4.0 by
@&#8203;dependabot[bo[https://github.com/mudler/LocalAI/pull/8733](https://redirect.github.com/mudler/LocalAI/pull/8733)l/8733
* chore(deps): bump go.opentelemetry.io/otel from 1.40.0 to 1.41.0 by
@&#8203;dependabot[bo[https://github.com/mudler/LocalAI/pull/8734](https://redirect.github.com/mudler/LocalAI/pull/8734)l/8734
* chore(deps): bump go.opentelemetry.io/otel/metric from 1.40.0 to
1.41.0 by
@&#8203;dependabot[bo[https://github.com/mudler/LocalAI/pull/8735](https://redirect.github.com/mudler/LocalAI/pull/8735)l/8735
* chore(deps): bump github.com/google/go-containerregistry from 0.20.7
to 0.21.1 by
@&#8203;dependabot[bo[https://github.com/mudler/LocalAI/pull/8736](https://redirect.github.com/mudler/LocalAI/pull/8736)l/8736
* chore(deps): bump go.opentelemetry.io/otel/sdk/metric from 1.40.0 to
1.42.0 by
@&#8203;dependabot[bo[https://github.com/mudler/LocalAI/pull/8915](https://redirect.github.com/mudler/LocalAI/pull/8915)l/8915
* chore(deps): bump github.com/openai/openai-go/v3 from 3.24.0 to 3.26.0
by
@&#8203;dependabot[bo[https://github.com/mudler/LocalAI/pull/8916](https://redirect.github.com/mudler/LocalAI/pull/8916)l/8916
* chore(deps): bump go.yaml.in/yaml/v2 from 2.4.3 to 2.4.4 by
@&#8203;dependabot[bo[https://github.com/mudler/LocalAI/pull/8913](https://redirect.github.com/mudler/LocalAI/pull/8913)l/8913
* chore(deps): bump github.com/labstack/echo/v4 from 4.15.0 to 4.15.1 by
@&#8203;dependabot[bo[https://github.com/mudler/LocalAI/pull/8914](https://redirect.github.com/mudler/LocalAI/pull/8914)l/8914
* chore(deps): bump docker/metadata-action from 5 to 6 by
@&#8203;dependabot[bo[https://github.com/mudler/LocalAI/pull/8917](https://redirect.github.com/mudler/LocalAI/pull/8917)l/8917
* chore(deps): bump actions/setup-node from 4 to 6 by
@&#8203;dependabot[bo[https://github.com/mudler/LocalAI/pull/8920](https://redirect.github.com/mudler/LocalAI/pull/8920)l/8920
* chore(deps): bump docker/build-push-action from 6 to 7 by
@&#8203;dependabot[bo[https://github.com/mudler/LocalAI/pull/8919](https://redirect.github.com/mudler/LocalAI/pull/8919)l/8919
* chore(deps): bump docker/login-action from 3 to 4 by
@&#8203;dependabot[bo[https://github.com/mudler/LocalAI/pull/8918](https://redirect.github.com/mudler/LocalAI/pull/8918)l/8918
* chore(deps): bump node from 22-slim to 25-slim by
@&#8203;dependabot[bo[https://github.com/mudler/LocalAI/pull/8922](https://redirect.github.com/mudler/LocalAI/pull/8922)l/8922

##### Other Changes
* docs: ⬆️ update docs version mudler/LocalAI by
@&#8203;localai-b[https://github.com/mudler/LocalAI/pull/8618](https://redirect.github.com/mudler/LocalAI/pull/8618)l/8618
* chore: ⬆️ Update ggml-org/llama.cpp to
`f75c4e8bf52ea480ece07fd3d9a292f1d7f04bc5` by
@&#8203;localai-b[https://github.com/mudler/LocalAI/pull/8619](https://redirect.github.com/mudler/LocalAI/pull/8619)l/8619
* chore: ⬆️ Update ggml-org/llama.cpp to
`2b6dfe824de8600c061ef91ce5cc5c307f97112c` by
@&#8203;localai-b[https://github.com/mudler/LocalAI/pull/8622](https://redirect.github.com/mudler/LocalAI/pull/8622)l/8622
* chore: ⬆️ Update ggml-org/llama.cpp to
`b68a83e641b3ebe6465970b34e99f3f0e0a0b21a` by
@&#8203;localai-b[https://github.com/mudler/LocalAI/pull/8628](https://redirect.github.com/mudler/LocalAI/pull/8628)l/8628
* fix(webui): use different icon for System nav item by
@&#8203;localai-b[https://github.com/mudler/LocalAI/pull/8648](https://redirect.github.com/mudler/LocalAI/pull/8648)l/8648
* chore: ⬆️ Update ggml-org/llama.cpp to
`418dea39cea85d3496c8b04a118c3b17f3940ad8` by
@&#8203;localai-b[https://github.com/mudler/LocalAI/pull/8649](https://redirect.github.com/mudler/LocalAI/pull/8649)l/8649
* feat(swagger): update swagger by
@&#8203;localai-b[https://github.com/mudler/LocalAI/pull/8654](https://redirect.github.com/mudler/LocalAI/pull/8654)l/8654
* chore: ⬆️ Update ggml-org/llama.cpp to
`3769fe6eb70b0a0fbb30b80917f1caae68c902f7` by
@&#8203;localai-b[https://github.com/mudler/LocalAI/pull/8655](https://redirect.github.com/mudler/LocalAI/pull/8655)l/8655
* chore: ⬆️ Update ggml-org/llama.cpp to
`723c71064da0908c19683f8c344715fbf6d986fd` by
@&#8203;localai-b[https://github.com/mudler/LocalAI/pull/8660](https://redirect.github.com/mudler/LocalAI/pull/8660)l/8660
* fix(qwen3.5): add qwen3.5 preset and mimick llama.cpp's PEG by
@&#8203;mudl[https://github.com/mudler/LocalAI/pull/8668](https://redirect.github.com/mudler/LocalAI/pull/8668)l/8668
* chore: ⬆️ Update ggml-org/whisper.cpp to
`9453b4b9be9b73adfc35051083f37cefa039acee` by
@&#8203;localai-b[https://github.com/mudler/LocalAI/pull/8671](https://redirect.github.com/mudler/LocalAI/pull/8671)l/8671
* chore(deps): bump llama.cpp to
'ecbcb7ea9d3303097519723b264a8b5f1e977028' by
@&#8203;mudl[https://github.com/mudler/LocalAI/pull/8672](https://redirect.github.com/mudler/LocalAI/pull/8672)l/8672
* docs: add CDI driver config for NVIDIA GPU in containers (fix
#&#8203;8108) by
@&#8203;loc[https://github.com/mudler/LocalAI/pull/8677](https://redirect.github.com/mudler/LocalAI/pull/8677)AI/pull/8677
* docs: add TLS reverse proxy configuration guide by
@&#8203;localai-b[https://github.com/mudler/LocalAI/pull/8673](https://redirect.github.com/mudler/LocalAI/pull/8673)l/8673
* chore: ⬆️ Update ggml-org/llama.cpp to
`05728db18eea59de81ee3a7699739daaf015206b` by
@&#8203;localai-b[https://github.com/mudler/LocalAI/pull/8683](https://redirect.github.com/mudler/LocalAI/pull/8683)l/8683
* fix: simplify CI steps, fix gallery agent by
@&#8203;mudl[https://github.com/mudler/LocalAI/pull/8685](https://redirect.github.com/mudler/LocalAI/pull/8685)l/8685
* fix: retry when LLM returns empty messages by
@&#8203;mudl[https://github.com/mudler/LocalAI/pull/8704](https://redirect.github.com/mudler/LocalAI/pull/8704)l/8704
* feat(swagger): update swagger by
@&#8203;localai-b[https://github.com/mudler/LocalAI/pull/8706](https://redirect.github.com/mudler/LocalAI/pull/8706)l/8706
* feat: Add debug logging for pocket-tts voice issue #&#8203;8244 by
@&#8203;loc[https://github.com/mudler/LocalAI/pull/8715](https://redirect.github.com/mudler/LocalAI/pull/8715)AI/pull/8715
* fix(ci): correct transformer backend path typo by
@&#8203;localai-b[https://github.com/mudler/LocalAI/pull/8712](https://redirect.github.com/mudler/LocalAI/pull/8712)l/8712
* chore: ⬆️ Update ggml-org/llama.cpp to
`319146247e643695f94a558e8ae686277dd4f8da` by
@&#8203;localai-b[https://github.com/mudler/LocalAI/pull/8707](https://redirect.github.com/mudler/LocalAI/pull/8707)l/8707
* fix: Implement responsive line wrapping for model names (#&#8203;8209)
by
@&#8203;loc[https://github.com/mudler/LocalAI/pull/8720](https://redirect.github.com/mudler/LocalAI/pull/8720)AI/pull/8720
* fix(qwen-tts): ensure all requirements files end with newline by
@&#8203;localai-b[https://github.com/mudler/LocalAI/pull/8724](https://redirect.github.com/mudler/LocalAI/pull/8724)l/8724
* chore(model-gallery): ⬆️ update checksum by
@&#8203;localai-b[https://github.com/mudler/LocalAI/pull/8728](https://redirect.github.com/mudler/LocalAI/pull/8728)l/8728
* chore: ⬆️ Update ggml-org/llama.cpp to
`4d828bd1ab52773ba9570cc008cf209eb4a8b2f5` by
@&#8203;localai-b[https://github.com/mudler/LocalAI/pull/8727](https://redirect.github.com/mudler/LocalAI/pull/8727)l/8727
* chore(model gallery): 🤖 add 1 new models via gallery agent by
@&#8203;localai-b[https://github.com/mudler/LocalAI/pull/8743](https://redirect.github.com/mudler/LocalAI/pull/8743)l/8743
* chore: ⬆️ Update ggml-org/llama.cpp to
`ecd99d6a9acbc436bad085783bcd5d0b9ae9e9e9` by
@&#8203;localai-b[https://github.com/mudler/LocalAI/pull/8762](https://redirect.github.com/mudler/LocalAI/pull/8762)l/8762
* chore(model gallery): 🤖 add 1 new models via gallery agent by
@&#8203;localai-b[https://github.com/mudler/LocalAI/pull/8770](https://redirect.github.com/mudler/LocalAI/pull/8770)l/8770
* chore(model-gallery): ⬆️ update checksum by
@&#8203;localai-b[https://github.com/mudler/LocalAI/pull/8778](https://redirect.github.com/mudler/LocalAI/pull/8778)l/8778
* chore: ⬆️ Update ggml-org/llama.cpp to
`24d2ee052795063afffc9732465ca1b1c65f4a28` by
@&#8203;localai-b[https://github.com/mudler/LocalAI/pull/8777](https://redirect.github.com/mudler/LocalAI/pull/8777)l/8777
* docs: add autonomous development team section to README by
@&#8203;localai-b[https://github.com/mudler/LocalAI/pull/8780](https://redirect.github.com/mudler/LocalAI/pull/8780)l/8780
* feat: Rename 'Whisper' model type to 'STT' in UI by
@&#8203;localai-b[https://github.com/mudler/LocalAI/pull/8785](https://redirect.github.com/mudler/LocalAI/pull/8785)l/8785
* chore: ⬆️ Update ggml-org/whisper.cpp to
`30c5194c9691e4e9a98b3dea9f19727397d3f46e` by
@&#8203;localai-b[https://github.com/mudler/LocalAI/pull/8796](https://redirect.github.com/mudler/LocalAI/pull/8796)l/8796
* chore: ⬆️ Update ggml-org/llama.cpp to
`a0ed91a442ea6b013bd42ebc3887a81792eaefa1` by
@&#8203;localai-b[https://github.com/mudler/LocalAI/pull/8797](https://redirect.github.com/mudler/LocalAI/pull/8797)l/8797
* feat: pass-by metadata to predict options by
@&#8203;mudl[https://github.com/mudler/LocalAI/pull/8795](https://redirect.github.com/mudler/LocalAI/pull/8795)l/8795
* fix: Add timeout-based wait for model deletion completion by
@&#8203;localai-b[https://github.com/mudler/LocalAI/pull/8756](https://redirect.github.com/mudler/LocalAI/pull/8756)l/8756
* chore: Add LTX-2.3 model to gallery by
@&#8203;localai-b[https://github.com/mudler/LocalAI/pull/8805](https://redirect.github.com/mudler/LocalAI/pull/8805)l/8805
* chore: ⬆️ Update ggml-org/llama.cpp to
`566059a26b0ce8faec4ea053605719d399c64cc5` by
@&#8203;localai-b[https://github.com/mudler/LocalAI/pull/8822](https://redirect.github.com/mudler/LocalAI/pull/8822)l/8822
* chore(model gallery): 🤖 add 1 new models via gallery agent by
@&#8203;localai-b[https://github.com/mudler/LocalAI/pull/8828](https://redirect.github.com/mudler/LocalAI/pull/8828)l/8828
* chore(model gallery): 🤖 add 1 new models via gallery agent by
@&#8203;localai-b[https://github.com/mudler/LocalAI/pull/8830](https://redirect.github.com/mudler/LocalAI/pull/8830)l/8830
* feat: update descriptions for first 9 models in gallery/index.yaml by
@&#8203;localai-b[https://github.com/mudler/LocalAI/pull/8831](https://redirect.github.com/mudler/LocalAI/pull/8831)l/8831
* chore: ⬆️ Update ggml-org/llama.cpp to
`c5a778891ba0ddbd4cbb507c823f970595b1adc2` by
@&#8203;localai-b[https://github.com/mudler/LocalAI/pull/8837](https://redirect.github.com/mudler/LocalAI/pull/8837)l/8837
* chore(docs): Populate coding guidelines in CONTRIBUTING.md by
@&#8203;localai-b[https://github.com/mudler/LocalAI/pull/8840](https://redirect.github.com/mudler/LocalAI/pull/8840)l/8840
* fix: Remove debug print statement from soundgeneration.go (C2) by
@&#8203;localai-b[https://github.com/mudler/LocalAI/pull/8843](https://redirect.github.com/mudler/LocalAI/pull/8843)l/8843
* docs: Add comprehensive API error reference documentation by
@&#8203;localai-b[https://github.com/mudler/LocalAI/pull/8848](https://redirect.github.com/mudler/LocalAI/pull/8848)l/8848
* docs: add Table of Contents to README.md by
@&#8203;localai-b[https://github.com/mudler/LocalAI/pull/8846](https://redirect.github.com/mudler/LocalAI/pull/8846)l/8846
* chore: ⬆️ Update leejet/stable-diffusion.cpp to
c8fb3d245858d495be1f140efdcfaa0d49de41e5 by
@&#8203;localai-b[https://github.com/mudler/LocalAI/pull/8841](https://redirect.github.com/mudler/LocalAI/pull/8841)l/8841
* docs: clarify SECURITY.md version support table with specific ranges
and EOL dates by
@&#8203;localai-b[https://github.com/mudler/LocalAI/pull/8861](https://redirect.github.com/mudler/LocalAI/pull/8861)l/8861
* fix: Correct Talk Interface screenshot reference in README.md (H6) by
@&#8203;localai-b[https://github.com/mudler/LocalAI/pull/8857](https://redirect.github.com/mudler/LocalAI/pull/8857)l/8857
* feat: Add documentation for undocumented API endpoints by
@&#8203;localai-b[https://github.com/mudler/LocalAI/pull/8852](https://redirect.github.com/mudler/LocalAI/pull/8852)l/8852
* docs: add comprehensive development setup instructions to
CONTRIBUTING.md (H7) by
@&#8203;localai-b[https://github.com/mudler/LocalAI/pull/8860](https://redirect.github.com/mudler/LocalAI/pull/8860)l/8860
* feat(cli): add configurable backend image fallback tags via CLI
options by
@&#8203;localai-b[https://github.com/mudler/LocalAI/pull/8817](https://redirect.github.com/mudler/LocalAI/pull/8817)l/8817
* feat: add MIT license badge to README.md by
@&#8203;localai-b[https://github.com/mudler/LocalAI/pull/8871](https://redirect.github.com/mudler/LocalAI/pull/8871)l/8871
* feat: Create comprehensive troubleshooting guide (M1 task) by
@&#8203;localai-b[https://github.com/mudler/LocalAI/pull/8856](https://redirect.github.com/mudler/LocalAI/pull/8856)l/8856
* docs: expand GPU acceleration guide with L4T, multi-GPU, monitoring,
and troubleshooting by
@&#8203;localai-b[https://github.com/mudler/LocalAI/pull/8858](https://redirect.github.com/mudler/LocalAI/pull/8858)l/8858
* feat: Add documentation URLs to CLI help text by
@&#8203;localai-b[https://github.com/mudler/LocalAI/pull/8874](https://redirect.github.com/mudler/LocalAI/pull/8874)l/8874
* feat(functions): add peg-based parsing and allow backends to return
tool calls directly by
@&#8203;mudl[https://github.com/mudler/LocalAI/pull/8838](https://redirect.github.com/mudler/LocalAI/pull/8838)l/8838
* chore: Update README.md screenshot references and alt text by
@&#8203;localai-b[https://github.com/mudler/LocalAI/pull/8862](https://redirect.github.com/mudler/LocalAI/pull/8862)l/8862
* chore: ⬆️ Update ggml-org/llama.cpp to
`35bee031e17ed2b2e8e7278b284a6c8cd120d9f8` by
@&#8203;localai-b[https://github.com/mudler/LocalAI/pull/8872](https://redirect.github.com/mudler/LocalAI/pull/8872)l/8872
* docs: Update model compatibility documentation with missing backends
by
@&#8203;localai-b[https://github.com/mudler/LocalAI/pull/8889](https://redirect.github.com/mudler/LocalAI/pull/8889)l/8889
* docs: make examples repository link more prominent by
@&#8203;localai-b[https://github.com/mudler/LocalAI/pull/8895](https://redirect.github.com/mudler/LocalAI/pull/8895)l/8895
* chore(model gallery): 🤖 add 1 new models via gallery agent by
@&#8203;localai-b[https://github.com/mudler/LocalAI/pull/8901](https://redirect.github.com/mudler/LocalAI/pull/8901)l/8901
* chore(model gallery): 🤖 add 1 new models via gallery agent by
@&#8203;localai-b[https://github.com/mudler/LocalAI/pull/8902](https://redirect.github.com/mudler/LocalAI/pull/8902)l/8902
* chore(model gallery): 🤖 add 1 new models via gallery agent by
@&#8203;localai-b[https://github.com/mudler/LocalAI/pull/8904](https://redirect.github.com/mudler/LocalAI/pull/8904)l/8904
* feat: Redesign explorer and models pages with react-ui theme by
@&#8203;localai-b[https://github.com/mudler/LocalAI/pull/8903](https://redirect.github.com/mudler/LocalAI/pull/8903)l/8903
* fix(ui): minor visual enhancements by
@&#8203;mudl[https://github.com/mudler/LocalAI/pull/8909](https://redirect.github.com/mudler/LocalAI/pull/8909)l/8909
* feat(swagger): update swagger by
@&#8203;localai-b[https://github.com/mudler/LocalAI/pull/8923](https://redirect.github.com/mudler/LocalAI/pull/8923)l/8923
* feat: Standardize CLI flag naming to kebab-case (M12) by
@&#8203;localai-b[https://github.com/mudler/LocalAI/pull/8912](https://redirect.github.com/mudler/LocalAI/pull/8912)l/8912
* chore: ⬆️ Update leejet/stable-diffusion.cpp to
`d6dd6d7b555c233bb9bc9f20b4751eb8c9269743` by
@&#8203;localai-b[https://github.com/mudler/LocalAI/pull/8925](https://redirect.github.com/mudler/LocalAI/pull/8925)l/8925
* chore: ⬆️ Update ggml-org/llama.cpp to
`23fbfcb1ad6c6f76b230e8895254de785000be46` by
@&#8203;localai-b[https://github.com/mudler/LocalAI/pull/8921](https://redirect.github.com/mudler/LocalAI/pull/8921)l/8921
* fix: correct grammar in CONTRIBUTING.md documentation section by
@&#8203;localai-b[https://github.com/mudler/LocalAI/pull/8932](https://redirect.github.com/mudler/LocalAI/pull/8932)l/8932
* feat: Expand section index pages with comprehensive navigation (M7) by
@&#8203;localai-b[https://github.com/mudler/LocalAI/pull/8929](https://redirect.github.com/mudler/LocalAI/pull/8929)l/8929
* chore(model gallery): 🤖 add 1 new models via gallery agent by
@&#8203;localai-b[https://github.com/mudler/LocalAI/pull/8939](https://redirect.github.com/mudler/LocalAI/pull/8939)l/8939
* chore(model-gallery): ⬆️ update checksum by
@&#8203;localai-b[https://github.com/mudler/LocalAI/pull/8945](https://redirect.github.com/mudler/LocalAI/pull/8945)l/8945
* chore: ⬆️ Update ggml-org/llama.cpp to
`10e5b148b061569aaee8ae0cf72a703129df0eab` by
@&#8203;localai-b[https://github.com/mudler/LocalAI/pull/8946](https://redirect.github.com/mudler/LocalAI/pull/8946)l/8946
* fix: include model name in mmproj file path to prevent model isolation
(#&#8203;8937) by
@&#8203;loc[https://github.com/mudler/LocalAI/pull/8940](https://redirect.github.com/mudler/LocalAI/pull/8940)AI/pull/8940
* feat(swagger): update swagger by
@&#8203;localai-b[https://github.com/mudler/LocalAI/pull/8961](https://redirect.github.com/mudler/LocalAI/pull/8961)l/8961
* docs: Document GPU auto-fit mode limitations and trade-offs (closes
#&#8203;8562) by
@&#8203;loc[https://github.com/mudler/LocalAI/pull/8954](https://redirect.github.com/mudler/LocalAI/pull/8954)AI/pull/8954
* chore(ui): improve errors and reporting during model installation by
@&#8203;mudl[https://github.com/mudler/LocalAI/pull/8979](https://redirect.github.com/mudler/LocalAI/pull/8979)l/8979
* chore(model gallery): 🤖 add 1 new models via gallery agent by
@&#8203;localai-b[https://github.com/mudler/LocalAI/pull/8980](https://redirect.github.com/mudler/LocalAI/pull/8980)l/8980
* fix(collections): start agent pool after http server by
@&#8203;mudl[https://github.com/mudler/LocalAI/pull/8981](https://redirect.github.com/mudler/LocalAI/pull/8981)l/8981
* chore(model-gallery): ⬆️ update checksum by
@&#8203;localai-b[https://github.com/mudler/LocalAI/pull/8985](https://redirect.github.com/mudler/LocalAI/pull/8985)l/8985
* chore: ⬆️ Update ggml-org/llama.cpp to
`57819b8d4b39d893408e51520dff3d47d1ebb757` by
@&#8203;localai-b[https://github.com/mudler/LocalAI/pull/8983](https://redirect.github.com/mudler/LocalAI/pull/8983)l/8983
* chore: ⬆️ Update ace-step/acestep.cpp to
`5aa065445541094cba934299cd498bbb9fa5c434` by
@&#8203;localai-b[https://github.com/mudler/LocalAI/pull/8984](https://redirect.github.com/mudler/LocalAI/pull/8984)l/8984
* fix(ui): Move routes to /app to avoid conflict with API endpoints by
@&#8203;richie[https://github.com/mudler/LocalAI/pull/8978](https://redirect.github.com/mudler/LocalAI/pull/8978)l/8978
* fix(conf): Don't overwrite env provided galleries with runtime conf by
@&#8203;richie[https://github.com/mudler/LocalAI/pull/8994](https://redirect.github.com/mudler/LocalAI/pull/8994)l/8994
* fix(flux.2-klein-9b): Use Qwen3-8b to avoid GGML assertion failure on
tensor mismatch by
@&#8203;richie[https://github.com/mudler/LocalAI/pull/8995](https://redirect.github.com/mudler/LocalAI/pull/8995)l/8995
* fix(acestep-cpp): resolve relative model paths in options by
@&#8203;localai-b[https://github.com/mudler/LocalAI/pull/8993](https://redirect.github.com/mudler/LocalAI/pull/8993)l/8993
* chore: ⬆️ Update ggml-org/llama.cpp to
`e30f1fdf74ea9238ff562901aa974c75aab6619b` by
@&#8203;localai-b[https://github.com/mudler/LocalAI/pull/8997](https://redirect.github.com/mudler/LocalAI/pull/8997)l/8997

</details>

#### New Contributors
* @&#8203;loryanstrant made their first
contributi[https://github.com/mudler/LocalAI/pull/8688](https://redirect.github.com/mudler/LocalAI/pull/8688)l/8688
* @&#8203;bittoby made their first
contributi[https://github.com/mudler/LocalAI/pull/8676](https://redirect.github.com/mudler/LocalAI/pull/8676)l/8676
* @&#8203;Weathercold made their first
contributi[https://github.com/mudler/LocalAI/pull/8842](https://redirect.github.com/mudler/LocalAI/pull/8842)l/8842
* @&#8203;attilagyorffy made their first
contributi[https://github.com/mudler/LocalAI/pull/8879](https://redirect.github.com/mudler/LocalAI/pull/8879)l/8879

**Full Changelog**:
<https://github.com/mudler/LocalAI/compare/v3.12.1...v4.0.0>

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Renovate
Bot](https://redirect.github.com/renovatebot/renovate).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4yOS4yIiwidXBkYXRlZEluVmVyIjoiNDMuMjkuMiIsInRhcmdldEJyYW5jaCI6Im1hc3RlciIsImxhYmVscyI6WyJhcHAvbG9jYWwtYWkiLCJyZW5vdmF0ZS9jb250YWluZXIiLCJ0eXBlL21ham9yIl19-->
2026-03-18 12:01:07 +01:00
TrueCharts Bot 33d470fec5 BREAKING CHANGE(github-action): Update dorny/paths-filter action v3 → v4 (#46170)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [dorny/paths-filter](https://redirect.github.com/dorny/paths-filter) |
action | major | `de90cc6` → `fbd0ab8` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the [Dependency
Dashboard](../issues/18710) for more information.

Add the preset `:preserveSemverRanges` to your config if you don't want
to pin your dependencies.

---

### Release Notes

<details>
<summary>dorny/paths-filter (dorny/paths-filter)</summary>

###
[`v4`](https://redirect.github.com/dorny/paths-filter/blob/HEAD/CHANGELOG.md#v400)

[Compare
Source](https://redirect.github.com/dorny/paths-filter/compare/v3...v4)

- [Update action runtime to
node24](https://redirect.github.com/dorny/paths-filter/pull/294)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Renovate
Bot](https://redirect.github.com/renovatebot/renovate).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4yOS4yIiwidXBkYXRlZEluVmVyIjoiNDMuMjkuMiIsInRhcmdldEJyYW5jaCI6Im1hc3RlciIsImxhYmVscyI6WyJhcHAvd29ya2Zsb3dzIiwicmVub3ZhdGUvY29udGFpbmVyIiwicmVub3ZhdGUvZ2l0aHViLWFjdGlvbiIsInJlbm92YXRlL2dpdGh1Yi1yZWxlYXNlIiwidHlwZS9tYWpvciJdfQ==-->
2026-03-18 12:00:53 +01:00
TrueCharts Bot 307b13233f BREAKING CHANGE(bookstack): Update image ghcr.io/linuxserver/bookstack 25.12.20251224 → 26.03.20260315 (#46169)
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
|
[ghcr.io/linuxserver/bookstack](https://redirect.github.com/linuxserver/docker-bookstack/packages)
([source](https://redirect.github.com/linuxserver/docker-bookstack)) |
major | `597cd4f` → `e85aa4a` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the [Dependency
Dashboard](../issues/18710) for more information.

Add the preset `:preserveSemverRanges` to your config if you don't want
to pin your dependencies.

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Renovate
Bot](https://redirect.github.com/renovatebot/renovate).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4yOS4yIiwidXBkYXRlZEluVmVyIjoiNDMuMjkuMiIsInRhcmdldEJyYW5jaCI6Im1hc3RlciIsImxhYmVscyI6WyJhcHAvYm9va3N0YWNrIiwicmVub3ZhdGUvY29udGFpbmVyIiwidHlwZS9tYWpvciJdfQ==-->
2026-03-18 11:57:52 +01:00
TrueCharts Bot 0e7fd336ba chore(odoo): update image public.ecr.aws/docker/library/odoo digest to 686c0a6 (#46166) 2026-03-18 10:37:30 +01:00
TrueCharts Bot f61e0fc632 fix(cannery): update image docker.io/shibaobun/cannery 0.9.18 → 0.9.20 (#46168) 2026-03-18 10:37:21 +01:00
TrueCharts Bot 0ebb578caf chore(webtop): update webtop (#46167) 2026-03-18 10:37:07 +01:00
TrueCharts Bot 5a2ce1c337 chore(deps): update oci.trueforge.org/containerforge/devcontainer:3.0.2 docker digest digest to 5b81076 (#46165)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[oci.trueforge.org/containerforge/devcontainer](https://ghcr.io/trueforge-org/devcontainer)
([source](https://trueforge.org)) | image | digest | `c090ebc` →
`5b81076` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the [Dependency
Dashboard](../issues/18710) for more information.

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Renovate
Bot](https://redirect.github.com/renovatebot/renovate).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4yOS4yIiwidXBkYXRlZEluVmVyIjoiNDMuMjkuMiIsInRhcmdldEJyYW5jaCI6Im1hc3RlciIsImxhYmVscyI6WyJhcHAvLmRldmNvbnRhaW5lciIsImF1dG9tZXJnZSIsInJlbm92YXRlL2NvbnRhaW5lciIsInR5cGUvZGlnZXN0Il19-->
2026-03-18 10:36:14 +01:00
TrueCharts Bot 93aca38d59 fix(kubernetes-reflector): update image ghcr.io/emberstack/kubernetes-reflector 10.0.20 → 10.0.21 (#46162) 2026-03-18 04:39:50 +01:00
TrueCharts Bot 29f02f9831 feat(dispatcharr): update image docker.io/dispatcharr/dispatcharr 0.20.2 → 0.21.1 (#46164)
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
|
[docker.io/dispatcharr/dispatcharr](https://redirect.github.com/Dispatcharr/Dispatcharr)
| minor | `116f7f4` → `3fe4da0` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the [Dependency
Dashboard](../issues/18710) for more information.

Add the preset `:preserveSemverRanges` to your config if you don't want
to pin your dependencies.

---

### Release Notes

<details>
<summary>Dispatcharr/Dispatcharr
(docker.io/dispatcharr/dispatcharr)</summary>

###
[`v0.21.1`](https://redirect.github.com/Dispatcharr/Dispatcharr/blob/HEAD/CHANGELOG.md#0211---2026-03-18)

[Compare
Source](https://redirect.github.com/Dispatcharr/Dispatcharr/compare/v0.21.0...v0.21.1)

##### Fixed

- Docker container initialization fixes for PUID/PGID handling — Thanks
[@&#8203;CodeBormen](https://redirect.github.com/CodeBormen):
- Backups failing on previous installations where `/data/backups`
already existed: `/data/backups` was missing from the `DATA_DIRS` list
in the init script, causing the PUID/PGID ownership migration to skip
the directory and leave it with incorrect permissions.
- Container startup failure on upgrade when data directories reside on
external mounts (NFS, SMB/CIFS, FUSE): `chown` failures under `set -e`
were crashing the container, breaking setups that worked fine on the
previous image. Failures are now collected per-directory and reported as
a consolidated warning; the container continues to start and Django
reports at runtime if it cannot write a specific directory.
- Upgrading users running as UID 102 (the internal PostgreSQL system
user) instead of the expected UID 1000: the PUID/PGID auto-detect
introduced in v0.21.0 read ownership from `/data/db`, which was UID 102
in pre-PUID images, causing Django, file creation, and comskip to all
run as the wrong user. PUID/PGID now default to 1000 (matching the
original Django UID) rather than auto-detecting from data directory
ownership.

###
[`v0.21.0`](https://redirect.github.com/Dispatcharr/Dispatcharr/blob/HEAD/CHANGELOG.md#0210---2026-03-17)

[Compare
Source](https://redirect.github.com/Dispatcharr/Dispatcharr/compare/v0.20.2...v0.21.0)

##### Security

- Updated frontend npm dependencies to resolve 1 high-severity
vulnerability:
- Updated `flatted` to 3.4.1, resolving **high** unbounded recursion DoS
in the `parse()` revive phase
([GHSA-25h7-pfq9-p65f](https://redirect.github.com/advisories/GHSA-25h7-pfq9-p65f))
- Updated `Django` to 6.0.3 and `django-celery-beat` to 2.9.0, resolving
new security vulnerabilities:
- [CVE-2026-25673](https://www.cve.org/CVERecord?id=CVE-2026-25673):
Potential denial-of-service vulnerability in URLField via Unicode
normalization on Windows (March 3, 2026)
- [CVE-2026-25674](https://www.cve.org/CVERecord?id=CVE-2026-25674):
Potential incorrect permissions on newly created file system objects
(March 3, 2026)

##### Added

- Configurable sidebar navigation ordering and visibility — Thanks
[@&#8203;jcasimir](https://redirect.github.com/jcasimir)
- Sidebar nav items can be reordered via drag-and-drop in Settings → UI
Settings → Navigation.
- Individual nav items can be hidden from the sidebar using the eye
toggle. Hiding an item preserves its position in the order.
- A "Reset to Default" button restores the role-appropriate default
order and clears all hidden items.
- Order and visibility are saved per-user with optimistic updates and
automatic rollback on failure. Changes appear in the sidebar immediately
without a page reload.
- Admin users see a grouped navigation: flat items (`Channels`, `VODs`,
`M3U & EPG Manager`, `TV Guide`, `DVR`, `Stats`, `Plugins`) plus
collapsible `Integrations` (Connections, Logs) and `System` (Users, Logo
Manager, Settings) groups. The `System` group cannot be hidden.
- Non-admin users see `Channels`, `TV Guide`, and `Settings`, with the
`Settings` item not hideable.
- Unit tests for `NotificationCenter`, `NotificationCenterUtils`, and
`M3URefreshNotification` components, and for settings form components
`DvrSettingsForm`, `NetworkAccessForm`, `ProxySettingsForm`,
`StreamSettingsForm`, `SystemSettingsForm`, `UiSettingsForm`. — Thanks
[@&#8203;nick4810](https://redirect.github.com/nick4810)
- Unit tests for DVR port resolution (`build_dvr_candidates`) and
selective Redis flush behavior in modular mode. — Thanks
[@&#8203;CodeBormen](https://redirect.github.com/CodeBormen)
- Floating video player improvements
- **Title display**: The channel, stream, or VOD title is now shown in
the player header bar. Title is passed through from all preview entry
points: channel table, stream table, stream connection card, guide, DVR,
recording cards, recording details modal, VOD modal, and series modal.
- **Persistent state**: Size, position, volume level, and mute state are
now saved across sessions using a single `dispatcharr-player-prefs`
localStorage key. Size and position are restored on next open (clamped
to the current viewport); volume and mute are restored when the player
initialises.
- New Client Buffer proxy setting: new clients joining an active channel
are now positioned a configurable number of seconds behind live rather
than a fixed chunk count. The start position is determined by wall-clock
chunk receive time (stored as a Redis sorted set alongside the buffer),
so the buffer depth is consistent in seconds regardless of stream
bitrate. Setting the value to `0` starts clients at live with no buffer.
Defaults to 5 seconds. Existing chunk-count gating for the first client
connecting to a channel is unchanged. The setting is exposed in Settings
→ Proxy as "New Client Buffer (seconds)".
- Channel table filter for channels that have stale streams: A new "Has
Stale Streams" filter option in the channel table header menu highlights
and filters channels containing at least one stale stream. Channels with
stale streams are visually distinguished with an orange tint. The filter
is mutually exclusive with "Only Empty Channels". - Thanks
[@&#8203;JCBird1012](https://redirect.github.com/JCBird1012)
- "Next Highest Channel" numbering mode when creating channels from
streams: A new `Next Highest` option is available alongside `Provider`,
`Auto`, and `Custom` when creating channels from the Streams table.
Selecting it assigns channel numbers starting one above the current
highest channel number; the next available number is fetched from the
backend at selection time. (Closes
[#&#8203;1000](https://redirect.github.com/Dispatcharr/Dispatcharr/issues/1000))
— Thanks [@&#8203;JCBird1012](https://redirect.github.com/JCBird1012)
- TV Guide program cards now display richer metadata — Thanks
[@&#8203;CodeBormen](https://redirect.github.com/CodeBormen)
- **Season/episode badges** (e.g. `S12E06`) extracted from EPG
`<episode-num>` elements, `onscreen` episode strings (e.g. `S12 E6`,
`S3E21`, `S8 E8 P2/2`), and as a last-resort fallback from description
text patterns at parse time (3-tier pipeline). (Closes
[#&#8203;1065](https://redirect.github.com/Dispatcharr/Dispatcharr/issues/1065))
- **Episode subtitle** shown below the program title on guide cards;
falls back to the short description when no subtitle is available.
- **Status badges**: `LIVE`, `NEW`, `PREMIERE`, and `FINALE` surfaced
from EPG flags on both compact cards and the detail modal.
- **Program detail modal**: Clicking any guide program opens a modal
with full program details — poster/icon image, season/episode, subtitle,
duration, categories, cast/director/writer credits, content rating, star
ratings, production date, original air date, video quality, and external
links to IMDb and TMDB where available. Detail data is fetched from a
new `GET /api/epg/programs/{id}/` endpoint backed by the new
`ProgramDetailSerializer`. Dummy/placeholder programs skip the fetch.
- **Real-time progress bars**: Currently-airing programs show a green
progress bar on their guide card that updates every second via direct
DOM manipulation (no React re-renders).
- **Channel name tooltip**: Hovering the channel logo column shows the
channel name.
- Sort icons added to the Group and EPG column headers in the Channels
table, and to the Group column header in the Streams table. Clicking a
sort icon cycles through ascending/descending/unsorted states. EPG
sorting required a backend change (`epg_data__name` added to
`ChannelViewSet.ordering_fields`); Group sorting was already supported
by the API in both tables. (Closes
[#&#8203;854](https://redirect.github.com/Dispatcharr/Dispatcharr/issues/854))
— Thanks [@&#8203;CodeBormen](https://redirect.github.com/CodeBormen)
- DVR enhancements — Thanks
[@&#8203;CodeBormen](https://redirect.github.com/CodeBormen)
- **Stop Recording**: A new Stop button (distinct from Cancel) cleanly
ends an in-progress recording early and keeps the partial file available
for playback. The API returns immediately; stream teardown and task
revocation happen in a background thread to prevent 504 timeouts. When
multiple recordings run simultaneously, stopping one only terminates
that recording's proxy client by ID, leaving all others unaffected.
(Closes
[#&#8203;454](https://redirect.github.com/Dispatcharr/Dispatcharr/issues/454))
- **Extend Recording**: In-progress recordings can be extended by 15,
30, or 60 minutes without interrupting the stream.
- **Inline metadata editing**: Title and description can now be edited
directly in the recording details modal.
- **Refresh artwork button**: Manually re-run poster resolution on
demand from the recording card.
- **Multi-source poster resolution**: Added pipeline querying EPG, VOD,
TMDB, OMDb, TVMaze, and iTunes for richer recording artwork.
- **Series rules for currently-airing episodes**: Series rules now
capture currently-airing episodes in addition to future scheduled ones.
(Closes
[#&#8203;473](https://redirect.github.com/Dispatcharr/Dispatcharr/issues/473))
- **Search and filter controls**: Added search and filter controls to
the recordings list.
- **Stream generator throttling**: Cached the `ProxyServer` singleton
reference per client and throttled Redis resource checks (1 s) and
non-owner health checks (2 s), eliminating 3+ Redis round-trips per
stream loop iteration.
- **Automatic crash recovery on worker restart**: A `worker_ready`
Celery signal now fires `recover_recordings_on_startup` automatically
when the worker starts, so recordings stuck in "recording" status are
recovered without manual intervention.
- Account expiration tracking and notifications for M3U profiles
- A new `exp_date` field on `M3UAccountProfile` stores the account
expiration date as a proper `DateTimeField`. For Xtream Codes accounts
the field is auto-synced from `custom_properties.user_info.exp_date` on
every save (supports both Unix timestamps and ISO date strings). For
non-XC M3U accounts the date can be entered manually via the account or
profile form.
- The M3U accounts table now shows an **Expiration** column displaying
the earliest expiration date across all profiles for that account
(color-coded: red = expired, orange = expiring soon, green = OK).
Hovering the cell shows a tooltip with per-profile expiration details
including inactive-profile labels.
- A daily Celery Beat task (`check_xc_account_expirations`) checks all
active profiles with an expiration date and manages system
notifications: a normal-priority warning is raised for profiles expiring
within 7 days; a high-priority alert is raised once the profile has
already expired. Warning and expired notifications use separate keys so
dismissing the 7-day warning does not suppress the expiration alert.
- Notifications are also updated immediately when a profile is saved: if
the expiration date is cleared or pushed beyond the 7-day window, any
existing warning/expired notifications are deleted; if the date falls
within the window or is already past, the matching notification is
updated in place.
- Non-XC accounts expose a `DateTimePicker` on both the M3U account form
and the profile form.

##### Changed

- Dependency updates:
- `Django` 5.2.11 → 6.0.3 (security patch + major version upgrade; see
Security section)
- `django-celery-beat` ≥2.8.1 → ≥2.9.0 (adds explicit Django 6.0
support)
- When selecting an EPG source for a channel, the EPG source dropdown
now only lists enabled (active) EPGs, sorted alphabetically.
- Channels page default splitter ratio changed from 50/50 to 60/40
(channels/streams) so all channel action buttons are visible without
scrolling on 1080p displays.
- Frontend component refactoring and cleanup — Thanks
[@&#8203;nick4810](https://redirect.github.com/nick4810)
- `FloatingVideo`, `SeriesModal`, `VODModal`, `SystemEvents`,
`M3URefreshNotification`, and `NotificationCenter` significantly reduced
in size by separating business logic into dedicated utility modules
under `utils/components/` (`FloatingVideoUtils.js`,
`SeriesModalUtils.js`, `VODModalUtils.js`,
`NotificationCenterUtils.js`).
- `FloatingVideo` resize handle elements extracted into a standalone
`ResizeHandles` sub-component.
- `YouTubeTrailerModal` extracted into a standalone component
(`components/modals/YouTubeTrailerModal.jsx`).
- `NotificationCenter` and `Sidebar` updated from Mantine dot-notation
sub-components (`Popover.Target`, `Popover.Dropdown`,
`ScrollArea.Autosize`, `AppShell.Navbar`) to Mantine v7 named imports
(`PopoverTarget`, `PopoverDropdown`, `ScrollAreaAutosize`,
`AppShellNavbar`).
- `M3URefreshNotification` now uses the centralized `showNotification()`
utility (from `notificationUtils.js`) instead of calling
`notifications.show()` directly, bringing it in line with the rest of
the app. State updates also converted to functional updater form (`prev
=> ...`) to eliminate potential stale-closure bugs.
- `SystemEvents` now imports `format` from `dateTimeUtils` for
consistent date/time formatting.
- Removed a dead `onLogout` handler in `Sidebar` that called `logout()`
and `window.location.reload()` but was never wired to any UI element.
- EPG output when no `days` parameter is specified now excludes
already-ended programs instead of returning all historical data.

##### Fixed

- Single-stream channel creation modal not opening correctly when
clicking the channel-creation button on an individual stream row in the
Streams table. — Thanks
[@&#8203;JCBird1012](https://redirect.github.com/JCBird1012)
- DVR series rule creation failing with a 500 error when the stored
`series_rules` data contained corrupted (non-dict) entries. Added type
guards on the getter, setter, and generic settings serializer to filter
invalid entries on read and write. Hardened the EPG ignore list getters
(`prefixes`, `suffixes`, `custom`) with the same pattern. Frontend
settings parse and save now validate `series_rules` with
`Array.isArray()`, matching the existing EPG field pattern, preventing
corrupted data from being round-tripped back to the database. (Fixes
[#&#8203;1059](https://redirect.github.com/Dispatcharr/Dispatcharr/issues/1059))
— Thanks [@&#8203;CodeBormen](https://redirect.github.com/CodeBormen)
- TS proxy clients stuck indefinitely in keepalive mode when a stream
fails and never recovers (Fixes
[#&#8203;1102](https://redirect.github.com/Dispatcharr/Dispatcharr/issues/1102),
[#&#8203;1103](https://redirect.github.com/Dispatcharr/Dispatcharr/issues/1103))
— Thanks
[@&#8203;cmcpherson274](https://redirect.github.com/cmcpherson274) &
[@&#8203;CodeBormen](https://redirect.github.com/CodeBormen)
- **Keepalive duration cap**: Non-owner worker clients sending keepalive
packets to hold a connection open during failover can now be held at
most `MAX_KEEPALIVE_DURATION` seconds (default 300 s). If no real stream
data has been received within that window, the client is disconnected
with a warning log. The timer resets each time real data resumes, so
independent stalls do not accumulate.
- **`last_active` tracking**: `last_active` is now updated on every
keepalive packet and on every real data chunk, so clients actively
waiting during a failover are not incorrectly evicted as ghost clients
by the heartbeat thread. The heartbeat thread now only refreshes the
Redis TTL rather than updating `last_active`, ensuring the
ghost-detection check reflects true client activity rather than
heartbeat activity.
- **Buffer reset on stream transition**: A new `reset_buffer_position()`
method on `StreamBuffer` clears the in-memory write buffer and
partial-packet accumulator when switching between FFmpeg processes.
Without this, a partial 188-byte TS packet from the dying FFmpeg process
was being prepended to the first bytes from the new FFmpeg process,
producing a corrupted TS packet boundary that broke audio decoder sync
on the client side. Redis-stored chunks already consumed by clients are
unaffected.
- **`add_chunk()` locking hardened**: The lock scope in `add_chunk()`
was expanded to cover the entire partial-packet merge and write-buffer
accumulation phase, preventing a race condition between `add_chunk()`
and the new `reset_buffer_position()` call.
- uWSGI segfaults caused by mixing threading and gevent concurrency
models. The dev and debug uWSGI configs had `threads` and
`enable-threads = true` set alongside gevent, which triggers
segmentation faults particularly on ARM64/Python 3.13. Removed those
options to match the already-correct production config. — Thanks
[@&#8203;jcasimir](https://redirect.github.com/jcasimir)
- `Stream.last_seen` and `ChannelGroupM3UAccount.last_seen` model
defaults now use `django.utils.timezone.now` instead of
`datetime.datetime.now`, eliminating spurious `RuntimeWarning:
DateTimeField received a naive datetime` warnings emitted during test
database creation and on new record creation when `USE_TZ=True`.
- EPG programme parsing crash when an XMLTV source contains programme
titles exceeding 255 characters. Previously, a single oversized title
would cause the entire `bulk_create` batch to fail with a database
truncation error, silently dropping all programmes in that batch. Titles
are now truncated to 255 characters before being saved. (Fixes
[#&#8203;1039](https://redirect.github.com/Dispatcharr/Dispatcharr/issues/1039))
- Container startup failure when `PUID`/`PGID` is set, caused by
`/data/db` ownership conflicts between the `postgres` system user (UID
102) and the configured PUID/PGID. PostgreSQL now runs as the PUID/PGID
user in AIO mode, eliminating all `chown`-to-UID-102 operations and
unifying `/data` ownership. (Fixes
[#&#8203;1078](https://redirect.github.com/Dispatcharr/Dispatcharr/issues/1078))
— Thanks [@&#8203;CodeBormen](https://redirect.github.com/CodeBormen)
- Existing installations where PUID/PGID differs from the current
`/data/db` owner are migrated automatically on first startup; a sentinel
file prevents redundant recursive `chown` on subsequent boots.
- PUID/PGID auto-detected from existing data ownership when not
explicitly set, avoiding cross-UID `chown` failures on restricted
filesystems (NFS `root_squash`, CIFS).
- PUID/PGID validated as positive non-zero integers before any
user/group operations.
- UID collisions with the `postgres` system user (e.g. PUID=102) are now
handled gracefully.
- Ensured proper variable quoting in the /docker/ directory to guard
from inappropriate input
- Floating video player bug fixes
- **Resize stuck after releasing mouse outside window**: The `mouseup`
event is not delivered when the pointer leaves the viewport, leaving the
`mousemove` listener active indefinitely. Fixed by checking
`event.buttons === 0` at the top of `handleResizeMove`; when no button
is held the resize session is torn down immediately.
- **Drag stuck after releasing mouse outside window**: Same root cause
as the resize bug. Fixed by detecting `event.buttons === 0` in the
`onDrag` handler and dispatching a synthetic `mouseup` event so
react-draggable cleanly ends the drag session.
- **Player draggable off screen**: The player could be dragged off any
edge, making the header (and drag handle) unreachable. The player is now
fully bounded: left and top edges are clamped to `x ≥ 0` / `y ≥ 0` so
the header is always reachable, and right/bottom edges are clamped to
the viewport. Size and position are also re-clamped automatically when
the browser window is resized, with proportional scale-down if the saved
size exceeds the new viewport.
- Double error notification when saving user preferences: `API.updateMe`
was catching errors internally and displaying a notification before
re-throwing, causing callers to display a second notification for the
same failure.
- Navigation preference saves from concurrent sessions could overwrite
each other due to a double-merge race: the frontend was pre-merging
`custom_properties` before sending, then the backend merged again
against the DB value, causing the second session's write to silently
drop keys set by the first. The frontend now sends only the delta; the
backend merges authoritatively against the stored value.
- Stale nav item IDs (e.g. from a previous nav structure) are now
scrubbed from `navOrder` and `hiddenNav` on the next preference save,
preventing unbounded growth of the `custom_properties` JSON field.
- Version update notification persisting after upgrading to the notified
version (e.g. "v0.20.2 available" shown while already running v0.20.2).
Root cause: `check_for_version_update.delay()` was called from
`AppConfig.ready()`, which fires inside Celery prefork pool subprocesses
before the broker connection is established, causing the dispatch to
fail silently with no log output. Fixed by moving the startup dispatch
to the `worker_ready` signal in `celery.py` (consistent with the
existing `recover_recordings_on_startup` pattern), and deleting the
stale `version-{current_version}` notification at the top of the
production check path so it is cleared even when GitHub is unreachable.
A WebSocket update is sent immediately on deletion so the frontend badge
clears without waiting for the API response.
- VOD orphan cleanup crashing with a `ForeignKeyViolation`
(`IntegrityError`) when a concurrent refresh task created a new
`M3UMovieRelation` or `M3USeriesRelation` for a movie/series between the
orphan-detection query and the `DELETE` SQL. Both
`orphaned_movies.delete()` and `orphaned_series.delete()` are now
wrapped in `try/except IntegrityError`; affected records are skipped
with a warning and will be cleaned up on the next scheduled run.
- XC stream refresh crashing with a `null value in column "name"`
database error when a provider returns streams with a null or empty
name. Affected streams are now assigned a generated fallback name in the
format `<account name> - <stream_id>` so the refresh completes
successfully and the stream remains accessible. A warning is logged for
each affected stream.
- 504 Gateway Timeout when saving M3U group settings on slower hardware
(e.g. Synology NAS). Replaced per-row `update_or_create()` loops with
`bulk_create(update_conflicts=True)` wrapped in `transaction.atomic()`
for both `ChannelGroupM3UAccount` and `M3UVODCategoryRelation`, reducing
hundreds of individual DB round-trips to a single query per model.
(Fixes
[#&#8203;745](https://redirect.github.com/Dispatcharr/Dispatcharr/issues/745))
— Thanks [@&#8203;nickgerrer](https://redirect.github.com/nickgerrer)
- Improved frontend table stability during M3U imports: Fixed incorrect
default `state` initialization (`[]` → `{}`) in `CustomTable` to match
TanStack Table v8's expected state object shape. Added
`autoResetPageIndex: false` and `autoResetExpanded: false` to prevent
TanStack Table from issuing internal state resets on data updates.
Memoized `processedData` in `M3UsTable` to avoid redundant sort/filter
recomputation on re-renders. - Thanks
[@&#8203;marcinolek](https://redirect.github.com/marcinolek)
- `debian_install.sh` hardened for non-UTF8 environments (common in
minimal LXC containers) - Thanks
[@&#8203;marcinolek](https://redirect.github.com/marcinolek)
- Added `setup_locales` step that installs the `locales` package,
enables `en_US.UTF-8`, regenerates locales, and exports `LANG`/`LC_ALL`
before any other work runs, preventing PostgreSQL from defaulting to
`SQL_ASCII` encoding.
- PostgreSQL database creation now explicitly passes `-E UTF8` to
`createdb`.
- `PATH` in the Celery worker, Celery Beat, and Daphne systemd service
files extended to include
`/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin`, fixing failures
where background tasks could not locate `ffmpeg` or `ffprobe`.
- `is_adult` field parsing now guards against invalid values (e.g. the
string `"None"`) that providers may send instead of a valid integer,
preventing a `ValueError` crash during M3U/XC stream refresh. A new
`parse_is_adult()` helper wraps the cast in a `try/except`, returning
`False` for anything that cannot be interpreted as `1`. (Fixes
[#&#8203;1061](https://redirect.github.com/Dispatcharr/Dispatcharr/issues/1061))
— Thanks [@&#8203;JCBird1012](https://redirect.github.com/JCBird1012)
- M3U EXTINF attribute parsing for values containing `=` or `==` (e.g.
base64-padded `tvg-logo` URLs, catchup tokens with query strings). The
previous regex used `[^\s]+` for the key pattern, allowing `=` signs
inside a quoted value to be greedily absorbed into the next attribute's
key name, causing that attribute and all subsequent ones on the line to
be silently dropped. Changed to `[^\s=]+` so the key match always stops
at the first `=`. (Fixes
[#&#8203;1055](https://redirect.github.com/Dispatcharr/Dispatcharr/issues/1055))
- Thanks [@&#8203;JCBird1012](https://redirect.github.com/JCBird1012)
- Celery worker memory leak during M3U/XC refresh causing 20–80 MB
growth per cycle with no reclamation (Fixes
[#&#8203;1012](https://redirect.github.com/Dispatcharr/Dispatcharr/issues/1012),
[#&#8203;1053](https://redirect.github.com/Dispatcharr/Dispatcharr/issues/1053))
- Thanks [@&#8203;CodeBormen](https://redirect.github.com/CodeBormen)
- Restructured `refresh_single_m3u_account()` with a `try/finally` that
guarantees `del` of large data structures runs before Celery's
`gc.collect()`, and lock release on all exit paths (success, exception,
early return)
- Re-enabled batch data cleanup in `process_m3u_batch_direct()` (was
commented out)
- Added `CELERY_WORKER_MAX_MEMORY_PER_CHILD = 512 MB` as a safety net
against pymalloc arena fragmentation
- EPG output was filtering programs using `start_time__gte=now` when the
`days` parameter was specified, which caused currently-airing programs
(started before the request time but not yet ended) to be omitted from
the XML output. This produced a gap in clients' guides immediately after
an EPG refresh, lasting until the next program started. Fixed by
changing the filter to `end_time__gte=now` so any program that has not
yet finished is included.
- TS proxy connection slot leaks and TOCTOU races in stream
initialization (Fixes
[#&#8203;947](https://redirect.github.com/Dispatcharr/Dispatcharr/issues/947))
- Thanks [@&#8203;CodeBormen](https://redirect.github.com/CodeBormen)
- **TOCTOU race in slot reservation**: `get_stream()` previously used a
`GET`→check→`INCR` sequence, allowing concurrent requests to both read
the same count below the limit and both reserve a slot, silently
exceeding `max_streams`. Replaced with an atomic `INCR`-first pattern:
increment unconditionally, check the result, roll back with `DECR` if
over capacity. — Thanks
[@&#8203;patchy8736](https://redirect.github.com/patchy8736)
- **Leak on URL generation failure**: `generate_stream_url()` called
`get_stream()` (which `INCR`s the counter) but had no cleanup path if
subsequent DB lookups or URL construction failed. The
post-`get_stream()` block is now wrapped in a `try/except` that calls
`release_stream()` on any error.
- **Leak on retry-loop timeout**: the retry loop in `stream_ts()` called
a bare `get_stream()` on the first failure to classify the error reason.
If a slot was available, this `INCR`'d the counter and set Redis keys
that were never released when the loop timed out. A `release_stream()`
call is now issued before returning 503.
- **Leak on `initialize_channel()` failure**: when
`initialize_channel()` returned `False`, the connection slot allocated
by the preceding `get_stream()` was never released. A
`connection_allocated` flag now tracks whether this request performed
the `INCR` (fresh initialization vs. joining an existing channel), and
`release_stream()` is called guarded by that flag to prevent incorrect
decrements when attaching to an already-running channel.
- **Safety net for unexpected exceptions**: the outer `except` in
`stream_ts()` now checks `connection_allocated` and calls
`release_stream()` as a last-resort cleanup for any unhandled exception
that escapes before the channel is handed off to the stream lifecycle.
- **`release_stream()` now returns `bool`** and adds a metadata-hash
fallback: if the primary `channel_stream` / `stream_profile` Redis keys
have already been cleaned up by the proxy, it recovers `stream_id` and
`profile_id` from the channel's metadata hash and clears those fields
atomically to prevent duplicate `DECR`s on repeated calls. — Thanks
[@&#8203;patchy8736](https://redirect.github.com/patchy8736)
- **`update_stream_profile()` uses a Redis pipeline** for the
old-profile DECR + key update + new-profile INCR sequence, preventing
counter drift if the process crashes between operations.
- **`stream_generator._cleanup()`** now falls back to
`Stream.objects.get()` when the channel UUID resolves to a preview flow
rather than a normal channel, rather than silently skipping the slot
release.
- **VOD `cleanup_persistent_connection()`** fallback DECR is now
conditional: it only decrements the profile counter when the connection
tracking key had already expired by TTL (i.e., `remove_connection()`
would have skipped the DECR), preventing double-decrements when the key
is still present.
- Ghost clients and channels stuck in `INITIALIZING` state in the TS
proxy (Fixes
[#&#8203;695](https://redirect.github.com/Dispatcharr/Dispatcharr/issues/695),
[#&#8203;669](https://redirect.github.com/Dispatcharr/Dispatcharr/issues/669))
— Thanks [@&#8203;CodeBormen](https://redirect.github.com/CodeBormen)
- **`INITIALIZING` added to cleanup grace period monitoring**: channels
stuck in `INITIALIZING` are now surfaced by the cleanup task and torn
down, preventing indefinite hangs when stream startup fails.
- **Orphaned channel cleanup validates client SET entries**: the cleanup
task now cross-checks client SET members against actual metadata hashes;
ghost SET entries are removed and the channel is torn down cleanly when
no real clients remain.
- **Stats page self-heals**: ghost client SET entries are detected and
removed when reading channel stats, preventing stale entries from
inflating the active-client count.
- **`remove_ghost_clients()` extracted to `ClientManager`**:
ghost-detection logic is now a single authoritative helper, callable
with an optional pre-fetched `client_ids` set to eliminate a redundant
Redis `SMEMBERS` round-trip when the caller already holds the set.
- **Ownership TTL fallback**: the error-state writer now triggers via
ownership check *or* state guard fallback, so a channel stuck in a
pre-active state is correctly marked `ERROR` even when the ownership TTL
expired during retries.
- **Missing `SOURCE_BITRATE` / `FFMPEG_BITRATE` metadata constants**
added to `ChannelMetadataField`, preventing `AttributeError` on detailed
channel stats reads.
- TS proxy client stream lag recovery now only bumps clients forward
when their next required chunk has genuinely expired from Redis (TTL),
rather than unconditionally jumping if they fell more than 50 chunks
behind. Clients are repositioned to the oldest available chunk (minimum
data loss) using an atomic server-side Lua binary search, falling back
to near the buffer head if nothing is available.
- TS proxy streams dying after 30–200 seconds in multi-worker
uWSGI/Celery deployments, caused by three interrelated bugs. (Fixes
[#&#8203;992](https://redirect.github.com/Dispatcharr/Dispatcharr/issues/992),
[#&#8203;980](https://redirect.github.com/Dispatcharr/Dispatcharr/issues/980))
- Thanks [@&#8203;PFalko](https://redirect.github.com/PFalko)
- **Double ProxyServer instantiation**: `ProxyConfig.ready()` called
`TSProxyServer()` directly while `TSProxyConfig.ready()` also called
`TSProxyServer.get_instance()`, creating two instances per worker — each
with its own cleanup thread. The orphaned thread could not extend
ownership because it had no entries in `stream_managers`. Fixed by using
`TSProxyServer.get_instance()` in `ProxyConfig.ready()`.
- **`flushdb()` on every Redis client init**: `RedisClient.get_client()`
called `client.flushdb()` whenever `_client` was `None`. Celery
autoscale (`--autoscale=6,1`) spawning new workers mid-stream triggered
this path, nuking all Redis keys including active ownership keys, client
records, and channel metadata. Removed the `flushdb()` call entirely.
- **No recovery from expired ownership**: `get_channel_owner()` called
`redis.get()` twice inside a lambda (TOCTOU race — key could expire
between calls); `extend_ownership()` silently returned `False` on expiry
with no re-acquisition; and the non-owner cleanup path unconditionally
killed streams even when the worker held the `stream_manager`. Fixed
with a single `GET` in `get_channel_owner()`, re-acquisition via atomic
`SET NX EX` in `extend_ownership()`, and a re-acquisition attempt with
client-aware cleanup deferral in the cleanup thread.
- `get_instance()` deadlock: if `ProxyServer()` raised an exception
during singleton construction, `_instance` was left permanently as the
`_INITIALIZING` sentinel, causing all subsequent `get_instance()`
callers to spin in an infinite `gevent.sleep()` loop. Construction is
now wrapped in `try/except`; on failure `_instance` resets to `None` so
the next call can retry.
- Non-atomic ownership acquisition in `try_acquire_ownership()`:
replaced the separate `setnx()` + `expire()` calls with a single atomic
`SET NX EX`, eliminating the race window where a process crash between
the two calls could leave an ownership key with no TTL (permanent
ownership lock).
- DVR bug fixes — Thanks
[@&#8203;CodeBormen](https://redirect.github.com/CodeBormen)
- **Duplicate recording execution**:
`run_recording.apply_async(countdown=...)` exceeded Redis' default
`visibility_timeout` (3600 s) for recordings scheduled more than one
hour out, causing Redis to redeliver the task to multiple workers
simultaneously and producing corrupted output files. Replaced
`apply_async` with `ClockedSchedule` + `PeriodicTask` for
database-backed one-shot scheduling that survives restarts and upgrades
without the redelivery race. `run_recording` also now exits immediately
if the recording is already in progress, completed, or stopped.
`revoke_task()` cleans up both the `PeriodicTask` and its orphaned
`ClockedSchedule` on execution. (Fixes
[#&#8203;940](https://redirect.github.com/Dispatcharr/Dispatcharr/issues/940),
[#&#8203;641](https://redirect.github.com/Dispatcharr/Dispatcharr/issues/641))
- **Stream reconnection resilience**: Recordings now survive transient
network drops with automatic reconnection retrying up to 5 times and
appending to the existing file. DB operations use exponential-backoff
retry for transient database errors throughout the recording lifecycle.
- **Crash recovery pipeline**: On worker restart, recordings stuck in
"recording" status have their segments concatenated and remuxed. Remux
sanity checks reject MKV output that is less than 50% the size of a
previous MKV (duplicate-task overwrite) or less than 10% of the source
TS (corrupt first attempt); the source `.ts` is preserved for manual
recovery on all failure paths. (Fixes
[#&#8203;619](https://redirect.github.com/Dispatcharr/Dispatcharr/issues/619),
[#&#8203;624](https://redirect.github.com/Dispatcharr/Dispatcharr/issues/624))
- **Output file collision**: Fixed collision when multiple tasks
targeted the same filename.
- **WebSocket deadlock**: `send_websocket_update()` was deadlocking the
gevent event loop, causing one recording's WebSocket events to block all
other simultaneous recordings.
- **DVR client isolation**: Stop and Cancel operations now identify the
target client by recording ID (via `User-Agent:
Dispatcharr-DVR/recording-{id}`), ensuring only the correct proxy client
is torn down and never affecting other recordings on the same channel.
- **Accidental stream termination on delete**: `destroy()` now only
calls `_stop_dvr_clients()` for in-progress recordings, preventing
stream termination when deleting a completed recording.
- **Recording card logos**: Logos were not displaying due to a channel
summary API shape mismatch.
- **Logo fetch negative cache**: Added negative cache for failed remote
logo fetches so dead CDNs no longer block Daphne workers on repeated
requests.
- **Artwork fuzzy-match sanitisation**: Poster artwork fuzzy-matching
against external APIs (TMDB, OMDb, etc.) was producing incorrect results
for channels with names like "USA A\&E SD\*"; channel-name strings are
now sanitised before querying external sources.
- **Series modal "No upcoming episodes"**: Fixed due to a missing
`_group_count` merge and an incorrect time filter.
- **Series rule cleanup**: Deleting a series rule left orphaned
recordings and stale Guide indicators; rule deletion now cleans up all
associated recordings. Orphaned recordings with no parent rule are also
cleaned up automatically. (Fixes
[#&#8203;1041](https://redirect.github.com/Dispatcharr/Dispatcharr/issues/1041))
- **Series rule timezone calculation**: Recurring rules silently dropped
scheduled recordings for users in UTC-negative timezones after 4 pm
local time. (Fixes
[#&#8203;1042](https://redirect.github.com/Dispatcharr/Dispatcharr/issues/1042))
- **Recording modal TDZ crash**: Modal crashed on load in production
bundles due to a Temporal Dead Zone error — editing state was referenced
before its declaration in the minified bundle.
- **Description textarea focus loss**: The description textarea lost
focus immediately when opened because the inline editing component was
remounting on every render.
- **WebSocket-driven refresh**: Replaced all manual `fetchRecordings()`
polling calls with debounced WebSocket-driven refresh so the recordings
list stays up to date without redundant API requests.
- **comskip exit code handling**: comskip treated exit code 1 ("no
commercials found") as a fatal error, causing post-processing to fail on
clean recordings. Exit code 1 is now recognised as a successful no-op.
- **Differentiated WebSocket notification events**: `recording_stopped`,
`recording_cancelled` (in-progress cancel), and `recording_deleted` with
a `was_in_progress` flag now allow the frontend to display distinct
"Recording stopped", "Recording cancelled", and "Recording deleted"
toasts.
- **Duplicate series rule evaluation race**: Creating a series rule
fired `evaluate_series_rules.delay()` in the API view while the frontend
immediately called the synchronous evaluate endpoint, racing to create
duplicate recordings for the same program. Removed the redundant async
call from the API; the frontend's explicit evaluate call is now the sole
evaluation path.
- **Recording card S/E badge overlap**: Season/episode badges were
overlapping and metadata was hidden on the recording card.
- **Orphaned recording fallback in series modal**: When a series rule no
longer exists, the recurring rule modal now shows a "Delete Recording"
button for the orphaned recording instead of failing silently.
- Modular mode deployment hardening — Thanks
[@&#8203;CodeBormen](https://redirect.github.com/CodeBormen)
- **Postgres version check with restricted DB users**: The version check
was connecting to the hardcoded `postgres` database, which fails when
the configured user lacks access to it. Changed to use `$POSTGRES_DB` so
the check works with least-privilege database users. (Fixes
[#&#8203;1045](https://redirect.github.com/Dispatcharr/Dispatcharr/issues/1045))
- **DVR recording broken in modular mode**: Internal TS stream URL
candidates hardcoded port `9191`, so recordings failed when
`DISPATCHARR_PORT` was set to any other value. URL construction now
reads `DISPATCHARR_PORT` from the environment via the new
`build_dvr_candidates()` helper. `DISPATCHARR_PORT` is also now
explicitly passed to the Celery container in `docker-compose.yml`.
- **Selective Redis flush in modular mode**: `wait_for_redis.py` now
performs a targeted flush in modular mode — clearing stale stream locks,
proxy metadata, and server-state keys — while preserving Celery broker
and result-backend keys. Previously either a full `flushdb()` (which
wiped Celery queues) or no flush at all was performed.
- **Redis wait stripping environment variables**: The modular-mode Redis
readiness check ran as a uWSGI `exec-pre` hook, which executes under `su
-` and strips Docker environment variables, making `DISPATCHARR_ENV` and
`REDIS_HOST` unavailable. Moved to the container entrypoint so all env
vars are present.
- **Stale environment variables after container restart**:
`/etc/profile.d/dispatcharr.sh` was only written on the first container
run; restarts with changed env vars (e.g. a rotated `POSTGRES_PASSWORD`)
retained stale values. The file is now truncated and rewritten on every
startup. `/etc/environment` entries are likewise updated rather than
skipped when a key already exists. All exported values are now quoted to
prevent breakage from special characters.
- **Celery entrypoint startup timeouts**: The JWT key wait and migration
wait loops had no timeout, leaving the Celery worker hanging
indefinitely if the web container was stuck. Each loop now times out
(120 s for JWT, 300 s for migrations) and exits with a clear diagnostic
message. The migration readiness check is also replaced from a fragile
`showmigrations | grep` pattern to `migrate --check`, which exits
cleanly on both unapplied migrations and connection errors.
- **Service startup ordering**: `depends_on` entries for `db` and
`redis` in `docker-compose.yml` upgraded from plain name-link ordering
to `condition: service_healthy`, ensuring containers wait for actual
readiness signals before starting.
- **`host.docker.internal` resolution on Linux**: Added `extra_hosts:
host.docker.internal:host-gateway` to the web service in
`docker-compose.yml` so Linux hosts resolve `host.docker.internal` the
same way Docker Desktop does on macOS/Windows.

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Renovate
Bot](https://redirect.github.com/renovatebot/renovate).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4yOS4yIiwidXBkYXRlZEluVmVyIjoiNDMuMjkuMiIsInRhcmdldEJyYW5jaCI6Im1hc3RlciIsImxhYmVscyI6WyJhcHAvZGlzcGF0Y2hhcnIiLCJhdXRvbWVyZ2UiLCJyZW5vdmF0ZS9jb250YWluZXIiLCJ0eXBlL21pbm9yIl19-->
2026-03-18 04:39:40 +01:00
TrueCharts Bot c618953d8e chore(valheim): update image ghcr.io/lloesche/valheim-server digest to c859ca0 (#46160)
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| ghcr.io/lloesche/valheim-server | digest | `8f1c5fc` → `c859ca0` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the [Dependency
Dashboard](../issues/18710) for more information.

Add the preset `:preserveSemverRanges` to your config if you don't want
to pin your dependencies.

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Renovate
Bot](https://redirect.github.com/renovatebot/renovate).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4yOS4yIiwidXBkYXRlZEluVmVyIjoiNDMuMjkuMiIsInRhcmdldEJyYW5jaCI6Im1hc3RlciIsImxhYmVscyI6WyJhcHAvdmFsaGVpbSIsImF1dG9tZXJnZSIsInJlbm92YXRlL2NvbnRhaW5lciIsInR5cGUvZGlnZXN0Il19-->
2026-03-18 04:39:29 +01:00
TrueCharts Bot a40a575852 chore(monica): update image monica digest to c6d5dd7 (#46158) 2026-03-18 04:39:11 +01:00
TrueCharts Bot 8cdf8c6a24 chore(yourls): update image yourls digest to 755cd0e (#46161) 2026-03-18 04:33:37 +01:00
TrueCharts Bot a0f677e43d chore(friendica): update image friendica digest to 952b2da (#46156) 2026-03-18 04:33:32 +01:00
TrueCharts Bot 6d666c910b fix(metube): update image ghcr.io/alexta69/metube 2026.03.15 → 2026.03.18 (#46163)
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| ghcr.io/alexta69/metube | patch | `37e2b85` → `863a15c` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the [Dependency
Dashboard](../issues/18710) for more information.

Add the preset `:preserveSemverRanges` to your config if you don't want
to pin your dependencies.

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Renovate
Bot](https://redirect.github.com/renovatebot/renovate).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4yOS4yIiwidXBkYXRlZEluVmVyIjoiNDMuMjkuMiIsInRhcmdldEJyYW5jaCI6Im1hc3RlciIsImxhYmVscyI6WyJhcHAvbWV0dWJlIiwiYXV0b21lcmdlIiwicmVub3ZhdGUvY29udGFpbmVyIiwidHlwZS9wYXRjaCJdfQ==-->
2026-03-18 04:33:27 +01:00
TrueCharts Bot 80f87c1fda chore(transmission): update image docker.io/linuxserver/transmission digest to bd9d485 (#46159)
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
|
[docker.io/linuxserver/transmission](https://redirect.github.com/linuxserver/docker-transmission/packages)
([source](https://redirect.github.com/linuxserver/docker-transmission))
| digest | `25e04da` → `bd9d485` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the [Dependency
Dashboard](../issues/18710) for more information.

Add the preset `:preserveSemverRanges` to your config if you don't want
to pin your dependencies.

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Renovate
Bot](https://redirect.github.com/renovatebot/renovate).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4yOS4yIiwidXBkYXRlZEluVmVyIjoiNDMuMjkuMiIsInRhcmdldEJyYW5jaCI6Im1hc3RlciIsImxhYmVscyI6WyJhcHAvdHJhbnNtaXNzaW9uIiwiYXV0b21lcmdlIiwicmVub3ZhdGUvY29udGFpbmVyIiwidHlwZS9kaWdlc3QiXX0=-->
2026-03-18 04:33:08 +01:00
TrueCharts Bot 4659c6715a chore(generic-device-plugin): update image ghcr.io/squat/generic-device-plugin digest to 72c4450 (#46157) 2026-03-18 04:32:15 +01:00
TrueCharts-Bot 6c96fb9c0f Commit daily changes
Signed-off-by: TrueCharts-Bot <bot@truecharts.org>
2026-03-18 00:20:43 +00:00
TrueCharts Bot 4b422e0e2d fix(helm-deps): update chart mongodb 16.18.3 → 16.18.4 (#46153) 2026-03-17 22:38:10 +01:00
TrueCharts Bot 8143011e36 feat(ghostfolio): update image docker.io/ghostfolio/ghostfolio 2.249.0 → 2.250.0 (#46155) 2026-03-17 22:29:31 +01:00
TrueCharts Bot d308d264df feat(cloudcommander): update image ghcr.io/coderaiser/cloudcmd 19.6.8 → 19.7.0 (#46154)
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
|
[ghcr.io/coderaiser/cloudcmd](https://redirect.github.com/coderaiser/cloudcmd)
| minor | `b4cfc7f` → `8b20a29` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the [Dependency
Dashboard](../issues/18710) for more information.

Add the preset `:preserveSemverRanges` to your config if you don't want
to pin your dependencies.

---

### Release Notes

<details>
<summary>coderaiser/cloudcmd (ghcr.io/coderaiser/cloudcmd)</summary>

###
[`v19.7.0`](https://redirect.github.com/coderaiser/cloudcmd/releases/tag/v19.7.0):
cloudcmd v19.7.0

[Compare
Source](https://redirect.github.com/coderaiser/cloudcmd/compare/v19.6.9...v19.7.0)

#### 🔥 feature

-
[`daf8387`](https://redirect.github.com/coderaiser/cloudcmd/commit/daf83875)
cloudfunc: override date format
([#&#8203;459](https://redirect.github.com/coderaiser/cloudcmd/issues/459))

###
[`v19.6.9`](https://redirect.github.com/coderaiser/cloudcmd/releases/tag/v19.6.9):
cloudcmd v19.6.9

[Compare
Source](https://redirect.github.com/coderaiser/cloudcmd/compare/v19.6.8...v19.6.9)

#### 🔥 feature

-
[`b28a070`](https://redirect.github.com/coderaiser/cloudcmd/commit/b28a070a)
cloudcmd: redzip v4.6.1
-
[`43c5a01`](https://redirect.github.com/coderaiser/cloudcmd/commit/43c5a011)
cloudcmd: css-minimizer-webpack-plugin v8.0.0
-
[`15dcae5`](https://redirect.github.com/coderaiser/cloudcmd/commit/15dcae5c)
cloudcmd: webpack-cli v7.0.2
-
[`5976da8`](https://redirect.github.com/coderaiser/cloudcmd/commit/5976da81)
cloudcmd:
[@&#8203;cloudcmd/fileop](https://redirect.github.com/cloudcmd/fileop)
v9.0.5
-
[`37cb83f`](https://redirect.github.com/coderaiser/cloudcmd/commit/37cb83f2)
cloudcmd: redzip v4.6.0

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Renovate
Bot](https://redirect.github.com/renovatebot/renovate).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4yOS4yIiwidXBkYXRlZEluVmVyIjoiNDMuMjkuMiIsInRhcmdldEJyYW5jaCI6Im1hc3RlciIsImxhYmVscyI6WyJhcHAvY2xvdWRjb21tYW5kZXIiLCJhdXRvbWVyZ2UiLCJyZW5vdmF0ZS9jb250YWluZXIiLCJ0eXBlL21pbm9yIl19-->
2026-03-17 22:26:58 +01:00
TrueCharts Bot 1999c7fd53 chore(ubooquity): update image ghcr.io/linuxserver/ubooquity digest to 026e7d6 (#46150) 2026-03-17 22:25:35 +01:00
TrueCharts Bot 7f9d5e2b9b fix(drawio): update image docker.io/jgraph/drawio 29.6.1 → 29.6.3 (#46152) 2026-03-17 22:25:34 +01:00
TrueCharts Bot 7050d3605d chore(tinymediamanager): update image docker.io/tinymediamanager/tinymediamanager digest to bbfc0d6 (#46149)
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
|
[docker.io/tinymediamanager/tinymediamanager](https://www.tinymediamanager.org/)
| digest | `e2c2b5a` → `bbfc0d6` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the [Dependency
Dashboard](../issues/18710) for more information.

Add the preset `:preserveSemverRanges` to your config if you don't want
to pin your dependencies.

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Renovate
Bot](https://redirect.github.com/renovatebot/renovate).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4yOS4yIiwidXBkYXRlZEluVmVyIjoiNDMuMjkuMiIsInRhcmdldEJyYW5jaCI6Im1hc3RlciIsImxhYmVscyI6WyJhcHAvdGlueW1lZGlhbWFuYWdlciIsImF1dG9tZXJnZSIsInJlbm92YXRlL2NvbnRhaW5lciIsInR5cGUvZGlnZXN0Il19-->
2026-03-17 22:24:53 +01:00
TrueCharts Bot 6bb41610cf fix(nextcloud): update image oci.trueforge.org/containerforge/nextcloud-notify-push 1.3.0 → 1.3.1 (#46142)
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
|
[oci.trueforge.org/containerforge/nextcloud-notify-push](https://ghcr.io/trueforge-org/nextcloud-notify-push)
([source](https://redirect.github.com/nextcloud/notify_push)) | patch |
`d4328a0` → `4594dbf` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the [Dependency
Dashboard](../issues/18710) for more information.

Add the preset `:preserveSemverRanges` to your config if you don't want
to pin your dependencies.

---

### Release Notes

<details>
<summary>nextcloud/notify_push
(oci.trueforge.org/containerforge/nextcloud-notify-push)</summary>

###
[`v1.3.1`](https://redirect.github.com/nextcloud/notify_push/releases/tag/v1.3.1):
1.3.1

[Compare
Source](https://redirect.github.com/nextcloud/notify_push/compare/v1.3.0...v1.3.1)

#### What's Changed

- Listen to IPv6 and IPv4 by default
- fix handling of ipv6 database addresses in config parsing
- Gate test endpoints behind authentication
- Release 1.3.1 by
[@&#8203;icewind1991](https://redirect.github.com/icewind1991) in
[#&#8203;689](https://redirect.github.com/nextcloud/notify_push/pull/689)

**Full Changelog**:
<https://github.com/nextcloud/notify_push/compare/v1.3.0...v1.3.1>

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Renovate
Bot](https://redirect.github.com/renovatebot/renovate).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4yOS4yIiwidXBkYXRlZEluVmVyIjoiNDMuMjkuMiIsInRhcmdldEJyYW5jaCI6Im1hc3RlciIsImxhYmVscyI6WyJhcHAvbmV4dGNsb3VkIiwiYXV0b21lcmdlIiwicmVub3ZhdGUvY29udGFpbmVyIiwidHlwZS9wYXRjaCJdfQ==-->

---------

Signed-off-by: Alfred Göppel <43101280+alfi0812@users.noreply.github.com>
Co-authored-by: Alfred Göppel <43101280+alfi0812@users.noreply.github.com>
2026-03-17 18:54:06 +00:00