Commit Graph

57076 Commits

Author SHA1 Message Date
TrueCharts Bot e644ba640c chore(dashy): update image ghcr.io/lissy93/dashy digest to 7c79a07 (#49215) 2026-06-17 12:59:21 +02:00
TrueCharts Bot 332bf33b84 fix(maintainerr): update image docker.io/maintainerr/maintainerr 3.15.0 → 3.15.1 (#49218)
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
|
[docker.io/maintainerr/maintainerr](https://redirect.github.com/Maintainerr/Maintainerr)
| patch | `b510727` → `fc23686` |

---

> [!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>Maintainerr/Maintainerr
(docker.io/maintainerr/maintainerr)</summary>

###
[`v3.15.1`](https://redirect.github.com/Maintainerr/Maintainerr/blob/HEAD/CHANGELOG.md#3151-2026-06-17)

[Compare
Source](https://redirect.github.com/Maintainerr/Maintainerr/compare/v3.15.0...v3.15.1)

#### Highlights

- Fixed Plex `sw_lastWatched` getter to correctly return `null` for
shows never watched, resolving a `TypeError` when accessing empty watch
history
([#&#8203;3102](https://redirect.github.com/Maintainerr/Maintainerr/issues/3102)).
- Fixed Emby collection creation to include an initial item, avoiding
HTTP 500 errors for empty collections
([#&#8203;3097](https://redirect.github.com/Maintainerr/Maintainerr/issues/3097)).
- Fixed Radarr import-list exclusions to correctly handle "already
excluded" HTTP 400 responses as success
([#&#8203;3096](https://redirect.github.com/Maintainerr/Maintainerr/issues/3096),
[#&#8203;3099](https://redirect.github.com/Maintainerr/Maintainerr/issues/3099)).

#### Fixes

- Fixed Plex `sw_lastWatched` getter to correctly return `null` for
shows never watched, resolving a `TypeError` when accessing empty watch
history
([#&#8203;3102](https://redirect.github.com/Maintainerr/Maintainerr/issues/3102)).
- Fixed Emby collection creation to include an initial item, avoiding
HTTP 500 errors for empty collections
([#&#8203;3097](https://redirect.github.com/Maintainerr/Maintainerr/issues/3097)).
- Fixed Emby collection creation to skip remote creation for empty
collections, preventing HTTP 500 errors
([#&#8203;3098](https://redirect.github.com/Maintainerr/Maintainerr/issues/3098)).
- Fixed Radarr import-list exclusions to correctly handle "already
excluded" HTTP 400 responses as success
([#&#8203;3096](https://redirect.github.com/Maintainerr/Maintainerr/issues/3096),
[#&#8203;3099](https://redirect.github.com/Maintainerr/Maintainerr/issues/3099)).
- Fixed Radarr exclusion handling to avoid misreporting non-duplicate
validation errors as success
([#&#8203;3099](https://redirect.github.com/Maintainerr/Maintainerr/issues/3099)).
- Fixed Plex collections to self-heal when stale/corrupt records reject
every item add
([#&#8203;3094](https://redirect.github.com/Maintainerr/Maintainerr/issues/3094)).
- Fixed metadata resolution for movie/show IDs to correctly resolve from
the item itself instead of its parent
([#&#8203;3100](https://redirect.github.com/Maintainerr/Maintainerr/issues/3100)).

#### Performance

- Increased timeout for `OverlayRenderService` render tests to avoid CI
flakiness during sharp-based image processing
([#&#8203;3101](https://redirect.github.com/Maintainerr/Maintainerr/issues/3101)).

#### Internal

- Updated README feature wording.

#### Dependencies

- 23 dependency updates, including nodemailer,
[@&#8203;typescript-eslint/parser](https://redirect.github.com/typescript-eslint/parser),
axios,
[@&#8203;nestjs/typeorm](https://redirect.github.com/nestjs/typeorm),
sharp, and semantic-release.

</details>

---

### Configuration

📅 **Schedule**: (UTC)

- 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:eyJjcmVhdGVkSW5WZXIiOiI0My4xMzAuMSIsInVwZGF0ZWRJblZlciI6IjQzLjEzMC4xIiwidGFyZ2V0QnJhbmNoIjoibWFzdGVyIiwibGFiZWxzIjpbImFwcC9tYWludGFpbmVyciIsImF1dG9tZXJnZSIsInJlbm92YXRlL2NvbnRhaW5lciIsInR5cGUvcGF0Y2giXX0=-->
2026-06-17 12:59:09 +02:00
TrueCharts Bot fdbb9105d6 fix(helm-deps): update chart valkey 2.4.0 → 2.4.1 (#49212)
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [valkey](https://truecharts.org/charts/stable/valkey)
([source](https://redirect.github.com/bitnami/containers/tree/HEAD/bitnami/valkey))
| patch | `2.4.0` → `2.4.1` |

---

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

---

### Configuration

📅 **Schedule**: (UTC)

- 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:eyJjcmVhdGVkSW5WZXIiOiI0My4xMzAuMSIsInVwZGF0ZWRJblZlciI6IjQzLjEzMC4xIiwidGFyZ2V0QnJhbmNoIjoibWFzdGVyIiwibGFiZWxzIjpbImFwcC93ZWJsYXRlIiwiYXV0b21lcmdlIiwicmVub3ZhdGUvY29udGFpbmVyIiwidHlwZS9wYXRjaCJdfQ==-->
2026-06-17 07:34:47 +02:00
TrueCharts Bot a4bf330c39 chore(mongodb): update image docker.io/bitnamisecure/mongodb digest to e69978e (#49209) 2026-06-17 07:25:48 +02:00
TrueCharts Bot af55e07a9e chore(filestash): update image docker.io/machines/filestash digest to d083abd (#49208) 2026-06-17 07:25:39 +02:00
TrueCharts Bot 3d02990ce0 chore(wordpress): update image docker.io/bitnamisecure/wordpress digest to 17408e3 (#49211)
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| docker.io/bitnamisecure/wordpress | digest | `334da5f` → `17408e3` |

---

> [!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**: (UTC)

- 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:eyJjcmVhdGVkSW5WZXIiOiI0My4xMzAuMSIsInVwZGF0ZWRJblZlciI6IjQzLjEzMC4xIiwidGFyZ2V0QnJhbmNoIjoibWFzdGVyIiwibGFiZWxzIjpbImFwcC93b3JkcHJlc3MiLCJhdXRvbWVyZ2UiLCJyZW5vdmF0ZS9jb250YWluZXIiLCJ0eXBlL2RpZ2VzdCJdfQ==-->
2026-06-17 07:25:34 +02:00
TrueCharts Bot a57c26f53b chore(tubesync): update image ghcr.io/meeb/tubesync digest to fcdf065 (#49210)
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| ghcr.io/meeb/tubesync | digest | `721bfcb` → `fcdf065` |

---

> [!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**: (UTC)

- 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:eyJjcmVhdGVkSW5WZXIiOiI0My4xMzAuMSIsInVwZGF0ZWRJblZlciI6IjQzLjEzMC4xIiwidGFyZ2V0QnJhbmNoIjoibWFzdGVyIiwibGFiZWxzIjpbImFwcC90dWJlc3luYyIsImF1dG9tZXJnZSIsInJlbm92YXRlL2NvbnRhaW5lciIsInR5cGUvZGlnZXN0Il19-->
2026-06-17 07:08:30 +02:00
TrueCharts Bot 9148e0eb36 fix(ollama): update image docker.io/ollama/ollama 0.30.8 → 0.30.9 (#49213)
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| docker.io/ollama/ollama | patch | `19e10c4` → `be22e46` |
| docker.io/ollama/ollama | patch | `05b6fe5` → `1a72f12` |

---

> [!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**: (UTC)

- 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 these
updates 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:eyJjcmVhdGVkSW5WZXIiOiI0My4xMzAuMSIsInVwZGF0ZWRJblZlciI6IjQzLjEzMC4xIiwidGFyZ2V0QnJhbmNoIjoibWFzdGVyIiwibGFiZWxzIjpbImFwcC9vbGxhbWEiLCJhdXRvbWVyZ2UiLCJyZW5vdmF0ZS9jb250YWluZXIiLCJ0eXBlL3BhdGNoIl19-->
2026-06-17 07:08:27 +02:00
TrueCharts-Bot ebdcfef016 Commit daily changes
Signed-off-by: TrueCharts-Bot <bot@truecharts.org>
2026-06-17 00:44:39 +00:00
TrueCharts Bot 677cf0c560 fix(plextraktsync): update image ghcr.io/taxel/plextraktsync 0.35.7 → 0.35.8 (#49203)
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
|
[ghcr.io/taxel/plextraktsync](https://redirect.github.com/Taxel/PlexTraktSync)
| patch | `d210acd` → `c7c1474` |

---

> [!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>Taxel/PlexTraktSync (ghcr.io/taxel/plextraktsync)</summary>

###
[`v0.35.8`](https://redirect.github.com/Taxel/PlexTraktSync/compare/0.35.7...0.35.8)

[Compare
Source](https://redirect.github.com/Taxel/PlexTraktSync/compare/0.35.7...0.35.8)

</details>

---

### Configuration

📅 **Schedule**: (UTC)

- 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:eyJjcmVhdGVkSW5WZXIiOiI0My4xMzAuMSIsInVwZGF0ZWRJblZlciI6IjQzLjEzMC4xIiwidGFyZ2V0QnJhbmNoIjoibWFzdGVyIiwibGFiZWxzIjpbImFwcC9wbGV4dHJha3RzeW5jIiwiYXV0b21lcmdlIiwicmVub3ZhdGUvY29udGFpbmVyIiwidHlwZS9wYXRjaCJdfQ==-->
2026-06-16 22:55:30 +00:00
TrueCharts Bot 5e095c3180 feat(manyfold): update image ghcr.io/manyfold3d/manyfold 0.143.2 → 0.144.1 (#49206)
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
|
[ghcr.io/manyfold3d/manyfold](https://redirect.github.com/manyfold3d/manyfold)
| minor | `587bfdd` → `49071d6` |

---

> [!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>manyfold3d/manyfold (ghcr.io/manyfold3d/manyfold)</summary>

###
[`v0.144.1`](https://redirect.github.com/manyfold3d/manyfold/releases/tag/v0.144.1)

[Compare
Source](https://redirect.github.com/manyfold3d/manyfold/compare/v0.144.0...v0.144.1)

A small bugfix for an error when using custom lists.

#### What's Changed

##### 🐛 Bug Fixes 🐛

- Fix page errors caused by using default parameter in nested blocks by
[@&#8203;Floppy](https://redirect.github.com/Floppy) in
[#&#8203;6397](https://redirect.github.com/manyfold3d/manyfold/pull/6397)

**Full Changelog**:
<https://github.com/manyfold3d/manyfold/compare/v0.144.0...v0.144.1>

###
[`v0.144.0`](https://redirect.github.com/manyfold3d/manyfold/releases/tag/v0.144.0)

[Compare
Source](https://redirect.github.com/manyfold3d/manyfold/compare/v0.143.2...v0.144.0)

Been doing some digital kitbashing and lost track of which models are
based on which? Now you can mark a model as a "remix" of other models,
as many as you like! Just go to the edit page, add a relationship, and
search for the model you want to link up. Remixes and sources are shown
in the model page sidebar.

We've also added thumbnail extraction from GCODE files, and added
indexing for a number of new formats that F3D can create static renders
of: DICOM, CityGML, Point clouds, VTK, OFF, DirectX, XBF, Quake MDL,
IFC, MetaIO, NRRD, and Splat/Spz for 3D Gaussian Splatting.

#### What's Changed

#####  New Features 

- Add support for a whole load of new file types supported by F3D by
[@&#8203;Floppy](https://redirect.github.com/Floppy) in
[#&#8203;6337](https://redirect.github.com/manyfold3d/manyfold/pull/6337)
- Use GCODE file thumbnails as preview images by
[@&#8203;Floppy](https://redirect.github.com/Floppy) in
[#&#8203;6379](https://redirect.github.com/manyfold3d/manyfold/pull/6379)
- Link models together as remixes by
[@&#8203;Floppy](https://redirect.github.com/Floppy) in
[#&#8203;6377](https://redirect.github.com/manyfold3d/manyfold/pull/6377)

##### 🌍 Internationalization 🌏

- Translations updated: fr by
[@&#8203;Floppy](https://redirect.github.com/Floppy) in
[#&#8203;6361](https://redirect.github.com/manyfold3d/manyfold/pull/6361)
- Translations updated: cs by
[@&#8203;Floppy](https://redirect.github.com/Floppy) in
[#&#8203;6360](https://redirect.github.com/manyfold3d/manyfold/pull/6360)
- Translations updated: pl by
[@&#8203;Floppy](https://redirect.github.com/Floppy) in
[#&#8203;6359](https://redirect.github.com/manyfold3d/manyfold/pull/6359)
- Translations updated: es by
[@&#8203;Floppy](https://redirect.github.com/Floppy) in
[#&#8203;6358](https://redirect.github.com/manyfold3d/manyfold/pull/6358)
- Translations updated: zh-CN by
[@&#8203;Floppy](https://redirect.github.com/Floppy) in
[#&#8203;6357](https://redirect.github.com/manyfold3d/manyfold/pull/6357)
- Translations updated: de by
[@&#8203;Floppy](https://redirect.github.com/Floppy) in
[#&#8203;6356](https://redirect.github.com/manyfold3d/manyfold/pull/6356)

##### 🛠️ Other Improvements 🛠️

- Break up edit forms with headings by
[@&#8203;Floppy](https://redirect.github.com/Floppy) in
[#&#8203;6352](https://redirect.github.com/manyfold3d/manyfold/pull/6352)
- New UI layout for "add a link" button, and updates to similar layouts
by [@&#8203;Floppy](https://redirect.github.com/Floppy) in
[#&#8203;6353](https://redirect.github.com/manyfold3d/manyfold/pull/6353)
- Add WASM and Rails plugins for Vite, and allow dev mode connections by
[@&#8203;Floppy](https://redirect.github.com/Floppy) in
[#&#8203;6354](https://redirect.github.com/manyfold3d/manyfold/pull/6354)
- Extract model file relationship form and improve translation keys by
[@&#8203;Floppy](https://redirect.github.com/Floppy) in
[#&#8203;6355](https://redirect.github.com/manyfold3d/manyfold/pull/6355)
- Remove explicit "it" block parameters by
[@&#8203;Floppy](https://redirect.github.com/Floppy) in
[#&#8203;6362](https://redirect.github.com/manyfold3d/manyfold/pull/6362)

**Full Changelog**:
<https://github.com/manyfold3d/manyfold/compare/v0.143.2...v0.144.0>

</details>

---

### Configuration

📅 **Schedule**: (UTC)

- 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:eyJjcmVhdGVkSW5WZXIiOiI0My4xMzAuMSIsInVwZGF0ZWRJblZlciI6IjQzLjEzMC4xIiwidGFyZ2V0QnJhbmNoIjoibWFzdGVyIiwibGFiZWxzIjpbImFwcC9tYW55Zm9sZCIsImF1dG9tZXJnZSIsInJlbm92YXRlL2NvbnRhaW5lciIsInR5cGUvbWlub3IiXX0=-->
2026-06-17 00:55:24 +02:00
TrueCharts Bot 03a6b5cae0 fix(metabase): update image docker.io/metabase/metabase v0.62.1 → v0.62.2 (#49200)
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| docker.io/metabase/metabase | patch | `b56a050` → `b2b2c69` |

---

> [!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**: (UTC)

- 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:eyJjcmVhdGVkSW5WZXIiOiI0My4xMzAuMSIsInVwZGF0ZWRJblZlciI6IjQzLjEzMC4xIiwidGFyZ2V0QnJhbmNoIjoibWFzdGVyIiwibGFiZWxzIjpbImFwcC9tZXRhYmFzZSIsImF1dG9tZXJnZSIsInJlbm92YXRlL2NvbnRhaW5lciIsInR5cGUvcGF0Y2giXX0=-->
2026-06-17 00:55:09 +02:00
TrueCharts Bot c5e0623628 chore(grafana-image-renderer): update image docker.io/grafana/grafana-image-renderer digest to d88e6bf (#49192)
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| docker.io/grafana/grafana-image-renderer | digest | `5306343` →
`d88e6bf` |

---

> [!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**: (UTC)

- 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:eyJjcmVhdGVkSW5WZXIiOiI0My4xMzAuMSIsInVwZGF0ZWRJblZlciI6IjQzLjEzMC4xIiwidGFyZ2V0QnJhbmNoIjoibWFzdGVyIiwibGFiZWxzIjpbImFwcC9ncmFmYW5hLWltYWdlLXJlbmRlcmVyIiwiYXV0b21lcmdlIiwicmVub3ZhdGUvY29udGFpbmVyIiwidHlwZS9kaWdlc3QiXX0=-->
2026-06-17 00:54:32 +02:00
TrueCharts Bot be29da90c9 fix(ctfd): update image ghcr.io/ctfd/ctfd 3.8.5 → 3.8.6 (#49199)
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| ghcr.io/ctfd/ctfd | patch | `476211f` → `5b780b3` |

---

> [!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**: (UTC)

- 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:eyJjcmVhdGVkSW5WZXIiOiI0My4xMzAuMSIsInVwZGF0ZWRJblZlciI6IjQzLjEzMC4xIiwidGFyZ2V0QnJhbmNoIjoibWFzdGVyIiwibGFiZWxzIjpbImFwcC9jdGZkIiwiYXV0b21lcmdlIiwicmVub3ZhdGUvY29udGFpbmVyIiwidHlwZS9wYXRjaCJdfQ==-->
2026-06-17 00:54:25 +02:00
TrueCharts Bot d06a463566 chore(redis): update image docker.io/bitnamisecure/redis digest to d842c43 (#49194)
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| docker.io/bitnamisecure/redis | digest | `4f041bf` → `d842c43` |

---

> [!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**: (UTC)

- 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:eyJjcmVhdGVkSW5WZXIiOiI0My4xMzAuMSIsInVwZGF0ZWRJblZlciI6IjQzLjEzMC4xIiwidGFyZ2V0QnJhbmNoIjoibWFzdGVyIiwibGFiZWxzIjpbImFwcC9yZWRpcyIsImF1dG9tZXJnZSIsInJlbm92YXRlL2NvbnRhaW5lciIsInR5cGUvZGlnZXN0Il19-->
2026-06-17 00:54:10 +02:00
TrueCharts Bot 979d927128 chore(tachidesk-docker): update image ghcr.io/suwayomi/tachidesk digest to afe6d68 (#49195)
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| ghcr.io/suwayomi/tachidesk | digest | `f088885` → `afe6d68` |

---

> [!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**: (UTC)

- 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:eyJjcmVhdGVkSW5WZXIiOiI0My4xMzAuMSIsInVwZGF0ZWRJblZlciI6IjQzLjEzMC4xIiwidGFyZ2V0QnJhbmNoIjoibWFzdGVyIiwibGFiZWxzIjpbImFwcC90YWNoaWRlc2stZG9ja2VyIiwiYXV0b21lcmdlIiwicmVub3ZhdGUvY29udGFpbmVyIiwidHlwZS9kaWdlc3QiXX0=-->
2026-06-17 00:53:49 +02:00
TrueCharts Bot 3082e21529 feat(wekan): update image docker.io/wekanteam/wekan v9.46 → v9.47 (#49207)
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [docker.io/wekanteam/wekan](https://redirect.github.com/wekan/wekan) |
minor | `2c4f3ec` → `70cc2d1` |

---

> [!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>wekan/wekan (docker.io/wekanteam/wekan)</summary>

###
[`v9.47`](https://redirect.github.com/wekan/wekan/blob/HEAD/CHANGELOG.md#v947-2026-06-17-WeKan--release)

[Compare
Source](https://redirect.github.com/wekan/wekan/compare/v9.46...v9.47)

This release adds the following updates:

- [Developer test tooling: "Run ALL tests" now stops an existing dev
server on port 3000 instead of
aborting](https://redirect.github.com/wekan/wekan/commit/64aa784b2b2b9f96040aad066101aef3f8444da0):
`rebuild-wekan.sh` menu option 9 ("Run ALL tests") previously errored
out with
"Port 3000 is already in use" when a dev server was already running,
forcing the
user to stop it manually. It now detects and stops the existing Meteor
dev server
  before starting its own. Thanks to xet7 and Claude. Details:
- When port 3000 is busy, option 9 finds the existing Meteor dev server
(`pgrep -f 'meteor run --port 3000'`) and sends it a normal `kill`,
which also
    tears down the node child it spawned.
- It then polls the port for up to 30s, escalating to `SIGKILL` at the
15s mark
and falling back to `lsof -ti tcp:3000` (or `fuser -k 3000/tcp`) to
catch
    anything still holding the port whose command line does not match.
- Only if the port is still occupied after all that does it print an
error and
abort; otherwise it reports "Port 3000 is now free" and starts its own
server.
- [Fix moving/copying a card silently failing with a 403 validation
error](https://redirect.github.com/wekan/wekan/commit/7db02489202c560d227a476db24cd761c66a0a00):
the move, copy, copy-many and convert-checklist-item card dialogs could
leave a
card in its original list instead of moving it. Thanks to xet7 and
Claude.
  Details:
- Root cause: the dialog's "Done" handler read the target
board/swimlane/list by
scraping the DOM `<select>` elements. The reactive `boards()` helper can
transiently return `[]` while a `board` subscription re-resolves,
leaving the
board `<select>` momentarily option-less, so `selectedIndex` was `-1`
and the
scraped `boardId` was `undefined`. `card.move(undefined, …)` then failed
server-side with `ValidationError: Not permitted. Untrusted code may
only
updateAsync documents by ID [403]`, and the card silently stayed put.
This was
a gap in the earlier dialog fix, which bound only the swimlane and list
options
    to the live selection but left the board `<select>` on the (empty)
    last-confirmed option.
- Fix: the Done handler now reads `boardId`/`swimlaneId`/`listId` from
the
dialog's live reactive selection
(`selectedBoardId`/`selectedSwimlaneId`/
`selectedListId`), which stays correct across re-renders, and the board
`<option selected>` attribute is bound to the live selection in all four
    dialogs for UI consistency.
- Test hardening: three Playwright/Node E2E tests that flaked under the
all-parallel run (move-list-right, add-to-top/add-to-bottom, and the
Node E2E
second-session list-order check) now wait for the board subscription to
    populate before acting, instead of reading once after a fixed delay.
- [Developer test tooling: run all tests in parallel against a single
dev
server](https://redirect.github.com/wekan/wekan/commit/19fe2e2b6f21b5206e29dcd568576f001abbf37a):
`rebuild-wekan.sh` and `rebuild-wekan.bat` now run all tests in parallel
against a single dev server, and fix the WebKit/Docker permission
fallout.
  Thanks to xet7 and Claude. Details:
  - "Run ALL tests" (menu option 9) now starts **one** WeKan server on
<http://localhost:3000> (using `.meteor/local`) and runs every test job
concurrently with a live, refreshing progress display: import
regression,
Node E2E, and Playwright Chromium + Firefox + WebKit all run against
that one
server, while the Mocha server-side suite runs at the same time in its
own
isolated Meteor build dir (`.meteor/local-test`, via `METEOR_LOCAL_DIR`)
so the
two Meteor builds never share `.meteor/local`. A per-job PASS/FAIL
summary and
per-job logs (`../wekan-alltests-<job>.log`) are written at the end.
Previously
    these ran strictly one after another.
  - New menu option 16, "Test Playwright ALL browsers in parallel", runs
Chromium + Firefox + WebKit at the same time against a server that is
already
running on :3000 (WebKit via the Playwright Docker image on Linux arm64,
native
    elsewhere; the others run with `--workers=3` on Windows).
- Each Playwright browser now writes to its own `test-results/<browser>`
output
dir so parallel runs do not clobber each other's artifacts, and the
WebKit
Docker run executes as the host user (`--user`) so it no longer leaves
root-owned files behind. A guard repairs an already root-owned
`test-results/`
that caused `EACCES: permission denied, mkdir
.../.playwright-artifacts-N`.
- [Run ALL tests: start the :3000 server before Mocha so it boots fast
again](https://redirect.github.com/wekan/wekan/commit/83963dce80909ae0c6dde512c297619e1213c502):
the parallel "Run ALL tests" flow launched Mocha (in its own
`.meteor/local-test`
build) before the :3000 dev server, so two full Meteor builds competed
for
CPU/disk and the server took a long time to become ready — shown as a
long line
of dots during the readiness wait. Mocha and the import regression do
not need
the server, so they are now launched only after the server build is
underway;
the server builds alone and boots fast again, while they still run in
parallel
  with the E2E and browser jobs. Applied to both `rebuild-wekan.sh` and
  `rebuild-wekan.bat`. Thanks to xet7 and Claude.
- [Fix #&#8203;6380: login page missing username/password fields after
upgrade](https://redirect.github.com/wekan/wekan/commit/8e70a2b6a95373125be222534cc2fd4da6c278e8):
the password form is hidden by default in CSS and only revealed by JS
when
`isPasswordLoginEnabled` returns truthy; a slow/failed method call or a
not-yet-rendered accounts form left the login without username and
password
fields. It now shows the form unless password login is explicitly
disabled, and
waits for the form element to appear before showing it. Thanks to xet7
and
  Claude.
- [Fix #&#8203;6381: make the card "Mark as complete" toggle
configurable, hidden by
default](https://redirect.github.com/wekan/wekan/commit/67d9de32db8829ae11ad654fee621162368eed36):
a new board setting `allowsDueComplete` (off by default) controls
whether the
"Mark as complete" toggle is shown on cards, with a checkbox in the
board Card
  Settings popup to enable it per board. Thanks to xet7 and Claude.
- [Fix #&#8203;6382: stop the client auto-creating thousands of empty
swimlanes](https://redirect.github.com/wekan/wekan/commit/dd7306d8de1f8c49d2f80b6cb6b49994e7a5a94d):
`getDefaultSwimline()` inserted a swimlane whenever none was found, but
on the
client it runs inside reactive renders — for a board whose swimlanes
were not
yet loaded (e.g. the default subtasks board viewed via "All boards")
every
re-render inserted another empty swimlane (2008 in the report), freezing
the
browser. The default swimlane is now auto-created only on the server.
Thanks to
  xet7 and Claude.
- [Move/Copy/Convert card dialogs: bind swimlane and list select to live
selection](https://redirect.github.com/wekan/wekan/commit/758f320969ccdbe2026cf1acb9d361906da3f76a):
the swimlane and list `<select>` `selected` option in the move, copy,
copy-many
and convert-checklist-item card dialogs now follows the live selection
instead
of the last-confirmed option, so a Blaze reactive re-render can no
longer
silently revert the user's in-progress choice. Thanks to xet7 and
Claude.
- [Playwright: probe browsers and skip ones that cannot launch on the
host](https://redirect.github.com/wekan/wekan/commit/be44f9c3114fcef82847510058f8ccd014e32109):
the test runner now probes each browser and skips any that cannot launch
(e.g.
the bundled WebKit needs old system libraries that newer Linux arm64
distros
like Ubuntu 26.04 no longer ship), removing false WebKit failures
locally while
still running every browser on CI. Override with
`WEKAN_PLAYWRIGHT_PROBE=1`/`0`.
  Thanks to xet7 and Claude.
- [rebuild-wekan.sh: platform detection, Docker WebKit on Linux arm64,
all browsers in ALL
tests](https://redirect.github.com/wekan/wekan/commit/dac356ed061167cdf994bd9f82a849514922a92e):
detect OS/arch (Linux amd64/arm64, macOS arm64); run the WebKit
Playwright specs
via the official Playwright Docker image on Linux arm64 where the
bundled WebKit
cannot launch natively; and run Chromium, Firefox and WebKit in the "Run
ALL
  tests" option. Thanks to xet7 and Claude.
- [rebuild-wekan.bat: Windows menu parity for building, running and
testing
WeKan](https://redirect.github.com/wekan/wekan/commit/d5e5df6549f0496e4eaa54675eee2392cbebdd8d):
the Windows batch script now mirrors rebuild-wekan.sh's interactive menu
so
building, running and testing WeKan (Mocha, import regression, Node E2E
and
Playwright Chromium/Firefox/WebKit) works on Windows amd64/arm64 too.
Thanks to
  xet7 and Claude.
- [Bumped form-data from 2.5.5 to
2.5.6](https://redirect.github.com/wekan/wekan/pull/6375):
security fix for the CRLF-injection issue (CVE-2026-12143,
GHSA-hmw2-7cc7-3qxx)
where CR/LF/`"` in multipart field names and filenames were not escaped.
It is a
transitive dependency (pulled in via `@google-cloud/storage`);
lockfile-only
  change. Thanks to Dependabot, xet7 and Claude.
- [Bumped launch-editor from 2.13.2 to
2.14.1](https://redirect.github.com/wekan/wekan/pull/6376):
a dev-only dependency (used by `webpack-dev-server` / `@rsdoctor/sdk`,
not in the
production bundle); lockfile-only change. Thanks to Dependabot, xet7 and
Claude.
- [Bumped docker/setup-buildx-action from 3 to
4](https://redirect.github.com/wekan/wekan/pull/6377):
GitHub Actions workflow action update used by the Docker image build.
Thanks to
  Dependabot, xet7 and Claude.
- [Bumped azure/setup-helm from 4 to
5](https://redirect.github.com/wekan/wekan/pull/6378):
GitHub Actions workflow action update used by the Helm chart release
workflow.
  Thanks to Dependabot, xet7 and Claude.
- [Bumped dompurify from 3.4.6 to
3.4.9](https://redirect.github.com/wekan/wekan/pull/6379):
update of the HTML sanitizer used to sanitize card descriptions,
comments and
other rendered markdown (XSS protection). Thanks to Dependabot, xet7 and
Claude.

and adds the following new features:

- [Added card dependency "Red Strings" / PI program
board](https://redirect.github.com/wekan/wekan/commit/5bd1d0ae742e118561b0e9e3170c1e44bd579ad8):
visualize card-to-card dependencies as red, arrow-headed connection
lines drawn on
top of the board (for SAFe PI-planning program boards). A card now has a
`cardDependencies` list edited from a new "Dependencies" section in the
card detail
(pick or remove other cards on the same board), and a board header
toggle
(`showDependencies`) renders an SVG overlay that draws a red curve from
each card to
each of its dependencies, following the live card positions on
scroll/resize. The
overlay is non-interactive (`pointer-events: none`) so cards stay
clickable.
  Each dependency is now **typed and customizable**: a relation `type`
(`related-to`, `blocks`, `is-blocked-by`, `fixes`, `is-fixed-by` — the
type sets
the arrow direction; `related-to` is undirected), a per-line `color`
(any color,
via a color picker, not just red) and an `icon` (FontAwesome). The card
detail
"Dependencies" section edits all three (relation type, color, icon
picker), with a
search-by-title picker to add one; a colored icon+count **badge** is
shown on the
minicard; and the board Filter sidebar can **filter cards by dependency
relation
type**. A **REST API** was added (tag `Dependencies`, documented in the
OpenAPI
  docs and `api.py`): `GET /api/boards/:boardId/dependencies`,
  `GET/POST /api/boards/:boardId/cards/:cardId/dependencies` and
`PUT/DELETE /api/boards/:boardId/cards/:cardId/dependencies/:targetId`,
each
accepting `type`/`color`/`icon`. Dependency lines can be **exported**
(Board
Settings → Export → Dependencies / JSON and / SVG; the SVG is a
standalone,
  round-trippable diagram) and **imported** (All Boards → New → Import →
Dependencies (JSON/SVG)) into a chosen board, matching cards by id, then
card
number, then title. Importing a **Jira** board now maps Jira
`issuelinks`
  best-effort to dependency relations. Card dependencies and the board's
`showDependencies` toggle are **preserved** through card/board copy and
WeKan
board export/import/migrate (target ids are remapped, dangling ones
dropped), and
a card **moved** to another board drops its now cross-board dependencies
and
  cleans inbound references. Covered by tests
([Part
1](https://redirect.github.com/wekan/wekan/commit/536fc4913cab9b8fdbdf1cdd9827358a7d23a0b3),
[Part
2](https://redirect.github.com/wekan/wekan/commit/d2e928bb113c51a293105bfc0d7465e4836363e3),
[Part
3](https://redirect.github.com/wekan/wekan/commit/4152847483e168dd80d0f99b9a91c470765b6bc0)):
e2e specs `27-red-strings` (overlay, toggle, typed lines, minicard
badge,
copyCard preservation, import matching) and `28-dependencies-rest` (REST
CRUD +
schema validation), plus mocha unit tests for the metadata helpers, the
REST
OpenAPI annotations, the filter selector, the cross-board move cleanup
and the
  Jira issue-link mapping.
[Fixed editing an existing dependency from the card detail throwing a
client

403](https://redirect.github.com/wekan/wekan/commit/1db64f4ddeacb0f0ac130726a306df5dfce7fd19)
("Untrusted code may only updateAsync documents by ID") — changing a
relation's
type/color/icon or removing it now rewrites the `cardDependencies` array
and
updates by `_id` instead of using a forbidden positional-`$` selector
update, and
  [fixed the dependency icon picker not applying the chosen

icon](https://redirect.github.com/wekan/wekan/commit/e8a8007814d777f2c89d26cfdc878912c7072c9b)
(the popup now edits the source card, not the dependency row), with an
e2e test
  for editing a dependency's type/color/icon.
  Added a piplanning.io / Kendis / Miro-style **drag-to-connect**
([Part
1](https://redirect.github.com/wekan/wekan/commit/06bc92c200b93ff6d233ba5d2a40c4d939922cd3),
[Part
2](https://redirect.github.com/wekan/wekan/commit/9fe9e6087899823df064cce7c640f88be43914a4)):
when the overlay is on, each minicard shows a small **connect handle**
(right
edge, on hover) — **drag it onto another card to create a dependency**
(a dashed
guide line follows the cursor) — and a **connection line is clickable**
to
change its type/color/icon or delete it. It is **not** a mode: cards
stay
  clickable and the rest of the overlay is click-through.
The **Dependencies (JSON/SVG)** importer now also best-effort maps
**Miro** REST
API data (items + connectors, resolved to card titles; "block"/"fix"
captions →
relation type); Kendis/piplanning.io (and GitHub/GitLab) have no public
dependency format, so a generic `{ "lines": [...] }` JSON interchange is
  documented for them. Documented in

[Features/RedStrings](https://redirect.github.com/wekan/wekan/blob/main/docs/Features/RedStrings/RedStrings.md).
Fixes
[#&#8203;3392](https://redirect.github.com/wekan/wekan/issues/3392).
Thanks to CodeFreezr, dbt4u, helioguardabaxo, xet7 and Claude.
- [Added an Admin Panel "Shared templates" view grouped by Organization
/ Team / email

Domain](https://redirect.github.com/wekan/wekan/commit/fc9e8674d89ec5b045f2e2c1b14fade9e92baf0d):
a new admin-only "Shared templates" tab under Admin Panel → People lists
users'
shareable template boards, grouped by Organization, Team or email
Domain. The three
scope checkboxes are live view filters (default unchecked); checking one
or more shows
the matching groups, and only users whose Templates board is non-empty
are listed. A new
admin-only `adminSharedTemplates` method enumerates each user's linked
template boards
(the `cardType-linkedBoard` cards in their Board Templates swimlane) and
returns them with
the user's orgs/teams/email domains; the boards are shown as links into
each template
board. Covered by an e2e suite
(`tests/playwright/specs/26-shared-templates.e2e.js`).
  Documented in

[Features/Templates](https://redirect.github.com/wekan/wekan/blob/main/docs/Features/Templates.md#shared-templates-admin-view).
Fixes
[#&#8203;3313](https://redirect.github.com/wekan/wekan/issues/3313).
Thanks to xet7 and Claude.

and fixes the following bugs:

- [Fixed duplicate `MONGO_URL` environment variable generated by the
Helm
chart](https://redirect.github.com/wekan/charts/commit/d1662fc3b91a6ce28d5ea92ec2ad06d0df3e0755),
which made `helm install`/`upgrade` fail with `duplicate entries for key
[name="MONGO_URL"]`
when the default `env` list (which already includes `MONGO_URL`) was
used. The chart now
emits its computed `MONGO_URL` only when one is not already provided via
`env` or `secretEnv`.
Fixes
[#&#8203;6289](https://redirect.github.com/wekan/wekan/issues/6289).
Thanks to the reporter, xet7 and Claude.
- [Fixed GFM strikethrough (`~~text~~`) no longer rendering in card
descriptions](https://redirect.github.com/wekan/wekan/commit/92b0f96387c831839eb299a8feb00fe614419783):
markdown-it renders `~~text~~` to `<s>…</s>`, but the DOMPurify
allow-list did not
include `s`/`del`/`strike`, so the sanitizer stripped the tag (keeping
the bare text).
Those inline tags are now allowed in both DOMPurify configs. Fixes
[#&#8203;6008](https://redirect.github.com/wekan/wekan/issues/6008).
Thanks to
  Buo-ren Lin, xet7 and Claude.
- [Fixed the release pipeline's OpenAPI docs generator crashing on
template-literal route

paths](https://redirect.github.com/wekan/wekan/commit/17bb7c1264969a50f778452b37335599e3af0518),
which failed the GitHub Actions "release-all" bump job (`AttributeError:
'NoneType'
object has no attribute 'rstrip'`) when a REST route is registered with
a backtick path
such as `` `/api/boards/:boardId/export/${format}` ``. The generator now
resolves such
paths (a `${identifier}` becomes a `{identifier}` path parameter) and
skips any route
whose path cannot be resolved statically instead of aborting the whole
release. Thanks
  to xet7 and Claude.
- [Fixed the Member Settings "Change Avatar" entry rendering in a
different (uppercase-looking)
style than the other menu
items](https://redirect.github.com/wekan/wekan/commit/d241f9d8f6b20fb9bdc0f829a9ffb5f595c3b8bd):
its label was mis-nested inside the `<i class="fa fa-picture-o">` icon
element instead of
being a sibling of it, so it inherited the FontAwesome icon font
styling. The label now sits
directly under the menu link like every other entry. Thanks to xet7 and
Claude.
- [Hardened the reactive `DataCache` teardown to re-check for dependents
before stopping a
still-used
entry](https://redirect.github.com/wekan/wekan/commit/82192d04703c3b4bc09b7f28b8923d979c3b8831):
the 60s teardown timeout could stop the computation and delete a value
that a dependent
re-attached to during the window, surfacing as a transient `undefined`
(a contributor to the
  "Board not found" flicker). Thanks to xet7 and Claude.
- [Fixed board export error responses returning HTTP 200 with an empty
body](https://redirect.github.com/wekan/wekan/commit/309425545ffa91747f1f8d7d8585ec04795e13bf):
the export endpoints passed a bare number to `sendJsonResult`, which
treats its argument as an
options object, so 404/400/403/auth failures returned 200 with no body.
They now return the
  correct status code and a JSON error body. Thanks to xet7 and Claude.
- [Fixed the board create/delete REST handlers masking errors as
success](https://redirect.github.com/wekan/wekan/commit/29631f6f4b61fcf19ec1517a2ce335f3de7ac4b0):
`POST /api/boards` and `DELETE /api/boards/:boardId` caught errors and
returned `code: 200`
with the error as data; they now report the real status code (so e.g. an
unauthorized delete
  returns a 4xx). Thanks to xet7 and Claude.
- [Hardened board import against out-of-range swimlane/card
colors](https://redirect.github.com/wekan/wekan/commit/5eeedf8744ce344e5258a2c26698b9af66c78142):
like the earlier board-color fix, a card or swimlane color is now
applied only when it is a
recognized color value, so a foreign/old export carrying an unknown
color can no longer fail
collection2 validation and abort the import. Thanks to xet7 and Claude.
- Fixed the GitHub Actions **Playwright E2E** workflow so the Firefox
and WebKit
  browsers can actually run

([Firefox/WebKit](https://redirect.github.com/wekan/wekan/commit/351da691381c197d2fdb35c8d5a5da6e514a4085),

[mongosh](https://redirect.github.com/wekan/wekan/commit/a3d4848c88956e588ce46672c103f266d072f969)):
  the test step now sets `WEKAN_PLAYWRIGHT_ALL=1` (so
`--project=firefox`/`webkit` resolve instead of failing with "Project
not
found"), WebKit was added to the CI matrix (Playwright's bundled WebKit
runs
headless on the Linux runner), and `mongosh` is now installed in the
Playwright
and Puppeteer-regression jobs (the e2e DB helpers shell out to it, which
was
failing with `spawnSync mongosh ENOENT`). `npm run test:playwright:all`
got the
  same `WEKAN_PLAYWRIGHT_ALL=1` fix. Thanks to xet7 and Claude.
- [Translated the remaining untranslated English strings in the Finnish

translation](https://redirect.github.com/wekan/wekan/commit/599687f507b5279156fe93c47a546ec74ba92fef)
(`fi.i18n.json`) — the Shared Templates, card-dependency ("Red Strings")
and
dependency import/export strings — using the existing Finnish
terminology.
  Thanks to xet7 and Claude.
- [Fix flaky Playwright card/board tests under the parallel
run](https://redirect.github.com/wekan/wekan/commit/19fe2e2b6f21b5206e29dcd568576f001abbf37a):
the new 3-browser parallel run surfaced three load-induced (not product)
failures that took DOM snapshots before the UI had settled. Thanks to
xet7 and
    Claude. Details:
- `03-cards-operations` "move does not create duplicate cards" read the
card
titles immediately after the move and could catch the card mid-flight
(already removed from the source list, not yet rendered in the target).
It
now waits for the card to be visible in the target list and gone from
the
    source list before snapshotting.
- `03-cards-operations` "add-to-bottom places the card last" polls until
the
reactive re-sort places the new card last, since `submitNewCard` only
waits
    for the card to exist, not for its final sort position.
- `helpers/auth.js` `openBoard` now retries up to 5 times at 20s each so
the
slowest browser (WebKit) survives the contention of the 3-browser
parallel
    run against one shared dev server, instead of failing in test setup.
- [Build scripts: At tests option 9, run option 2 build if .build or
node\_modules
missing](https://redirect.github.com/wekan/wekan/commit/9f2a81349f6edafc4784bb508afe2df016deaa17).
  Thanks to xet7 and Claude.

Thanks to above GitHub users for their contributions and translators for
their translations.

</details>

---

### Configuration

📅 **Schedule**: (UTC)

- 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:eyJjcmVhdGVkSW5WZXIiOiI0My4xMzAuMSIsInVwZGF0ZWRJblZlciI6IjQzLjEzMC4xIiwidGFyZ2V0QnJhbmNoIjoibWFzdGVyIiwibGFiZWxzIjpbImFwcC93ZWthbiIsImF1dG9tZXJnZSIsInJlbm92YXRlL2NvbnRhaW5lciIsInR5cGUvbWlub3IiXX0=-->
2026-06-17 00:53:43 +02:00
TrueCharts Bot 7db3197b65 fix(crafty-4): update image registry.gitlab.com/crafty-controller/crafty-4 4.10.6 → 4.10.7 (#49198)
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
|
[registry.gitlab.com/crafty-controller/crafty-4](https://craftycontrol.com/)
([source](https://gitlab.com/crafty-controller/crafty-4)) | patch |
`2189f47` → `67c2cba` |

---

> [!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>crafty-controller/crafty-4
(registry.gitlab.com/crafty-controller/crafty-4)</summary>

###
[`v4.10.7`](https://gitlab.com/crafty-controller/crafty-4/blob/HEAD/CHANGELOG.md#----4107---20260616)

[Compare
Source](https://gitlab.com/crafty-controller/crafty-4/compare/v4.10.6...v4.10.7)

##### Bug fixes

- Fix python `3.13+` specific notation to add support back for `3.10-12`
([Merge
Request](https://gitlab.com/crafty-controller/crafty-4/-/merge_requests/1043))
- Fix Bedrock server creation and updates due to static
`FileHelpers.ssl_file_get()` call ([Merge
Request](https://gitlab.com/crafty-controller/crafty-4/-/merge_requests/1044))
- Fix Java server updates due to static `FileHelpers.ssl_file_get()`
call ([Merge
Request](https://gitlab.com/crafty-controller/crafty-4/-/merge_requests/1044))
- Fix modded server installs failing on non-windows environments ([Merge
Request](https://gitlab.com/crafty-controller/crafty-4/-/merge_requests/1047))
- Fix Hytale server creation hanging on "Importing..." ([Merge
Request](https://gitlab.com/crafty-controller/crafty-4/-/merge_requests/1041))
- Fix CPU pinned at 100% after terminal buffer changes ([Merge
Request](https://gitlab.com/crafty-controller/crafty-4/-/merge_requests/1045))
<br><br>

</details>

---

### Configuration

📅 **Schedule**: (UTC)

- 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:eyJjcmVhdGVkSW5WZXIiOiI0My4xMzAuMSIsInVwZGF0ZWRJblZlciI6IjQzLjEzMC4xIiwidGFyZ2V0QnJhbmNoIjoibWFzdGVyIiwibGFiZWxzIjpbImFwcC9jcmFmdHktNCIsImF1dG9tZXJnZSIsInJlbm92YXRlL2NvbnRhaW5lciIsInR5cGUvcGF0Y2giXX0=-->
2026-06-17 00:53:27 +02:00
TrueCharts Bot 4a5030a92d chore(freshrss): update image ghcr.io/linuxserver/freshrss digest to 699594b (#49191)
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
|
[ghcr.io/linuxserver/freshrss](https://redirect.github.com/linuxserver/docker-freshrss/packages)
([source](https://redirect.github.com/linuxserver/docker-freshrss)) |
digest | `b24ddde` → `699594b` |

---

> [!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**: (UTC)

- 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:eyJjcmVhdGVkSW5WZXIiOiI0My4xMzAuMSIsInVwZGF0ZWRJblZlciI6IjQzLjEzMC4xIiwidGFyZ2V0QnJhbmNoIjoibWFzdGVyIiwibGFiZWxzIjpbImFwcC9mcmVzaHJzcyIsImF1dG9tZXJnZSIsInJlbm92YXRlL2NvbnRhaW5lciIsInR5cGUvZGlnZXN0Il19-->
2026-06-17 00:51:53 +02:00
TrueCharts Bot 4f1b533cd9 chore(babybuddy): update image ghcr.io/linuxserver/babybuddy digest to 8f86cc0 (#49188)
This PR contains the following updates:

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

---

> [!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**: (UTC)

- 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:eyJjcmVhdGVkSW5WZXIiOiI0My4xMzAuMSIsInVwZGF0ZWRJblZlciI6IjQzLjEzMC4xIiwidGFyZ2V0QnJhbmNoIjoibWFzdGVyIiwibGFiZWxzIjpbImFwcC9iYWJ5YnVkZHkiLCJhdXRvbWVyZ2UiLCJyZW5vdmF0ZS9jb250YWluZXIiLCJ0eXBlL2RpZ2VzdCJdfQ==-->
2026-06-17 00:51:46 +02:00
TrueCharts Bot 593d58364a chore(boinc): update image ghcr.io/linuxserver/boinc digest to b356147 (#49189)
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| ghcr.io/linuxserver/boinc | digest | `c6773f0` → `b356147` |

---

> [!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**: (UTC)

- 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:eyJjcmVhdGVkSW5WZXIiOiI0My4xMzAuMSIsInVwZGF0ZWRJblZlciI6IjQzLjEzMC4xIiwidGFyZ2V0QnJhbmNoIjoibWFzdGVyIiwibGFiZWxzIjpbImFwcC9ib2luYyIsImF1dG9tZXJnZSIsInJlbm92YXRlL2NvbnRhaW5lciIsInR5cGUvZGlnZXN0Il19-->
2026-06-17 00:51:35 +02:00
TrueCharts Bot 90e9a34667 fix(mstream): update image ghcr.io/linuxserver/mstream 6.11.0 → 6.11.1 (#49202)
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
|
[ghcr.io/linuxserver/mstream](https://redirect.github.com/linuxserver/docker-mstream/packages)
([source](https://redirect.github.com/linuxserver/docker-mstream)) |
patch | `f74951f` → `ce2f683` |

---

> [!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**: (UTC)

- 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:eyJjcmVhdGVkSW5WZXIiOiI0My4xMzAuMSIsInVwZGF0ZWRJblZlciI6IjQzLjEzMC4xIiwidGFyZ2V0QnJhbmNoIjoibWFzdGVyIiwibGFiZWxzIjpbImFwcC9tc3RyZWFtIiwiYXV0b21lcmdlIiwicmVub3ZhdGUvY29udGFpbmVyIiwidHlwZS9wYXRjaCJdfQ==-->
2026-06-17 00:51:18 +02:00
TrueCharts Bot e38dcd81f7 feat(dispatcharr): update image docker.io/dispatcharr/dispatcharr 0.26.0 → 0.27.0 (#49205)
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
|
[docker.io/dispatcharr/dispatcharr](https://redirect.github.com/Dispatcharr/Dispatcharr)
| minor | `9275b0c` → `4251290` |

---

> [!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.27.0`](https://redirect.github.com/Dispatcharr/Dispatcharr/blob/HEAD/CHANGELOG.md#0270---2026-06-16)

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

##### Added

- **Manual Server Groups for shared M3U connection limits.** The
existing `ServerGroup` model and account FK are now wired into live and
VOD playback. Accounts assigned to the same group share a
credential-scoped Redis counter when their provider logins match (hashed
fingerprint); unrelated logins in the same group keep separate counters.
Enforcement uses each profile's `max_streams` - not a group-wide cap -
and profiles with `max_streams=0` skip credential pooling for that
profile while still rotating on their own per-profile counter. New
`apps/m3u/connection_pool.py` centralizes reserve/release, profile
rotation, and credential moves on profile switch. (Closes
[#&#8203;1137](https://redirect.github.com/Dispatcharr/Dispatcharr/issues/1137))
— Thanks
[@&#8203;Goldenfreddy0703](https://redirect.github.com/Goldenfreddy0703)
- **Server Groups manager UI** on the M3U Accounts page: create, rename,
and delete groups with account counts and delete confirmation. Groups
load on login via a new Zustand store and REST helpers
(`/api/m3u/server-groups/`).
- **M3U account form** adds a Server Group picker (including inline “add
group”), reorganized into three columns (source/auth, connection limits,
sync/content), and a Manage server groups shortcut.
- **VOD profile selection** uses `pool_has_capacity_for_profile()` so
grouped accounts respect shared credential limits before a profile is
chosen (non-grouped accounts behave as before).
- **Live profile switches** move the shared credential counter when the
new profile uses a different provider login; same-login switches leave
the credential counter unchanged.
- **Credential release keys** stored at reserve time allow counters to
be released even if the M3U profile row is deleted afterward.
- **PostgreSQL `application_name` tagging by process role.** Pool
connections now set `application_name` at connect time (e.g.
`Dispatcharr-uwsgi-{pid}`, `Dispatcharr-celery-worker-{pid}`,
`Dispatcharr-celery-dvr-{pid}`) so `pg_stat_activity` shows which
Dispatcharr process owns each backend instead of a generic client label.

##### Changed

- **Plugin repo manifests support split download and metadata base
URLs.** `download_base_url` and `metadata_base_url` are optional
alternatives to `root_url` in the plugin repository manifest, so repo
authors can serve metadata (manifests, icons) and release zips from
different origins without absolute URLs everywhere. Manifest and icon
URLs resolve via `metadata_base_url` then `root_url`; latest/download
URLs resolve via `download_base_url` then `root_url`. When
`metadata_base_url` is set and a plugin entry has `manifest_url` but no
`icon_url`, the icon defaults to `logo.png` in the same directory as the
per-plugin manifest. Manifests using only `root_url` behave identically
to before. — Thanks [@&#8203;sethwv](https://redirect.github.com/sethwv)
- **Live and VOD connection slot logic now routes through
`connection_pool`.** `Channel.get_stream()`, direct
`Stream.get_stream()`, VOD profile selection, and the multi-worker VOD
connection manager all call `reserve_profile_slot()` /
`release_profile_slot()` instead of inline Redis INCR/DECR. VOD profile
selection also checks `pool_has_capacity_for_profile()` before choosing
a profile.
- **Live XC upstream URLs use current credentials.**
`_resolve_live_stream_url()` builds `/live/{user}/{pass}/{stream_id}.ts`
from transformed account credentials and the stream's provider
`stream_id`, so playback stays aligned with the active login after
credential or profile changes instead of reusing a stale `stream.url`
from sync.
- **Channel stream switches check pooled capacity.**
`get_stream_info_for_switch()` uses
`profile_available_for_channel_switch()` when targeting a specific
stream, and releases a reserved slot if URL assembly fails after
`get_stream()` allocated one.
- **Live proxy init reads Redis assignment once.** After
`generate_stream_url()` reserves a slot, the stream handler reads
`channel_stream` / `stream_profile` from Redis instead of calling
`get_stream()` again, avoiding double INCR under concurrent release.
- **Centralized Dispatcharr User-Agent construction in `core.utils`.**
Outbound HTTP calls (Schedules Direct API, update checks, logo/VOD
fallbacks, DVR recording clients) now use `dispatcharr_user_agent()`,
`dispatcharr_dvr_user_agent()`, and `dispatcharr_http_headers()` instead
of ad-hoc `Dispatcharr/{version}` strings and stale `Dispatcharr/1.0`
fallbacks.
- **EPG auto-match overhaul** — matching logic moved to
`apps/channels/epg_matching.py`; Celery tasks in `tasks.py` are thin
wrappers.
- Single-channel auto-match is now asynchronous: the API returns `202
Accepted` and pushes the result over WebSocket
(`single_channel_epg_match`), so large EPG libraries no longer hit the
previous 30-second HTTP timeout.
- Progress, bulk completion, and single-channel results use
`send_websocket_update` instead of
`async_to_sync(channel_layer.group_send)`, so notifications work
reliably under gevent-patched uWSGI and Celery workers.
- Single-channel and selected-channel auto-match always run, even when
the channel already has EPG assigned; match-all (no channel IDs) still
only processes channels without EPG.
- Rematching to the same EPG no longer re-saves the channel or queues
program-parse tasks; only assignments that actually change are written
and refreshed.
- **Easier EPG search when editing a channel.** The filter in the EPG
picker now works more like a normal search box. You can type several
words at once (e.g. `sky uk`) and it finds channels where every word
appears somewhere in the name or TVG-ID, the order doesn't matter, and a
word in the name can pair with one in the ID. Accents are ignored too,
so `decale` matches `Décalé` and the other way around. — Thanks
[@&#8203;FiveBoroughs](https://redirect.github.com/FiveBoroughs)

##### Performance

- **XC live refresh releases bulk catalog data sooner during batch
processing.** After filtering the single `get_all_live_streams`
response, the full provider catalog list is dropped before batch DB
work. `process_m3u_batch_direct` (the path XC refreshes use) now runs
`gc.collect()` after each batch and clears batch slice references as
thread futures complete. Large structures are still `del`'d in the
refresh `finally` block before Celery's `task_postrun` runs
`cleanup_memory()`.
- **VOD movie/series batch matching no longer scans the full no-ID
catalog.** `process_movie_batch` and `process_series_batch` previously
loaded every `Movie`/`Series` row without TMDB or IMDB IDs on each
1000-item chunk to resolve name+year duplicates. Lookup is now scoped to
the names in the current batch via `lookup_by_name_year()`, which
reduces memory and DB time per chunk. `refresh_vod_content` and
`batch_refresh_series_episodes` are registered for Celery post-task
memory cleanup (one GC pass at task end, not per chunk).
- **EPG programme parse now streams through PostgreSQL staging instead
of holding the full catalogue in Python.** `parse_programs_for_source`
writes parsed rows into a session-scoped temp table in batches
(`_EPG_PARSE_BATCH_SIZE=2500`), then atomically swaps them into
`ProgramData` with batched `DELETE ... RETURNING` + `INSERT`
(`_EPG_SWAP_BATCH_SIZE=5000`) so Postgres never materializes the entire
guide in one statement. Peak Celery memory during large XMLTV refreshes
drops sharply compared with building a monolithic in-memory list before
bulk insert. The byte-offset programme index build is deferred until
after the swap completes so index construction no longer competes with
parse for memory and I/O. `refresh_epg_data` closes its DB connection in
`finally`, and `build_programme_index_task` is registered as a
memory-intensive Celery task. SQLite/dev installs keep an in-memory
fallback path.
- **Pooled PostgreSQL connections now rotate on a bounded lifetime.**
psycopg3 client-side cache grows on handles kept open indefinitely by
`django-db-geventpool`; recycling uWSGI workers would interrupt live
streams. A thin custom backend
(`dispatcharr.db.backends.postgresql_psycopg3`) closes and replaces pool
connections after `DATABASE_POOL_CONN_MAX_LIFETIME` seconds (default
600, env-overridable; set `0` to disable) on checkout and return while
preserving warm-pool reuse within the window. (Fixes
[#&#8203;1343](https://redirect.github.com/Dispatcharr/Dispatcharr/issues/1343))
- **Schedules Direct refresh only fetches guide data for mapped
channels.** Schedule MD5 checks and schedule downloads now target mapped
lineup stations instead of the entire lineup, and schedule MD5 cache for
unmapped stations is pruned each refresh. Unmapped lineup entries no
longer trigger wasted schedule API calls when their MD5 changes.
- **EPG auto-match memory and throughput improvements.**
- Single-channel matching streams active EPG rows and keeps only the
best match plus the top 20 candidates in memory; ML validates at most 21
names per channel instead of embedding the full catalog.
- Strong fuzzy matches (≥75% single channel, ≥80% bulk) skip ML
entirely, avoiding a \~500MB PyTorch load when the fuzzy result is
already reliable.
- Bulk matching uses a single fuzzy pass per channel instead of scanning
the full catalog twice for best match and top candidates.
- Bulk exact `tvg_id` / Gracenote matching uses an in-memory index built
alongside the EPG catalog (`build_epg_matching_catalog()`), giving O(1)
lookups with no extra database queries.
- Bulk match apply uses batched queries (two fetches plus `bulk_update`)
instead of one `EPGData.objects.get()` per matched channel.
- EPG normalization settings are cached once per matching run, avoiding
repeated `CoreSettings` reads when normalizing thousands of names.

##### Fixed

- **Live proxy channels could remain running with no clients after
disconnect.** `stop_channel` called `log_system_event('channel_stop')`
synchronously before local cleanup and Redis key deletion; Connect
integrations or DB event writes on that path could block teardown
indefinitely while the cleanup thread kept refreshing metadata TTL for a
stale `stream_buffers` entry. Teardown now signals shutdown
(`buffer.stopping`), runs model `release_stream()` and Redis key
deletion, releases ownership, stops ffmpeg/output managers and local
buffers, and only then logs the stop event asynchronously. Metadata TTL
refresh skips channels mid-shutdown and non-owned channels; a stuck-stop
watchdog forces cleanup if `stop_channel` does not return within \~10s
(or 2× `channel_shutdown_delay`, whichever is greater). Stream buffers
ignore late `add_chunk()` writes once shutdown begins (`buffer.stopping`
set at teardown start).
- **Client reconnect during channel teardown could wedge the channel
across uWSGI workers.** The disconnect path called
`proxy_server.stop_channel()` directly, so other workers were not
notified and reconnecting clients could attach while ownership was
released on the owner worker. The cleanup thread then re-acquired
expired ownership and looped on orphaned clients while the upstream
connection stayed open. All lifecycle stops now go through coordinated
Redis teardown (`channel_stopping` flag, metadata `stopping` state, and
`CHANNEL_STOP` pubsub). New stream requests are rejected with `503
Retry-After` only during active teardown (not during the post-disconnect
shutdown delay grace period); `initialize_channel()` and ownership
re-acquisition refuse to proceed in those states; non-owner workers
clean local resources only on pubsub; and orphaned-client sweeps force
cleanup when teardown is already active. (Fixes
[#&#8203;1342](https://redirect.github.com/Dispatcharr/Dispatcharr/issues/1342))
- **Orphaned upstream threads kept writing Redis after teardown.**
Partial cleanup could remove a channel from `stream_managers` while the
`stream-{uuid}` OS thread kept running, so orphan metadata sweeps only
deleted Redis keys and chunks/metadata were immediately recreated (bare
`total_bytes` hash with TTL -1). Stream managers now stop upstream when
ownership is lost, orphan cleanup stops local ffmpeg/stream threads even
when registry entries are gone (`_live_stream_managers` tracks managers
until the thread exits), and forced recovery stops processes before
Redis deletion instead of dropping dict entries without calling
`stop()`.
- **Rapid channel switching could leave bare `buffer:index` keys in
Redis.** `buffer.stop()` flushed a final partial chunk via `INCR` during
teardown, creating a persistent index key (TTL -1) after chunk keys
expired; under load overlapping disconnect and cleanup-thread stops
could race on `_stop_local_stream_activity`, blocking on ffmpeg stderr
join before `_clean_redis_keys` ever ran. Teardown no longer writes to
Redis from `buffer.stop()`, disconnect uses coordinated stop only (no
duplicate upstream stop), model `release_stream()` runs before Redis
keys are scanned/deleted (so `profile_connections` counters are not left
stuck), ownership is released after Redis cleanup but before the
blocking local ffmpeg stop, and a `finally` block guarantees Redis
cleanup if local teardown raises.
- **Live proxy could leak geventpool DB checkouts outside HTTP
requests.** With `django-db-geventpool`, `connection.close()` returns
handles to the per-worker pool (`MAX_CONNS=8`); without it, greenlets
and OS threads keep connections checked out until the pool blocks on
`pool.get()`. Proxy paths that touch the ORM outside Django's request
cycle now call `close_old_connections()` after work completes:
`_clean_redis_keys()`, profile lookup in
`_establish_transcode_connection()` before spawning ffmpeg, and fMP4
client disconnect cleanup when releasing streams (TS disconnect relies
on `log_system_event()`). (Fixes
[#&#8203;1345](https://redirect.github.com/Dispatcharr/Dispatcharr/issues/1345))
- **System events could block callers on Connect and plugin handlers.**
`log_system_event()` ran Connect subscriptions and plugin `"events"`
hooks synchronously after the DB write, so slow integrations could stall
live-proxy and streaming paths even when inserting the event row was
fast. Connect/plugin dispatch now runs on a separate gevent when the hub
is available (synchronously in Celery workers without a hub).
`log_system_event()` and `dispatch_event_system()` also call
`close_old_connections()` in `finally` blocks so integration work does
not leave pool slots checked out on the caller or dispatch greenlet.
- **Plugins could leak geventpool DB checkouts after UI or Connect event
runs.** Third-party plugins run inline on uWSGI greenlets (manual
actions and Connect `"events"` hooks) with no guaranteed connection
cleanup at the plugin boundary. `PluginManager.run_action()` and
`stop_plugin()` now call `close_old_connections()` in a `finally` block
so each action returns its pool slot whether the plugin succeeds or
raises.
- **Connect events repeatedly queried the full plugin catalog during
streaming.** `trigger_event()` called `list_plugins()` on every
`client_connect` / `client_disconnect`, loading all `PluginConfig` rows
and sometimes hitting plugin-repo work even when no plugin subscribed to
the event. Dispatch now walks the in-memory registry via
`iter_actions_for_event()`, returns immediately when no handlers exist,
and runs a single batched `enabled` lookup for matching plugins only.
Failed plugin actions are logged per handler instead of aborting the
rest.
- **Plugin discovery left idle Postgres backends after worker boot.**
`discover_plugins()` runs outside Django's request cycle during uWSGI
and Celery startup; it now calls `close_old_connections()` in a
`finally` block so bootstrap `PluginConfig` queries return their pool
slot instead of appearing as long-lived idle connections in
`pg_stat_activity`.
- **VOD proxy could leak geventpool DB checkouts during playback and
stats updates.** `stream_vod()` ran ORM lookups for content and M3U
profiles, then returned a long-lived `StreamingHttpResponse` without
releasing the checkout, so each movie/episode stream could hold a pool
slot for its full duration. Background VOD stats refresh
(`build_vod_stats_data()`, triggered on start/stop and by the admin
stats API) also queried movie, episode, and profile rows from daemon
threads with no cleanup. `stream_vod()` now calls
`close_old_connections()` before handing off to the streaming generator,
and `build_vod_stats_data()` releases its checkout in a `finally` block.
- **Channel shutdown delay did not reset after a reconnect within the
grace period.** `handle_client_disconnect()` used a fixed
`gevent.sleep(shutdown_delay)` from the first last-client disconnect. If
a client reconnected and disconnected again during the delay, an earlier
disconnect handler could still stop the channel on the original timer
instead of waiting the full delay from the latest disconnect. Shutdown
now polls Redis (`last_client_disconnect` timestamp and client count) so
concurrent disconnect handlers and multi-worker reconnects always honour
the latest disconnect time.
- **Zombie ffmpeg could survive owner-lock expiry and orphan Redis
sweeps.** When the 30s owner lock lapsed under single-worker load,
disconnect handling treated the worker as non-owner so coordinated stop
never ran, while ffmpeg kept writing and the orphan sweeper only deleted
Redis keys (recreating them immediately). Disconnect now re-acquires
ownership when local upstream is still active, stops locally when the
last client leaves without a lock, orphan cleanup stops local ffmpeg
before Redis deletion via `_has_local_upstream_activity`, re-init stops
lingering upstream before starting a duplicate thread, and
`is_channel_teardown_active` includes channels mid-`stop_channel` on
this worker so rapid reconnect gets 503 during teardown.
- **Stale `channel_stream` Redis keys after a channel stopped could skip
connection accounting on retune.** On `dev`, `get_stream()` reused any
existing `channel_stream` / `stream_profile` assignment without
reserving a new slot. If those keys were left behind after a stop, the
next tune-in could reach the provider without incrementing Redis
counters. `get_stream()` now releases stale assignments when proxy
metadata shows the channel is inactive, then reserves fresh slots.
- **EPG auto-match reliability fixes.**
- Memory could spike to multiple GB on large EPG sources when building a
full in-memory catalog before fuzzy matching; single-channel matching
now streams rows and bounds ML work to a small candidate set.
- Wrong channel assignments from global ML similarity; ML validation now
checks the fuzzy best match (or top fuzzy candidates as a last resort)
instead of scoring the entire catalog.
- Channel form auto-match spinner could stick after errors or early task
exits; all single-channel outcomes now push a WebSocket result, and the
UI clears loading state after a 3-minute timeout.
- Bulk auto-match completion no longer calls `batch-set-epg` from the
WebSocket handler, which had been re-applying every match and queueing
redundant `parse_programs_for_tvg_id` tasks even when assignments were
unchanged.
- **Schedules Direct lineup search country dropdown.** The country list
was fetched directly from the SD API in the browser, which failed due to
CORS and silently fell back to a 14-country hardcoded list. Countries
are now included in the `GET sd-lineups` response (server-side fetch
with proper User-Agent) so the full SD country list populates correctly.
— Thanks [@&#8203;sethwv](https://redirect.github.com/sethwv)
- **Schedules Direct program poster proxy omitted User-Agent on image
requests.** The poster endpoint authenticated with SD correctly but
fetched images with only the `token` header, which violates SD's API
requirements (error 1003). Image requests now include the standard
`Dispatcharr/{version}` User-Agent via `dispatcharr_http_headers()`.
- **Schedules Direct guide data missing after mapping a channel.**
Lineup refreshes cached schedule MD5s for all stations, but
`ProgramData` was only written for mapped channels. Mapping a channel
later could leave MD5s looking unchanged so schedules were skipped and
the channel had no guide until dates rolled outside the cached window.
Refreshes now backfill fetch-window dates that lack `ProgramData`
(including newly mapped stations with stale cache), fetch program
metadata when no local `ProgramData` exists for a `programID`, and clean
up orphaned `ProgramData` on unmapped `EPGData` entries. — Thanks
[@&#8203;sethwv](https://redirect.github.com/sethwv)
- **Schedules Direct guide fetch on channel map.** Mapping a channel (or
bulk-assigning EPG) now triggers a targeted guide fetch for that
`EPGData` entry—mirroring XMLTV's `parse_programs_for_tvg_id`
flow—without waiting for the next full source refresh. Skips the fetch
when `ProgramData` already exists so additional channels sharing the
same `tvg-id` do not trigger redundant API calls. Bulk assignment of
three or more SD stations without guide data on the same source queues
one batched mapped-station fetch instead of separate per-station API
sessions. Concurrent batch and single-EPG fetches coordinate via
source-level locks with deferred retries so mappings are not dropped and
overlapping SD API sessions are avoided when possible.
- **Auto-sync numbering modes now read only the fields each mode's UI
exposes.** After the auto-sync overhaul, switching between Provider,
Next Available, and Fixed modes left stale `auto_sync_channel_start` /
`auto_sync_channel_end` values in the database while each mode's UI only
edits a subset of those fields. Sync treated the hidden values as
authoritative in every mode, which discarded valid provider numbers
(floored at an auto-computed start), capped Next Available at a stale
End, and ran range-enforcement deletes against provider- and
next-available-numbered channels. Provider mode now honors `stream_chno`
verbatim when free (Start/End bound only the fallback for numberless
streams); Next Available ignores End; overflow-delete runs in Fixed mode
only. Duplicate or already-taken provider numbers fall back to a free
slot instead of being dropped or overwriting an existing channel.
Provider mode's Start # field now drops End when it would invert the
fallback range (matching Fixed mode). (Closes
[#&#8203;1273](https://redirect.github.com/Dispatcharr/Dispatcharr/issues/1273))
— Thanks [@&#8203;CodeBormen](https://redirect.github.com/CodeBormen)

</details>

---

### Configuration

📅 **Schedule**: (UTC)

- 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:eyJjcmVhdGVkSW5WZXIiOiI0My4xMzAuMSIsInVwZGF0ZWRJblZlciI6IjQzLjEzMC4xIiwidGFyZ2V0QnJhbmNoIjoibWFzdGVyIiwibGFiZWxzIjpbImFwcC9kaXNwYXRjaGFyciIsImF1dG9tZXJnZSIsInJlbm92YXRlL2NvbnRhaW5lciIsInR5cGUvbWlub3IiXX0=-->
2026-06-17 00:51:13 +02:00
TrueCharts Bot 7a9f7909f2 chore(adminer): update image adminer digest to 9ead7e1 (#49187)
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| adminer | digest | `af4b73d` → `9ead7e1` |

---

> [!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**: (UTC)

- 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:eyJjcmVhdGVkSW5WZXIiOiI0My4xMzAuMSIsInVwZGF0ZWRJblZlciI6IjQzLjEzMC4xIiwidGFyZ2V0QnJhbmNoIjoibWFzdGVyIiwibGFiZWxzIjpbImFwcC9hZG1pbmVyIiwiYXV0b21lcmdlIiwicmVub3ZhdGUvY29udGFpbmVyIiwidHlwZS9kaWdlc3QiXX0=-->
2026-06-17 00:51:01 +02:00
TrueCharts Bot f0431430b2 fix(metube): update image ghcr.io/alexta69/metube 2026.06.13 → 2026.06.16 (#49201)
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| ghcr.io/alexta69/metube | patch | `b182059` → `bdb6992` |

---

> [!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**: (UTC)

- 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:eyJjcmVhdGVkSW5WZXIiOiI0My4xMzAuMSIsInVwZGF0ZWRJblZlciI6IjQzLjEzMC4xIiwidGFyZ2V0QnJhbmNoIjoibWFzdGVyIiwibGFiZWxzIjpbImFwcC9tZXR1YmUiLCJhdXRvbWVyZ2UiLCJyZW5vdmF0ZS9jb250YWluZXIiLCJ0eXBlL3BhdGNoIl19-->
2026-06-17 00:50:20 +02:00
TrueCharts Bot 5b2c8b1ab8 chore(kdenlive): update image lscr.io/linuxserver/kdenlive digest to e87b6d5 (#49193)
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| lscr.io/linuxserver/kdenlive | digest | `d7ff6d0` → `e87b6d5` |

---

> [!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**: (UTC)

- 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:eyJjcmVhdGVkSW5WZXIiOiI0My4xMzAuMSIsInVwZGF0ZWRJblZlciI6IjQzLjEzMC4xIiwidGFyZ2V0QnJhbmNoIjoibWFzdGVyIiwibGFiZWxzIjpbImFwcC9rZGVubGl2ZSIsImF1dG9tZXJnZSIsInJlbm92YXRlL2NvbnRhaW5lciIsInR5cGUvZGlnZXN0Il19-->
2026-06-17 00:49:34 +02:00
TrueCharts Bot a54262618d chore(valkey): update image docker.io/bitnamisecure/valkey digest to bcb8664 (#49196)
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| docker.io/bitnamisecure/valkey | digest | `5ce04fc` → `bcb8664` |

---

> [!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**: (UTC)

- 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:eyJjcmVhdGVkSW5WZXIiOiI0My4xMzAuMSIsInVwZGF0ZWRJblZlciI6IjQzLjEzMC4xIiwidGFyZ2V0QnJhbmNoIjoibWFzdGVyIiwibGFiZWxzIjpbImFwcC92YWxrZXkiLCJhdXRvbWVyZ2UiLCJyZW5vdmF0ZS9jb250YWluZXIiLCJ0eXBlL2RpZ2VzdCJdfQ==-->
2026-06-17 00:48:38 +02:00
TrueCharts Bot a30f71a328 chore(webtop): update webtop (#49197) 2026-06-17 00:47:41 +02:00
TrueCharts Bot 6dd8f2eb28 chore(filestash): update image docker.io/machines/filestash digest to 66349d5 (#49190)
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| docker.io/machines/filestash | digest | `b6a9052` → `66349d5` |

---

> [!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**: (UTC)

- 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:eyJjcmVhdGVkSW5WZXIiOiI0My4xMzAuMSIsInVwZGF0ZWRJblZlciI6IjQzLjEzMC4xIiwidGFyZ2V0QnJhbmNoIjoibWFzdGVyIiwibGFiZWxzIjpbImFwcC9maWxlc3Rhc2giLCJhdXRvbWVyZ2UiLCJyZW5vdmF0ZS9jb250YWluZXIiLCJ0eXBlL2RpZ2VzdCJdfQ==-->
2026-06-17 00:47:37 +02:00
TrueCharts Bot 264e016722 chore(nextcloud): update image docker.io/clamav/clamav digest to 8df57e5 (#49179)
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
|
[docker.io/clamav/clamav](https://redirect.github.com/Cisco-Talos/clamav.git)
([source](https://redirect.github.com/Cisco-Talos/clamav)) | digest |
`652990c` → `8df57e5` |

---

> [!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**: (UTC)

- 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:eyJjcmVhdGVkSW5WZXIiOiI0My4xMzAuMSIsInVwZGF0ZWRJblZlciI6IjQzLjEzMC4xIiwidGFyZ2V0QnJhbmNoIjoibWFzdGVyIiwibGFiZWxzIjpbImFwcC9uZXh0Y2xvdWQiLCJhdXRvbWVyZ2UiLCJyZW5vdmF0ZS9jb250YWluZXIiLCJ0eXBlL2RpZ2VzdCJdfQ==-->
2026-06-16 18:57:42 +00:00
TrueCharts Bot f6d05c01c8 chore(drawio): update image docker.io/jgraph/drawio digest to 9485da8 (#49177)
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [docker.io/jgraph/drawio](https://www.drawio.com)
([source](https://redirect.github.com/jgraph/docker-drawio)) | digest |
`209f3d1` → `9485da8` |

---

> [!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**: (UTC)

- 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:eyJjcmVhdGVkSW5WZXIiOiI0My4xMzAuMSIsInVwZGF0ZWRJblZlciI6IjQzLjEzMC4xIiwidGFyZ2V0QnJhbmNoIjoibWFzdGVyIiwibGFiZWxzIjpbImFwcC9kcmF3aW8iLCJhdXRvbWVyZ2UiLCJyZW5vdmF0ZS9jb250YWluZXIiLCJ0eXBlL2RpZ2VzdCJdfQ==-->
2026-06-16 18:53:22 +00:00
TrueCharts Bot d4c150fc1f chore(librespeed): update image ghcr.io/linuxserver/librespeed digest to 4972660 (#49178) 2026-06-16 18:47:28 +02:00
TrueCharts Bot 7f5ff5034e feat(blocky): update image ghcr.io/0xerr0r/blocky v0.31.0 → v0.32.0 (#49184) 2026-06-16 18:47:25 +02:00
TrueCharts Bot d58eaf2e78 feat(avm-exporter): update image docker.io/pdreker/fritz_exporter 3.1.2 → 3.2.0 (#49183) 2026-06-16 18:47:16 +02:00
TrueCharts Bot 452053283e chore(webtop): update webtop (#49181) 2026-06-16 18:47:13 +02:00
TrueCharts Bot 2f27a026a4 feat(n8n): update image ghcr.io/n8n-io/n8n 2.26.4 → 2.27.0 (#49185)
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)) | minor | `ddb5204` →
`a5b4217` |

---

> [!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>n8n-io/n8n (ghcr.io/n8n-io/n8n)</summary>

###
[`v2.27.0`](https://redirect.github.com/n8n-io/n8n/blob/HEAD/CHANGELOG.md#2270-2026-06-16)

##### Bug Fixes

- **API:** Make conditional credential fields optional instead of
forbidden
([#&#8203;32010](https://redirect.github.com/n8n-io/n8n/issues/32010))
([0ab043c](https://redirect.github.com/n8n-io/n8n/commit/0ab043c8bb3c0ccdb21c57a885d454eabaacbb35))
- Bump task-runner-launcher to 1.4.7 to clear stdlib CVEs
([#&#8203;32095](https://redirect.github.com/n8n-io/n8n/issues/32095))
([4d974e3](https://redirect.github.com/n8n-io/n8n/commit/4d974e38efaed7e3e7d869fd3490b5cfa2465b51))
- Computer use disconnect status on client stop
([#&#8203;32059](https://redirect.github.com/n8n-io/n8n/issues/32059))
([5c61d0e](https://redirect.github.com/n8n-io/n8n/commit/5c61d0e65795d3bb92aaac1f3528c2dec873bd8f))
- **core:** Add RFC 8707 resource parameter to client-side OAuth flow
([#&#8203;30924](https://redirect.github.com/n8n-io/n8n/issues/30924))
([04b4a79](https://redirect.github.com/n8n-io/n8n/commit/04b4a793cca1a99de5a8fc7bd5c3f6b6efb4b0d4))
- **core:** Allow publishing workflows that use private credentials
([#&#8203;32306](https://redirect.github.com/n8n-io/n8n/issues/32306))
([27d8426](https://redirect.github.com/n8n-io/n8n/commit/27d84260c66479b8b040cea922ed7d6a6261864f))
- **core:** Enforce API key scope/endpoint parity in public API
([#&#8203;32231](https://redirect.github.com/n8n-io/n8n/issues/32231))
([58999f0](https://redirect.github.com/n8n-io/n8n/commit/58999f030fa08e640ad56a38fd05b7e3b52589c0))
- **core:** Ensure workflows that fail to activate are removed from
active, preventing unintended executions
([#&#8203;31767](https://redirect.github.com/n8n-io/n8n/issues/31767))
([79d1695](https://redirect.github.com/n8n-io/n8n/commit/79d1695c42668a1ddd503e7f6fb73ce417d63400))
- **core:** Fix workers processing queued jobs before module
initialization completes
([#&#8203;32145](https://redirect.github.com/n8n-io/n8n/issues/32145))
([506461f](https://redirect.github.com/n8n-io/n8n/commit/506461ff7ae44915b1937f212a8e04ea7add5ffb))
- **core:** Hide resource URL for synthetic OAuth2 credentials for MCP
registry tools
([#&#8203;32351](https://redirect.github.com/n8n-io/n8n/issues/32351))
([51fe9ff](https://redirect.github.com/n8n-io/n8n/commit/51fe9ff8554220d70d648553413d8c47f98eef30))
- **core:** Include indexes and TOAST in Postgres data table size
([#&#8203;31606](https://redirect.github.com/n8n-io/n8n/issues/31606))
([c9f4aa8](https://redirect.github.com/n8n-io/n8n/commit/c9f4aa83c4048a717833fbd65ce60ac9a1f621ab))
- **core:** Preserve trailing letter-less text in toSentenceCase() exp…
([#&#8203;32242](https://redirect.github.com/n8n-io/n8n/issues/32242))
([7a77898](https://redirect.github.com/n8n-io/n8n/commit/7a778985c153b16b244c7adef0d8f989b1a70a86))
- **core:** Prevent nodes from throwing `context.getNodeParameter is not
a function` when n8n is installed via npm
([#&#8203;32123](https://redirect.github.com/n8n-io/n8n/issues/32123))
([a254a89](https://redirect.github.com/n8n-io/n8n/commit/a254a89d498ccf345b9067ef515b2123ff9e08a2))
- **core:** Prevent pollers from starting executions for old workflow
versions when registered while in-flight
([#&#8203;32006](https://redirect.github.com/n8n-io/n8n/issues/32006))
([21c786c](https://redirect.github.com/n8n-io/n8n/commit/21c786c8a1ed54f6690b213aa35bcb74cf13b99e))
- **core:** Prevent post-execution writes against closed pool on worker
shutdown
([#&#8203;31915](https://redirect.github.com/n8n-io/n8n/issues/31915))
([3059088](https://redirect.github.com/n8n-io/n8n/commit/3059088ab65248c2a708bb899872c33aacca40de))
- **core:** Prevent queue recovery from marking waiting executions as
crashed
([#&#8203;32316](https://redirect.github.com/n8n-io/n8n/issues/32316))
([c4c0e91](https://redirect.github.com/n8n-io/n8n/commit/c4c0e91807549793fab1f4cb339641d9c832dd8d))
- **core:** Propagate sub-workflow errors to parent after wait resume
([#&#8203;31927](https://redirect.github.com/n8n-io/n8n/issues/31927))
([6afba57](https://redirect.github.com/n8n-io/n8n/commit/6afba57091dd1cbdc4dccf0a8fdd5f86508c555d))
- **core:** Remove user:enforceMfa from public API key scopes
([#&#8203;32223](https://redirect.github.com/n8n-io/n8n/issues/32223))
([3c39a0e](https://redirect.github.com/n8n-io/n8n/commit/3c39a0e336e9ebbeb10b2c4398e4924c2acb1ae6))
- **core:** Retry role mapping create order conflicts
([#&#8203;30687](https://redirect.github.com/n8n-io/n8n/issues/30687))
([448c114](https://redirect.github.com/n8n-io/n8n/commit/448c114127aa6fdec5e72e5042cdadb07c0324dc))
- **core:** Surface a final response when a builder follow-up completes
silently
([#&#8203;31986](https://redirect.github.com/n8n-io/n8n/issues/31986))
([29abe78](https://redirect.github.com/n8n-io/n8n/commit/29abe781d53475f92b6edde7e786a666d67ee22b))
- **core:** Throw a clear error for $evaluateExpression in the Code node
under secure mode
([#&#8203;31721](https://redirect.github.com/n8n-io/n8n/issues/31721))
([fbad049](https://redirect.github.com/n8n-io/n8n/commit/fbad049db972d850e09154ee18f2ada8f00a38ad))
- **core:** Upgrade nodemailer to 8.0.10 (DEVP-401)
([#&#8203;31998](https://redirect.github.com/n8n-io/n8n/issues/31998))
([c339095](https://redirect.github.com/n8n-io/n8n/commit/c339095c47247f2e38c054fa9f835206a95d2aa4))
- **core:** Use npm's bundled node-gyp for isolated-vm Docker rebuild
([#&#8203;32158](https://redirect.github.com/n8n-io/n8n/issues/32158))
([67cdf44](https://redirect.github.com/n8n-io/n8n/commit/67cdf44fe71134ba6b549e663f11d192e627e310))
- Correct Form URL Encoded label in HTTP Request node
([#&#8203;31852](https://redirect.github.com/n8n-io/n8n/issues/31852))
([ff7f35e](https://redirect.github.com/n8n-io/n8n/commit/ff7f35eefcd3bce9728b1312d39ec0b1b0acbeb0))
- **editor:** Agent builder progress log lines visual glitches
([#&#8203;32077](https://redirect.github.com/n8n-io/n8n/issues/32077))
([f9496c2](https://redirect.github.com/n8n-io/n8n/commit/f9496c2397f9e7a52f8b5abef77ea320f47e1b20))
- **editor:** Auto-reload editor on stale Vite chunk preload error
([#&#8203;31747](https://redirect.github.com/n8n-io/n8n/issues/31747))
([2f3ebb6](https://redirect.github.com/n8n-io/n8n/commit/2f3ebb620cf7cd16fcedaa94a1be6ec61f66626b))
- **editor:** Close credential modal after successful setup
([#&#8203;31925](https://redirect.github.com/n8n-io/n8n/issues/31925))
([7b2c722](https://redirect.github.com/n8n-io/n8n/commit/7b2c722182d741bb455db22b46eacfea6390a2c9))
- **editor:** Harden credential modal against async hangs
([#&#8203;31292](https://redirect.github.com/n8n-io/n8n/issues/31292))
([037bdb2](https://redirect.github.com/n8n-io/n8n/commit/037bdb216f2c942e049e1fcca61b22ee8cc2b2b0))
- **editor:** Hide template setup button once setup is complete
([#&#8203;31912](https://redirect.github.com/n8n-io/n8n/issues/31912))
([af9caff](https://redirect.github.com/n8n-io/n8n/commit/af9caffc7e1fd81aa6e3c41b5231f4d56cfa3bf6))
- **editor:** Insert instance ai prompt suggestions instead of submit
([#&#8203;32008](https://redirect.github.com/n8n-io/n8n/issues/32008))
([3386aa8](https://redirect.github.com/n8n-io/n8n/commit/3386aa81ccbfa2ed21ff7ac2b00369fb5a1376c7))
- **editor:** Make workflow settings and actions menu work in the AI
artifact view
([#&#8203;32082](https://redirect.github.com/n8n-io/n8n/issues/32082))
([5a28683](https://redirect.github.com/n8n-io/n8n/commit/5a28683c7811530a7bbcfcfa4aebc0223efe5f47))
- **editor:** Mute Never expiration in API keys table
([#&#8203;32224](https://redirect.github.com/n8n-io/n8n/issues/32224))
([115d9c7](https://redirect.github.com/n8n-io/n8n/commit/115d9c7597c1d7c376046df1963f0eb1e66450b7))
- **editor:** Open sticky note color picker from context menu
([#&#8203;31917](https://redirect.github.com/n8n-io/n8n/issues/31917))
([0685db8](https://redirect.github.com/n8n-io/n8n/commit/0685db8ff6dabd5121a6b0adcec9a53fb58b8b75))
- **editor:** Preserve loaded options value when navigating between
nodes
([#&#8203;31946](https://redirect.github.com/n8n-io/n8n/issues/31946))
([f6e5705](https://redirect.github.com/n8n-io/n8n/commit/f6e57059caf420a03bc638bdcf94a8085c9ff94f))
- **editor:** Refresh Instance AI workflow preview on update and
restore-version
([#&#8203;31904](https://redirect.github.com/n8n-io/n8n/issues/31904))
([f2c764a](https://redirect.github.com/n8n-io/n8n/commit/f2c764a804f1efb458363bcc2b6f30d4cb1b0b67))
- **editor:** Remove 'Building your agent' loading state and go straight
to full-page builder
([#&#8203;32120](https://redirect.github.com/n8n-io/n8n/issues/32120))
([d553602](https://redirect.github.com/n8n-io/n8n/commit/d55360245a0cc5091b964f6cdffcc8bf9084f0cc))
- **editor:** Restore cross-origin notification after OAuth popup
completes
([#&#8203;32087](https://redirect.github.com/n8n-io/n8n/issues/32087))
([090fa9e](https://redirect.github.com/n8n-io/n8n/commit/090fa9e84b8fe8b0dc5d714c65835b0ee4689e0e))
- **editor:** Scope publish history scrollbar to timeline sidebar
([#&#8203;31661](https://redirect.github.com/n8n-io/n8n/issues/31661))
([497226e](https://redirect.github.com/n8n-io/n8n/commit/497226e8945d780262af409565ef546b29b89299))
- **editor:** Send only credential id when authorizing OAuth credentials
([#&#8203;31926](https://redirect.github.com/n8n-io/n8n/issues/31926))
([4f10853](https://redirect.github.com/n8n-io/n8n/commit/4f10853a1585663dbc76ce97a3b3bb53361b1301))
- **editor:** Show AI assistant error when stream ends with unparseable
content
([#&#8203;32068](https://redirect.github.com/n8n-io/n8n/issues/32068))
([a7b910f](https://redirect.github.com/n8n-io/n8n/commit/a7b910f3653093d9550234d48085afe6012bd325))
- **editor:** Show an error when imported JSON is not a valid workflow
([#&#8203;31782](https://redirect.github.com/n8n-io/n8n/issues/31782))
([0731871](https://redirect.github.com/n8n-io/n8n/commit/073187137ac5aced3cc7514526c968d742696def))
- **editor:** Show correct project in workflow breadcrumb for projectId
links
([#&#8203;32103](https://redirect.github.com/n8n-io/n8n/issues/32103))
([fd23d4d](https://redirect.github.com/n8n-io/n8n/commit/fd23d4da56ed35bc1fceb5503011ff899d7a4578))
- **editor:** Show run data of stopped executions in scaling mode
([#&#8203;32142](https://redirect.github.com/n8n-io/n8n/issues/32142))
([889769a](https://redirect.github.com/n8n-io/n8n/commit/889769a34dc5f652e8fa05c15e1a33719ee05081))
- **editor:** Skip external-secrets fetch on Community Edition
([#&#8203;31906](https://redirect.github.com/n8n-io/n8n/issues/31906))
([f6518a5](https://redirect.github.com/n8n-io/n8n/commit/f6518a5780ea6610dd98de38d83a773db5caadfc))
- **editor:** Stop showing deleted resources in dependency pill
([#&#8203;32106](https://redirect.github.com/n8n-io/n8n/issues/32106))
([4e10568](https://redirect.github.com/n8n-io/n8n/commit/4e105682ac5b92ab4ec7c81a71e087a6c227aea1))
- **editor:** Truncate long API key labels in settings table
([#&#8203;32232](https://redirect.github.com/n8n-io/n8n/issues/32232))
([607634a](https://redirect.github.com/n8n-io/n8n/commit/607634ad274b956e413850bf7ba93b80ed1d039d))
- **editor:** Use workflow-scoped credential fetch in node credential
picker
([#&#8203;31938](https://redirect.github.com/n8n-io/n8n/issues/31938))
([8cd67d3](https://redirect.github.com/n8n-io/n8n/commit/8cd67d300d57563da9f1cc867c688db44d3b31e2))
- Fix 4 security issues in
[@&#8203;grpc/grpc-js](https://redirect.github.com/grpc/grpc-js), hono
([#&#8203;32281](https://redirect.github.com/n8n-io/n8n/issues/32281))
([e292779](https://redirect.github.com/n8n-io/n8n/commit/e292779f1a739b6188efac25f171a8da913ce16b))
- Fix security issue in shell-quote via minor version upgrade from 1.8.3
to 1.8.4 (SEC-809)
([#&#8203;32107](https://redirect.github.com/n8n-io/n8n/issues/32107))
([131e4ea](https://redirect.github.com/n8n-io/n8n/commit/131e4ea9d6a7046b36f64a483ea4fa39f83fa845))
- **Http Request Node:** Preserve multipart filenames for binary uploads
([#&#8203;29022](https://redirect.github.com/n8n-io/n8n/issues/29022))
([f412820](https://redirect.github.com/n8n-io/n8n/commit/f412820f522ab8cc3aa42097b618b046cb000288))
- **Kafka Node:** Distinguish the Schema Registry credential from the
Kafka credential
([#&#8203;32335](https://redirect.github.com/n8n-io/n8n/issues/32335))
([41ee940](https://redirect.github.com/n8n-io/n8n/commit/41ee9408813ba061546ebe59671fe99257558ea1))
- Move unstable PURL-pinned overrides to version-agnostic byName
([#&#8203;31985](https://redirect.github.com/n8n-io/n8n/issues/31985))
([e77dd74](https://redirect.github.com/n8n-io/n8n/commit/e77dd74a70e105f6099a001eeefed5df3023ab0f))
- **Oracle Database Node:** Support OUT bind parameters
([#&#8203;30083](https://redirect.github.com/n8n-io/n8n/issues/30083))
([d3406dd](https://redirect.github.com/n8n-io/n8n/commit/d3406dd75f222d4e2bae46dc7906cb14f6fc6f76))
- Require justified mutants in mutation-health gate
([#&#8203;32340](https://redirect.github.com/n8n-io/n8n/issues/32340))
([b3a34fc](https://redirect.github.com/n8n-io/n8n/commit/b3a34fcd81659f6e33b5857a8c68816f7e105320))
- Set task status to 'cancelled' in BackgroundTaskManager.cancelAll()
([#&#8203;31764](https://redirect.github.com/n8n-io/n8n/issues/31764))
([5733fb7](https://redirect.github.com/n8n-io/n8n/commit/5733fb794b3de6bb048ef48f91747075a6c0a896))
- Store messages even if stream is undrained
([#&#8203;32119](https://redirect.github.com/n8n-io/n8n/issues/32119))
([f2da1d1](https://redirect.github.com/n8n-io/n8n/commit/f2da1d14bbd8b210e0d2f9f95387372c1e00bece))

##### Features

- **Calendly Trigger Node:** Deprecate API key auth and default to
OAuth2
([#&#8203;28367](https://redirect.github.com/n8n-io/n8n/issues/28367))
([3f88c6e](https://redirect.github.com/n8n-io/n8n/commit/3f88c6e61f948e19f4175521619cab8db2d899af))
- Computer use supports reading local pdf and image files
([#&#8203;30704](https://redirect.github.com/n8n-io/n8n/issues/30704))
([b810bfd](https://redirect.github.com/n8n-io/n8n/commit/b810bfde435036d93f640f2a2025b5c95a521bc9))
- **core:** Add cred-filename-against-convention community node lint
rule
([#&#8203;32356](https://redirect.github.com/n8n-io/n8n/issues/32356))
([e436e1a](https://redirect.github.com/n8n-io/n8n/commit/e436e1a6c9f7577095605b506dfada7ee0bfda0f))
- **core:** Add explore\_node\_resources MCP tool
([#&#8203;31018](https://redirect.github.com/n8n-io/n8n/issues/31018))
([9373433](https://redirect.github.com/n8n-io/n8n/commit/9373433aae472444314334bafd963274fcbae3aa))
- **core:** Add Instance AI builder planning guardrails
([#&#8203;31984](https://redirect.github.com/n8n-io/n8n/issues/31984))
([63cdd9f](https://redirect.github.com/n8n-io/n8n/commit/63cdd9f777b859e4c6d0e835f2b13014d2e39976))
- **core:** Add instance settings env telemetry
([#&#8203;31949](https://redirect.github.com/n8n-io/n8n/issues/31949))
([3753c34](https://redirect.github.com/n8n-io/n8n/commit/3753c34e0adebdefc24c6b43dc4c3d6a5b88ebac))
- **core:** Add OpenTelemetry test trace endpoint and settings button
([#&#8203;32333](https://redirect.github.com/n8n-io/n8n/issues/32333))
([4fde44b](https://redirect.github.com/n8n-io/n8n/commit/4fde44bdaf06727eae8cb85db727cece376ebae6))
- **core:** Add output redactor guardrail for instance AI use
([#&#8203;31929](https://redirect.github.com/n8n-io/n8n/issues/31929))
([06df815](https://redirect.github.com/n8n-io/n8n/commit/06df815c4b74a0860d31653e162ba60b178f3996))
- **core:** Add S3 storage mode for execution data
([#&#8203;32226](https://redirect.github.com/n8n-io/n8n/issues/32226))
([2a6acf3](https://redirect.github.com/n8n-io/n8n/commit/2a6acf3cd602e6d414f92ecf3e021d87a1149f1e))
- **core:** Add tags support to MCP server
([#&#8203;31446](https://redirect.github.com/n8n-io/n8n/issues/31446))
([1640a69](https://redirect.github.com/n8n-io/n8n/commit/1640a69ea66baa68cfcdb04be71818560a78a48d))
- **core:** Add telemetry for import/export on server CLI
([#&#8203;32297](https://redirect.github.com/n8n-io/n8n/issues/32297))
([2ac0660](https://redirect.github.com/n8n-io/n8n/commit/2ac06605522ec0b63f6d5e0c0ceb9a7ef057af98))
- **core:** Add valid-author community node lint rule
([#&#8203;32357](https://redirect.github.com/n8n-io/n8n/issues/32357))
([029cf72](https://redirect.github.com/n8n-io/n8n/commit/029cf72b97c6cf64b7fe38fb7a8e0af22ca6ba7a))
- **core:** Add validation and size limits to package archive reading
([#&#8203;31812](https://redirect.github.com/n8n-io/n8n/issues/31812))
([e0cb99e](https://redirect.github.com/n8n-io/n8n/commit/e0cb99eb84d70ce3e15b4ad466aa7b0f28c45952))
- **core:** Add workflowPublishingPolicy to package import
([#&#8203;31961](https://redirect.github.com/n8n-io/n8n/issues/31961))
([140a319](https://redirect.github.com/n8n-io/n8n/commit/140a319ccd2284817026a63cc3fa7014725ed585))
- **core:** Configure OpenTelemetry settings via UI
([#&#8203;31781](https://redirect.github.com/n8n-io/n8n/issues/31781))
([e2dd95d](https://redirect.github.com/n8n-io/n8n/commit/e2dd95d15a115559c216b1d0bc6964fd2b8624d0))
- **core:** Email public API key owners when their key is revoked by an
admin
([#&#8203;32086](https://redirect.github.com/n8n-io/n8n/issues/32086))
([ac19787](https://redirect.github.com/n8n-io/n8n/commit/ac197878d95a15ce30e1201a544cd79fa02efa0c))
- **core:** Expose DNS cache metrics via PrometheusMetricsService
([#&#8203;32013](https://redirect.github.com/n8n-io/n8n/issues/32013))
([5ab381c](https://redirect.github.com/n8n-io/n8n/commit/5ab381c8bc2ea9f924e66ed46b5456086706e7e0))
- **core:** Expose SSRF protection check outcomes as Prometheus metrics
([#&#8203;32004](https://redirect.github.com/n8n-io/n8n/issues/32004))
([58c4cd1](https://redirect.github.com/n8n-io/n8n/commit/58c4cd1d87a61bbd25c3fc5fb0a563d6cc6188e6))
- **core:** Introduce credentialBindings for package import
([#&#8203;32228](https://redirect.github.com/n8n-io/n8n/issues/32228))
([f161bf0](https://redirect.github.com/n8n-io/n8n/commit/f161bf07861674643e7547174e4d07345d737205))
- **core:** Make data redaction enforcement generally available
([#&#8203;31966](https://redirect.github.com/n8n-io/n8n/issues/31966))
([2afc32a](https://redirect.github.com/n8n-io/n8n/commit/2afc32a3ec5a7f6279f2ddd13b5522a51c74c210))
- **core:** Remove n8n packages license check
([#&#8203;32317](https://redirect.github.com/n8n-io/n8n/issues/32317))
([93e2f86](https://redirect.github.com/n8n-io/n8n/commit/93e2f8629eef8ac5877950d688a11458a780464e))
- **core:** Workflow import workflowIdPolicy
([#&#8203;32075](https://redirect.github.com/n8n-io/n8n/issues/32075))
([24c264c](https://redirect.github.com/n8n-io/n8n/commit/24c264ca288ebf0af9d958dca7323437fe97b25f))
- **editor:** Add docs links for data redaction
([#&#8203;32220](https://redirect.github.com/n8n-io/n8n/issues/32220))
([bc90a4b](https://redirect.github.com/n8n-io/n8n/commit/bc90a4b8f2bbb746baf6523f1115d123b6be1ee0))
- **editor:** Allow creating variables and data tables from the
universal add menu
([#&#8203;32079](https://redirect.github.com/n8n-io/n8n/issues/32079))
([3cff611](https://redirect.github.com/n8n-io/n8n/commit/3cff611c6e8c568b0de0888de2ab4208e126b403))
- **editor:** Open API key modal in read-only mode for non-owners
([#&#8203;32254](https://redirect.github.com/n8n-io/n8n/issues/32254))
([9496996](https://redirect.github.com/n8n-io/n8n/commit/94969962cf994ecf090101a946d2b5ffa4843b8e))
- **editor:** Redesign API key created modal
([#&#8203;32256](https://redirect.github.com/n8n-io/n8n/issues/32256))
([e6bc501](https://redirect.github.com/n8n-io/n8n/commit/e6bc5012bacd037c9dc60e0b81312559c61765ee))
- **editor:** Reposition nodes on group collapse/expand
([#&#8203;32128](https://redirect.github.com/n8n-io/n8n/issues/32128))
([053126f](https://redirect.github.com/n8n-io/n8n/commit/053126fc7c62df8f033f89cf4150f5117f48c953))
- **editor:** Rewrite icon picker with search, full Lucide set, emoji
sections, and color/skin tone pickers
([#&#8203;25649](https://redirect.github.com/n8n-io/n8n/issues/25649))
([12ba0d0](https://redirect.github.com/n8n-io/n8n/commit/12ba0d00803222495693de89eb3d1e919d4a663f))
- **editor:** Use an action menu for API key row actions
([#&#8203;32339](https://redirect.github.com/n8n-io/n8n/issues/32339))
([f80fca2](https://redirect.github.com/n8n-io/n8n/commit/f80fca2617e8e6d57f497502bd26e1717673dee0))
- Force Microsoft account selection on OAuth for all Microsoft
credentials
([#&#8203;32015](https://redirect.github.com/n8n-io/n8n/issues/32015))
([939307a](https://redirect.github.com/n8n-io/n8n/commit/939307a4d5fc4179d7e0a7233ec31b23ad698df2))
- **GitHub Node:** Introduce get members operation on organization
resource
([#&#8203;23822](https://redirect.github.com/n8n-io/n8n/issues/23822))
([05d44e4](https://redirect.github.com/n8n-io/n8n/commit/05d44e45b2a166823ae23a1b68ff211e0bb9b922))
- **JWT Node:** Support custom header claims for the Sign operation
([#&#8203;31918](https://redirect.github.com/n8n-io/n8n/issues/31918))
([160cb09](https://redirect.github.com/n8n-io/n8n/commit/160cb095c819f15e55ccf55ad4f7458500fdca65))
- **Kafka Node:** Add Schema Registry credential type
([#&#8203;32026](https://redirect.github.com/n8n-io/n8n/issues/32026))
([93d9387](https://redirect.github.com/n8n-io/n8n/commit/93d9387f3eaa33c19099b2b6a5db4f270c455f35))
- **LmChatAnthropic Node:** Add streaming option
([#&#8203;30991](https://redirect.github.com/n8n-io/n8n/issues/30991))
([cf223af](https://redirect.github.com/n8n-io/n8n/commit/cf223af11cd310d75fb8149dc27214071423fa97))
- **MCP Server Trigger Node:** Add n8n OAuth2 authentication option
([#&#8203;32326](https://redirect.github.com/n8n-io/n8n/issues/32326))
([e7b1c1c](https://redirect.github.com/n8n-io/n8n/commit/e7b1c1c2ef60abb65bf7502c0df5d777276f6ac1))
- **Microsoft OneDrive Node:** Support the generic Microsoft OAuth2
credential
([#&#8203;32295](https://redirect.github.com/n8n-io/n8n/issues/32295))
([30b5451](https://redirect.github.com/n8n-io/n8n/commit/30b54515d6bd6728c1961ec37d3b6cc8e2340a23))
- **Pipedrive Trigger Node:** Allow lead entities to be triggered upon
([#&#8203;23977](https://redirect.github.com/n8n-io/n8n/issues/23977))
([da8b7c7](https://redirect.github.com/n8n-io/n8n/commit/da8b7c7317c538f3340b5b1d4212251abbda7f54))
- Reduces delay in displaying AI Assistant workflow preview examples
([#&#8203;32194](https://redirect.github.com/n8n-io/n8n/issues/32194))
([2e9946c](https://redirect.github.com/n8n-io/n8n/commit/2e9946c458d6c91552b0f8de5b75547cd6b2c079))
- Show the workflow name on the OAuth consent screen
([#&#8203;32362](https://redirect.github.com/n8n-io/n8n/issues/32362))
([7a5c208](https://redirect.github.com/n8n-io/n8n/commit/7a5c2087f7e3c42c373ef397cb83df14d66a28a6))

##### Performance Improvements

- **core:** Add partial index on execution\_entity to fix executions
list CPU spike
([#&#8203;32116](https://redirect.github.com/n8n-io/n8n/issues/32116))
([3b53949](https://redirect.github.com/n8n-io/n8n/commit/3b539497928f8cb9f50621f683061dc7631adbfc))
- **core:** Optimize workflow lookups
([#&#8203;24690](https://redirect.github.com/n8n-io/n8n/issues/24690))
([c3b35c1](https://redirect.github.com/n8n-io/n8n/commit/c3b35c1a60fb32dcff2f0ef2338dc7330e4d80bd))
- **core:** Ungate minimize execution data fetching
([#&#8203;30969](https://redirect.github.com/n8n-io/n8n/issues/30969))
([4b4a76a](https://redirect.github.com/n8n-io/n8n/commit/4b4a76a375d550679bc0312561a6b71f189bee84))

</details>

---

### Configuration

📅 **Schedule**: (UTC)

- 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:eyJjcmVhdGVkSW5WZXIiOiI0My4xMzAuMSIsInVwZGF0ZWRJblZlciI6IjQzLjEzMC4xIiwidGFyZ2V0QnJhbmNoIjoibWFzdGVyIiwibGFiZWxzIjpbImFwcC9uOG4iLCJhdXRvbWVyZ2UiLCJyZW5vdmF0ZS9jb250YWluZXIiLCJ0eXBlL21pbm9yIl19-->
2026-06-16 18:47:11 +02:00
TrueCharts Bot e67ea1cdbb feat(syslog-ng): update image docker.io/balabit/syslog-ng 4.11.0 → 4.12.0 (#49186)
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
|
[docker.io/balabit/syslog-ng](https://redirect.github.com/syslog-ng/syslog-ng)
| minor | `c652345` → `235a229` |

---

> [!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**: (UTC)

- 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:eyJjcmVhdGVkSW5WZXIiOiI0My4xMzAuMSIsInVwZGF0ZWRJblZlciI6IjQzLjEzMC4xIiwidGFyZ2V0QnJhbmNoIjoibWFzdGVyIiwibGFiZWxzIjpbImFwcC9zeXNsb2ctbmciLCJhdXRvbWVyZ2UiLCJyZW5vdmF0ZS9jb250YWluZXIiLCJ0eXBlL21pbm9yIl19-->
2026-06-16 18:46:50 +02:00
TrueCharts Bot 291f3c1d2a chore(projectsend): update image ghcr.io/linuxserver/projectsend digest to 7051aab (#49180)
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| ghcr.io/linuxserver/projectsend | digest | `e5c0a85` → `7051aab` |

---

> [!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**: (UTC)

- 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:eyJjcmVhdGVkSW5WZXIiOiI0My4xMzAuMSIsInVwZGF0ZWRJblZlciI6IjQzLjEzMC4xIiwidGFyZ2V0QnJhbmNoIjoibWFzdGVyIiwibGFiZWxzIjpbImFwcC9wcm9qZWN0c2VuZCIsImF1dG9tZXJnZSIsInJlbm92YXRlL2NvbnRhaW5lciIsInR5cGUvZGlnZXN0Il19-->
2026-06-16 18:44:57 +02:00
TrueCharts Bot c28081c9ee chore(digikam): update image ghcr.io/linuxserver/digikam digest to 86cb8fc (#49176)
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 | `9503e00` → `86cb8fc` |

---

> [!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**: (UTC)

- 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:eyJjcmVhdGVkSW5WZXIiOiI0My4xMzAuMSIsInVwZGF0ZWRJblZlciI6IjQzLjEzMC4xIiwidGFyZ2V0QnJhbmNoIjoibWFzdGVyIiwibGFiZWxzIjpbImFwcC9kaWdpa2FtIiwiYXV0b21lcmdlIiwicmVub3ZhdGUvY29udGFpbmVyIiwidHlwZS9kaWdlc3QiXX0=-->
2026-06-16 18:44:13 +02:00
TrueCharts Bot 2b20408dbf fix(tautulli): update image ghcr.io/tautulli/tautulli v2.17.1 → v2.17.2 (#49182)
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
|
[ghcr.io/tautulli/tautulli](https://redirect.github.com/Tautulli/Tautulli)
| patch | `112abf6` → `864245f` |

---

> [!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>Tautulli/Tautulli (ghcr.io/tautulli/tautulli)</summary>

###
[`v2.17.2`](https://redirect.github.com/Tautulli/Tautulli/blob/HEAD/CHANGELOG.md#v2172-2026-06-16)

[Compare
Source](https://redirect.github.com/Tautulli/Tautulli/compare/v2.17.1...v2.17.2)

- Notifications:
- Fix: Line breaks in Gotify notification body text.
([#&#8203;2702](https://redirect.github.com/Tautulli/Tautulli/issues/2702))
- Newsletters:
- Fix: XSS in newsletter cron value. (CVE-2026-49995) (Thanks
[@&#8203;elvinsuleymanov](https://redirect.github.com/elvinsuleymanov))
- UI:
- Fix: Reflected XSS in search query string. (CVE-2026-45381) (Thanks
[@&#8203;JakePeralta7](https://redirect.github.com/JakePeralta7),
[@&#8203;sondt99](https://redirect.github.com/sondt99),
[@&#8203;kah-ja](https://redirect.github.com/kah-ja))
- Fix: Duplicated activity card progress timers.
([#&#8203;2716](https://redirect.github.com/Tautulli/Tautulli/issues/2716))
(Thanks
[@&#8203;omglazrgunpewpew](https://redirect.github.com/omglazrgunpewpew))
- Other:
- Fix: Fix X-Api-Key header check crashing server.
([#&#8203;2711](https://redirect.github.com/Tautulli/Tautulli/issues/2711))
- Fix: Path traversal in uploaded database and config file names.
(CVE-2026-52835) (Thanks
[@&#8203;tonghuaroot](https://redirect.github.com/tonghuaroot))
- Fix: Empty host fallback in URL when launching browser.
([#&#8203;2722](https://redirect.github.com/Tautulli/Tautulli/issues/2722))
(Thanks
[@&#8203;upmcplanetracker](https://redirect.github.com/upmcplanetracker))
- Fix: Open redirect via whitespace bypass in /auth/redirect
(CVE-2026-54915) (Thanks
[@&#8203;sondt99](https://redirect.github.com/sondt99))

</details>

---

### Configuration

📅 **Schedule**: (UTC)

- 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:eyJjcmVhdGVkSW5WZXIiOiI0My4xMzAuMSIsInVwZGF0ZWRJblZlciI6IjQzLjEzMC4xIiwidGFyZ2V0QnJhbmNoIjoibWFzdGVyIiwibGFiZWxzIjpbImFwcC90YXV0dWxsaSIsImF1dG9tZXJnZSIsInJlbm92YXRlL2NvbnRhaW5lciIsInR5cGUvcGF0Y2giXX0=-->
2026-06-16 18:43:22 +02:00
TrueCharts Bot 64f42f42a5 fix(shlink): update image docker.io/shlinkio/shlink 5.1.2 → 5.1.3 (#49175)
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
|
[docker.io/shlinkio/shlink](https://redirect.github.com/shlinkio/shlink)
| patch | `8096fac` → `c1e2b7e` |

---

> [!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>shlinkio/shlink (docker.io/shlinkio/shlink)</summary>

###
[`v5.1.3`](https://redirect.github.com/shlinkio/shlink/blob/HEAD/CHANGELOG.md#513---2026-06-16)

[Compare
Source](https://redirect.github.com/shlinkio/shlink/compare/v5.1.2...v5.1.3)

##### Added

- *Nothing*

##### Changed

- *Nothing*

##### Deprecated

- *Nothing*

##### Removed

- *Nothing*

##### Fixed

-
[#&#8203;2625](https://redirect.github.com/shlinkio/shlink/issues/2625)
Fix `PDO::connect(): Unable to set local cert chain file 1` error when
setting `DB_USE_ENCRYPTION=true` with MySQL and PHP 8.5.

</details>

---

### Configuration

📅 **Schedule**: (UTC)

- 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:eyJjcmVhdGVkSW5WZXIiOiI0My4xMzAuMSIsInVwZGF0ZWRJblZlciI6IjQzLjEzMC4xIiwidGFyZ2V0QnJhbmNoIjoibWFzdGVyIiwibGFiZWxzIjpbImFwcC9zaGxpbmsiLCJhdXRvbWVyZ2UiLCJyZW5vdmF0ZS9jb250YWluZXIiLCJ0eXBlL3BhdGNoIl19-->
2026-06-16 12:39:49 +02:00
TrueCharts Bot 0a498d2720 chore(nextpvr): update image docker.io/nextpvr/nextpvr_amd64 digest to 79841be (#49174)
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| docker.io/nextpvr/nextpvr_amd64 | digest | `5d72062` → `79841be` |

---

> [!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**: (UTC)

- 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:eyJjcmVhdGVkSW5WZXIiOiI0My4xMzAuMSIsInVwZGF0ZWRJblZlciI6IjQzLjEzMC4xIiwidGFyZ2V0QnJhbmNoIjoibWFzdGVyIiwibGFiZWxzIjpbImFwcC9uZXh0cHZyIiwiYXV0b21lcmdlIiwicmVub3ZhdGUvY29udGFpbmVyIiwidHlwZS9kaWdlc3QiXX0=-->
2026-06-16 12:38:39 +02:00
Boemeltrein 1676dc4cc0 fix(romm): correct tag for release (#49173)
**Description**
<!--
Please include a summary of the change and which issue is fixed. Please
also include relevant motivation and context. List any dependencies that
are required for this change.
-->
Added patch release version to the tag.

⚒️ Fixes  # <!--(issue)-->

**⚙️ Type of change**

- [ ] ⚙️ Feature/App addition
- [x] 🪛 Bugfix
- [ ] ⚠️ Breaking change (fix or feature that would cause existing
functionality to not work as expected)
- [ ] 🔃 Refactor of current code
- [ ] 📜 Documentation Changes

**🧪 How Has This Been Tested?**
<!--
Please describe the tests that you ran to verify your changes. Provide
instructions so we can reproduce. Please also list any relevant details
for your test configuration
-->

**📃 Notes:**
<!-- Please enter any other relevant information here -->

**✔️ Checklist:**

- [ ] ⚖️ My code follows the style guidelines of this project
- [ ] 👀 I have performed a self-review of my own code
- [ ] #️⃣ I have commented my code, particularly in hard-to-understand
areas
- [ ] 📄 I have made changes to the documentation
- [ ] 🧪 I have added tests to this description that prove my fix is
effective or that my feature works
- [ ] ⬆️ I increased versions for any altered app according to semantic
versioning
- [x] I made sure the title starts with `feat(chart-name):`,
`fix(chart-name):`, `chore(chart-name):`, `docs(chart-name):` or
`fix(docs):`

** App addition**

If this PR is an app addition please make sure you have done the
following.

- [ ] 🖼️ I have added an icon in the Chart's root directory called
`icon.png`

---

_Please don't blindly check all the boxes. Read them and only check
those that apply.
Those checkboxes are there for the reviewer to see what is this all
about and
the status of this PR with a quick glance._

---------

Signed-off-by: Boemeltrein <130394941+Boemeltrein@users.noreply.github.com>
2026-06-16 08:41:28 +02:00
TrueCharts Bot e4666cbd75 chore(xen-orchestra): update image docker.io/ronivay/xen-orchestra digest to 63a113c (#49172) 2026-06-16 06:36:39 +02:00
TrueCharts Bot 5cef77110a chore(romm): update image ghcr.io/rommapp/romm digest to 447850c (#49171) 2026-06-16 06:36:36 +02:00
TrueCharts Bot dc9a176662 chore(ombi): update image ghcr.io/linuxserver/ombi digest to 8b4b1e9 (#49170)
This PR contains the following updates:

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

---

> [!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**: (UTC)

- 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:eyJjcmVhdGVkSW5WZXIiOiI0My4xMzAuMSIsInVwZGF0ZWRJblZlciI6IjQzLjEzMC4xIiwidGFyZ2V0QnJhbmNoIjoibWFzdGVyIiwibGFiZWxzIjpbImFwcC9vbWJpIiwiYXV0b21lcmdlIiwicmVub3ZhdGUvY29udGFpbmVyIiwidHlwZS9kaWdlc3QiXX0=-->
2026-06-16 06:36:25 +02:00
TrueCharts Bot f31d3e2cfc feat(wyoming-whisper): update image docker.io/rhasspy/wyoming-whisper 3.1.0 → 3.2.0 (#49169) 2026-06-16 00:35:47 +02:00
TrueCharts Bot 42b043d4e9 chore(monica): update image monica digest to 77542f7 (#49165) 2026-06-16 00:35:40 +02:00
TrueCharts Bot 8ae21327b5 chore(filezilla): update image ghcr.io/linuxserver/filezilla digest to 50b432f (#49163) 2026-06-16 00:35:32 +02:00
TrueCharts Bot 0e379e82b3 fix(gatus): update image ghcr.io/home-operations/gatus-sidecar 0.3.1 → 0.3.2 (#49168) 2026-06-16 00:35:25 +02:00