Commit Graph

57066 Commits

Author SHA1 Message Date
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
TrueCharts Bot 15e677a96d fix(crafty-4): update image registry.gitlab.com/crafty-controller/crafty-4 4.10.5 → 4.10.6 (#49167)
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 |
`6dca9a8` → `2189f47` |

---

> [!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.6`](https://gitlab.com/crafty-controller/crafty-4/blob/HEAD/CHANGELOG.md#----4106---20260615)

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

##### Bug fixes

- Readd packaging to requirements ([Merge
Request](https://gitlab.com/crafty-controller/crafty-4/-/merge_requests/1042))
<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-16 00:35:18 +02:00
TrueCharts Bot 02d66e107d chore(yourls): update image yourls digest to 4aabdf1 (#49166)
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| yourls | digest | `0472fea` → `4aabdf1` |

---

> [!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:eyJjcmVhdGVkSW5WZXIiOiI0My4xMzAuMSIsInVwZGF0ZWRJblZlciI6IjQzLjEzMC4xIiwidGFyZ2V0QnJhbmNoIjoibWFzdGVyIiwibGFiZWxzIjpbImFwcC95b3VybHMiLCJhdXRvbWVyZ2UiLCJyZW5vdmF0ZS9jb250YWluZXIiLCJ0eXBlL2RpZ2VzdCJdfQ==-->
2026-06-16 00:35:02 +02:00
TrueCharts Bot f4d6728d88 chore(friendica): update image friendica digest to 6f5d1d6 (#49164)
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| friendica | digest | `e0d6103` → `6f5d1d6` |

---

> [!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:eyJjcmVhdGVkSW5WZXIiOiI0My4xMzAuMSIsInVwZGF0ZWRJblZlciI6IjQzLjEzMC4xIiwidGFyZ2V0QnJhbmNoIjoibWFzdGVyIiwibGFiZWxzIjpbImFwcC9mcmllbmRpY2EiLCJhdXRvbWVyZ2UiLCJyZW5vdmF0ZS9jb250YWluZXIiLCJ0eXBlL2RpZ2VzdCJdfQ==-->
2026-06-16 00:34:59 +02:00
TrueCharts Bot f4901e2e92 chore(thelounge): update image docker.io/thelounge/thelounge digest to b3c6432 (#49147)
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
|
[docker.io/thelounge/thelounge](https://redirect.github.com/thelounge/thelounge-docker)
| digest | `7f2fff6` → `b3c6432` |

---

> [!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:eyJjcmVhdGVkSW5WZXIiOiI0My4xMzAuMSIsInVwZGF0ZWRJblZlciI6IjQzLjEzMC4xIiwidGFyZ2V0QnJhbmNoIjoibWFzdGVyIiwibGFiZWxzIjpbImFwcC90aGVsb3VuZ2UiLCJhdXRvbWVyZ2UiLCJyZW5vdmF0ZS9jb250YWluZXIiLCJ0eXBlL2RpZ2VzdCJdfQ==-->
2026-06-15 17:09:13 +00:00
TrueCharts Bot e0d027f491 feat(helm-deps): update chart kong 3.2.0 → 3.3.0 (#49159)
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [kong](https://konghq.com/)
([source](https://redirect.github.com/Kong/charts)) | minor | `3.2.0` →
`3.3.0` |

---

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

---

### Release Notes

<details>
<summary>Kong/charts (kong)</summary>

###
[`v3.3.0`](https://redirect.github.com/Kong/charts/releases/tag/kong-3.3.0)

[Compare
Source](https://redirect.github.com/Kong/charts/compare/kong-3.2.0...kong-3.3.0)

The Cloud-Native Ingress and API-management

</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:eyJjcmVhdGVkSW5WZXIiOiI0My4xMzAuMSIsInVwZGF0ZWRJblZlciI6IjQzLjEzMC4xIiwidGFyZ2V0QnJhbmNoIjoibWFzdGVyIiwibGFiZWxzIjpbImFwcC9rdWJlcm5ldGVzLWRhc2hib2FyZCIsImF1dG9tZXJnZSIsInJlbm92YXRlL2NvbnRhaW5lciIsInR5cGUvbWlub3IiXX0=-->
2026-06-15 19:04:20 +02:00
TrueCharts Bot d52e6a752c feat(wekan): update image docker.io/wekanteam/wekan v9.45 → v9.46 (#49161)
This PR contains the following updates:

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

---

> [!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.46`](https://redirect.github.com/wekan/wekan/blob/HEAD/CHANGELOG.md#v946-2026-06-15-WeKan--release)

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

This release fixes the following CRITICAL SECURITY ISSUES of
[ProxyBleed](https://wekan.fi/hall-of-fame/proxybleed/):

- [Fixed ProxyBleed: Header-login IP allowlist bypass via
X-Forwarded-For spoofing allows
unauthenticated full account takeover (incl.
admin)](https://redirect.github.com/wekan/wekan/commit/b181889a565254bc9bf79379a34fc7f617ccda28)

([GHSA-jggc-qvfc-jr6x](https://redirect.github.com/wekan/wekan/security/advisories/GHSA-jggc-qvfc-jr6x),
CWE-290 Authentication Bypass by Spoofing, CWE-348 Use of Less Trusted
Source). WeKan's
header-login (reverse-proxy SSO) feature gates passwordless login on a
source-IP allowlist
(`HEADER_LOGIN_TRUSTED_IPS`), but `getRequestIp()` in
`server/lib/headerLoginAuth.js` derived the
source IP from the client-supplied `X-Forwarded-For` request header (its
left-most hop), falling
back to the real TCP socket peer only when that header was absent.
Because `X-Forwarded-For` is
fully attacker-controlled, an unauthenticated attacker who can reach the
app port directly (a
second ingress, a published container port, a k8s NodePort, SSRF — i.e.
any path that does not
traverse the trusted reverse proxy) could send a single GET request with
`X-Forwarded-For: <an-allowlisted-ip>` plus the username header (e.g.
`X-Auth-User: admin`) and be
minted a full passwordless login session (`meteor_login_token`) for any
existing user, including
`admin` — complete account takeover and admin impersonation, with no
password, token or shared
secret. An empty or unset allowlist additionally failed OPEN (it trusted
every source). The minted
session is a real, persisted resume token that also authenticates the
REST API as the spoofed user.
  Fixed by deriving the source IP from the real TCP socket peer
(`req.socket.remoteAddress`/`req.connection.remoteAddress`, normalizing
IPv4-mapped IPv6) and never
from `X-Forwarded-For`, and by making an empty/unset
`HEADER_LOGIN_TRUSTED_IPS` fail CLOSED so
header-login authenticates no one until the trusted reverse-proxy IP(s)
are configured (a startup
warning is logged in that case). The same `findOrCreateHeaderLoginUser`
/
`isTrustedHeaderLoginSource` helpers back the attachment API, so that
path is fixed by the same
change. OPERATOR ACTION REQUIRED: if you use header-login you must set
`HEADER_LOGIN_TRUSTED_IPS`
to your reverse proxy's IP address(es) — after this change an unset
allowlist disables header-login
instead of trusting everyone, and the source IP compared against the
allowlist is now the real
proxy connection, not a forgeable header. For multi-hop proxy
deployments an OPT-IN
`HEADER_LOGIN_TRUSTED_PROXIES` list was added: `X-Forwarded-For` is
honored only when the immediate
TCP peer is one of those explicitly trusted proxies, and then only the
right-most hop that is not
itself a trusted proxy (the real client) is matched against
`HEADER_LOGIN_TRUSTED_IPS` — a direct
  attacker's forged header is still ignored. Covered by regression tests
(`server/lib/tests/proxybleed.security.tests.js` and
`server/lib/tests/headerLoginAuth.tests.js`),
documented in
[Header-Login](https://redirect.github.com/wekan/wekan/blob/main/docs/Login/Header-Login.md),
and the new env vars were added to `docker-compose.yml`,
`start-wekan.sh`, `start-wekan.bat`,
`Dockerfile`, `.devcontainer/Dockerfile`,
`releases/virtualbox/start-wekan.sh` and the Snap config.
  Affected Wekan v9.44 and earlier. Thanks to rz1027, xet7 and Claude.

and adds the following updates:

- [Improved accessibility across all pages following WCAG 2.1 AA
guidelines](https://redirect.github.com/wekan/wekan/commit/255de2062ff9b54393fd603bfc6cabddb8ede66a):
- Added a visible keyboard focus indicator (`:focus-visible` outline)
for links,
buttons and form controls. The global CSS reset previously stripped all
focus
outlines, leaving keyboard users with no indication of focus (WCAG
2.4.7).
- Added a "Skip to main content" link that lets keyboard and
screen-reader users
    bypass the header chrome (WCAG 2.4.1 Bypass Blocks).
- Added landmark roles so assistive technology can navigate page
regions:
`role="main"` on the content area, `role="navigation"` on the header
quick-access
    bar, and `role="search"` on the global search form (WCAG 1.3.1).
- Marked modals and popups as `role="dialog"` with accessible names, set
`aria-modal="true"` on modals, and moved keyboard focus into a modal
when it
opens and back to the triggering element when it closes (WCAG 2.4.3
Focus Order).
- Added accessible names (`aria-label`) to icon-only controls that
previously had
none: modal/popup close and back buttons, the announcement close button,
the
sidebar close/back buttons and the global search input and clear button
    (WCAG 4.1.2 Name, Role, Value).
  - Marked decorative Font Awesome icons inside labelled controls as
    `aria-hidden="true"` so they are not announced redundantly.
  - Added a screen-reader-only `.sr-only` helper class.
- [Reorganized and updated the
documentation](https://redirect.github.com/wekan/wekan/commit/83a0dd2565cd723da18da13f9a24ac09c75eb0a0):
- Fixed 14 broken relative links in `docs/README.md` (verified with a
link check).
- Split the monolithic `docs/Features/Features.md` into focused topic
pages under
`docs/Features/` subdirectories: Boards, Lists, Cards, Members, Keyboard
Shortcuts, Admin Panel, WIP Limits, Cleanup and Stats; `Features.md` is
now an
    index linking to them, and `docs/README.md` links the new pages.
- Added documentation for previously-undocumented features:
Right-to-Left (RTL)
UI, Stickers, Card Locations, Board Background Images, Attachments and
File
Storage, the card "complete" checkbox, and a new Accessibility feature
page
(covering both the Admin Panel / Settings / Accessibility info page and
the
    built-in accessibility features above).
- Updated outdated information based on the CHANGELOG: the Meteor/Node
versions
(now Meteor 3.x / Node.js 24.x) and the obsolete feature wishlist
(Custom
Fields, Subtasks, Swimlanes, Gantt, WIP limits, voting and templates are
now
    implemented).

and adds the following new features:

- [Added an accessibility end-to-end test
suite](https://redirect.github.com/wekan/wekan/commit/9c39226a59f8fc156559315b85a1769e109c43e8)
that checks the page language, skip link, landmark roles, visible focus,
dialog
roles, accessible names on icon controls, and the absence of duplicate
element ids.
- [Greatly expanded board automation
**Rules**](https://redirect.github.com/wekan/wekan/commit/f0bce67a3bf301c21ded3eb97e84a3be0010290f):
- The Rules page is now a **fullscreen page** below the top bar (board
sidebar →
Rules), instead of a cramped popup. It has its own route
`/b/:id/:slug/rules`.
- **Scheduled rules**: run rules on a schedule (once on a date, or every
day /
weekday / week / month at a chosen time), on **due dates** (set /
approaching /
overdue), or by **card aging** ("a card has been in a list for N days").
A
SyncedCron job evaluates these every minute. This makes processes such
as
"archive cards that have been in the Completed column for 90 days" work
out of
    the box.
- These long-standing automation feature requests are implemented by the
above
rules work and can be closed: Fixes
[#&#8203;1160](https://redirect.github.com/wekan/wekan/issues/1160),
Fixes
[#&#8203;2476](https://redirect.github.com/wekan/wekan/issues/2476),
Fixes
[#&#8203;4372](https://redirect.github.com/wekan/wekan/issues/4372),
Fixes
[#&#8203;5775](https://redirect.github.com/wekan/wekan/issues/5775),
Fixes
[#&#8203;5825](https://redirect.github.com/wekan/wekan/issues/5825) —
IFTTT-style rules including recurring cards
([#&#8203;1160](https://redirect.github.com/wekan/wekan/issues/1160)),
Trello-Butler-
like Scheduled Rules
([#&#8203;2476](https://redirect.github.com/wekan/wekan/issues/2476)),
rules that set a due date 1 day/week/month ahead via
the "set a date relative to now (+N days)" action
([#&#8203;4372](https://redirect.github.com/wekan/wekan/issues/4372)),
and automated recurring
cards/tasks on a daily/weekday/weekly/monthly schedule from the GUI
([#&#8203;5775](https://redirect.github.com/wekan/wekan/issues/5775),
[#&#8203;5825](https://redirect.github.com/wekan/wekan/issues/5825)).
- **More Trello-Butler-style automations**: card **buttons** (shown on
the card)
and board **buttons** (shown in the board header) that run an action on
demand,
and new actions — sort a list (by due/name/created/modified), move all
cards in a
    list, mark card complete/incomplete, and set a date relative to now.
- **Manage rules**: select all / unselect all, delete selected, edit
(rename), and
a **drag-and-drop visual Workflow editor** (Jira-like): drag a trigger
and an
action into a `When … → Then …` builder to create a rule, drag an action
onto an
    existing rule to change it, and delete rules from the graph.
- **Import / Export rules** to JSON (lossless) and CSV
(round-trippable); export
only the selected rules; a **best-effort importer for Trello Butler**
commands
(Trello board exports do not contain Butler rules, so they are pasted in
and the
    supported subset is mapped, with unmapped lines reported).
- **Import visual workflows from n8n and Node-RED** (best-effort: the
workflow
graph's trigger→action edges are mapped to WeKan rules, unmapped nodes
reported),
with an **Import target** selector to choose which personal
**workspace** and
**board** the imported rules go into (applies to all importers in the
dialog).
- [Added a **whole-board import REST
API**](https://redirect.github.com/wekan/wekan/commit/f0bce67a3bf301c21ded3eb97e84a3be0010290f)
(`POST /api/boards/import`) that recreates a
board — including its **rules/triggers/actions (workflows)** and other
data — from a
WeKan board export. With the existing export endpoint this enables
**migrating all
boards + workflows + rules from another WeKan over the API**; `api.py`
adds
`importboard` and `migratefromwekan REMOTE_URL REMOTE_USER REMOTE_PASS`.
The remote
fetch is done client-side, so the server never fetches arbitrary URLs.
Covered by
an e2e test (export a board with a rule → import it → assert the rule,
trigger and
action are recreated on the new board) in
`tests/playwright/specs/23-rest-api-more.e2e.js`.
  - **Rules REST API** to add/edit/remove/list rules
(`/api/boards/:boardId/rules`), documented in the OpenAPI docs and
`api.py`
    (`addrule` / `editrule` / `removerule` / `listrules` / `getrule`).
- Added a Rules e2e test suite
(`tests/playwright/specs/20-rules.e2e.js`, covering
the fullscreen page, creating event rules, import/export, selecting
rules, the
    workflow view and board buttons) and docs

([Features/Rules](https://redirect.github.com/wekan/wekan/blob/main/docs/Features/Rules/Rules.md),
    updated IFTTT page).
- [Added **Jira
import**](https://redirect.github.com/wekan/wekan/commit/f0bce67a3bf301c21ded3eb97e84a3be0010290f)
("All Boards → New → Import → From Jira"): import boards from
a Jira Cloud REST issue-search JSON, similar to the Trello importer.
Jira statuses
become lists, issues become cards (with labels, due dates and assignees
mapped),
  and an optional `automationRules` array is imported as WeKan rules.
- [Import from WeKan, Trello and
Jira](https://redirect.github.com/wekan/wekan/commit/f0bce67a3bf301c21ded3eb97e84a3be0010290f)
can now be done **with or without mapping
members**: an "Import without mapping members (map later)" button skips
the member
mapping step and imports immediately, so members can be mapped
afterwards. Covered
  by `tests/playwright/specs/21-import-without-mapping.e2e.js`.
- [Rounded out board import/export
menus](https://redirect.github.com/wekan/wekan/commit/f0bce67a3bf301c21ded3eb97e84a3be0010290f):
- **Excel (.xlsx) board import** ("All Boards → New → Import → From
Excel"): the
spreadsheet is parsed on the server (exceljs) into rows and imported
through the
CSV creator, so boards can round-trip through `.xlsx` (the matching
Excel *export*
    already existed).
- **Board PDF export** ("Board Settings → Export → Export board to PDF",
and
`GET /api/boards/:boardId/exportPDF`): exports the board title, lists
and cards to
    a PDF (reusing the card PDF builder). Added `api.py exportboardpdf`.
- **Kanboard import and export**: "From Kanboard" in the import menu
(columns →
lists, tasks → cards, tags → labels) and "Export board to Kanboard JSON"
in the
export menu (`GET /api/boards/:boardId/export/kanboard`), which
round-trips with
    the importer.
- **Import and export to/from NextCloud Deck, OpenProject, GitHub,
GitLab, Gitea
and Forgejo.** Implemented generically: each tool has a small parser
that
normalizes its export/API JSON to a common shape (reusing one import
engine) and
a formatter that emits the tool's JSON (reusing one export collector).
Added to
    the import and export menus, with a generalized REST API
(`POST /api/boards/import/:source`, `GET
/api/boards/:boardId/export/:format`) and
`api.py` helpers (`importboardfrom`, `exportboardformat`) so all boards
can be
migrated in bulk. Issue trackers (GitHub/GitLab/Gitea/Forgejo) map
issues to cards
grouped into Open/Closed lists; Deck stacks and OpenProject statuses
become lists.
Documented in
[External-Tools](https://redirect.github.com/wekan/wekan/blob/main/docs/ImportExport/External-Tools.md).
- **Asana** and **ZenKit** are now fully built-in (import + export
menus, REST
    API and `api.py` — no external script needed).
- Together with the existing CSV/Excel import+export and the card PDF
export, this
completes CSV / Excel / PDF import & export. Fixes
[#&#8203;395](https://redirect.github.com/wekan/wekan/issues/395).
- Covered by `tests/playwright/specs/25-excel-pdf.e2e.js` (Excel import
+ board PDF
export). Documented in
[Excel-and-VBA](https://redirect.github.com/wekan/wekan/blob/main/docs/ImportExport/Excel-and-VBA.md)
and
[Kanboard](https://redirect.github.com/wekan/wekan/blob/main/docs/ImportExport/Kanboard.md).
- [Extended the **REST
API**](https://redirect.github.com/wekan/wekan/commit/f0bce67a3bf301c21ded3eb97e84a3be0010290f)
so the newer card features are scriptable: the card edit
endpoint (`PUT /api/boards/:boardId/lists/:listId/cards/:cardId`) now
accepts
`stickers`, `locations` and `dueComplete` (the complete checkbox),
documented with
`api.py` examples (`setcardstickers` / `setcardlocations` /
`setcardcomplete`).
- [Added e2e tests for previously-untested documented
features](https://redirect.github.com/wekan/wekan/commit/f0bce67a3bf301c21ded3eb97e84a3be0010290f)
(`tests/playwright/specs/22-card-features.e2e.js`): stickers, card
locations, the
  complete checkbox and WIP limits.
- [Expanded REST API test
coverage](https://redirect.github.com/wekan/wekan/commit/f0bce67a3bf301c21ded3eb97e84a3be0010290f)
(`tests/playwright/specs/23-rest-api-more.e2e.js`):
the Rules API (create/list/get/edit/delete), the new card `stickers` /
`locations`
/ `dueComplete` fields, and core CRUD for swimlanes, lists, custom
fields,
  checklists + items and comments.
- [Added a **board background image upload/download
API**](https://redirect.github.com/wekan/wekan/commit/f0bce67a3bf301c21ded3eb97e84a3be0010290f)
(the background counterpart
of the card-attachment upload API): `POST
/api/attachment/upload-background` and
`GET /api/attachment/download-background/:boardId` (plus the DDP methods
`api.board.uploadBackground` / `api.board.downloadBackground`). Uploads
use the
current **Admin Panel / Attachments / Default Storage** backend and set
the image
as the board's active background (board-admin gated). Documented in the
OpenAPI
  docs and `api.py` (`uploadbackground` / `downloadbackground`).
- [Added **Trello-Butler-style rule
variables**](https://redirect.github.com/wekan/wekan/commit/f0bce67a3bf301c21ded3eb97e84a3be0010290f)
— `{cardname}`, `{cardnumber}`,
`{listname}`, `{boardname}`, `{duedate}`, `{username}`, `{date}` /
`{time}` /
`{datetime}`, etc. — substituted in rule action text (email
subject/body, created
card/checklist/swimlane names). Fixes
[#&#8203;2475](https://redirect.github.com/wekan/wekan/issues/2475).
- [Added **visual card
aging**](https://redirect.github.com/wekan/wekan/commit/f0bce67a3bf301c21ded3eb97e84a3be0010290f):
when enabled per board (board settings → "Card
aging"), cards that have not been touched for a while are progressively
faded based
on their last activity, Trello-style. The three fade-tier **day
thresholds are
board-configurable** (default 7 / 14 / 28 days). Toggleable and
configurable in the
  board settings and over the card-settings REST API
(`cardAging`, `cardAgingDays1/2/3`). Fixes
[#&#8203;3984](https://redirect.github.com/wekan/wekan/issues/3984).
- [Added **accessible
reordering**](https://redirect.github.com/wekan/wekan/commit/f0bce67a3bf301c21ded3eb97e84a3be0010290f)
without drag-and-drop: visually hidden,
keyboard-focusable "Move card up/down" buttons on minicards and "Move
list
left/right" buttons on list headers, for screen-reader and keyboard
users. Fixes
[#&#8203;459](https://redirect.github.com/wekan/wekan/issues/459).
- [The board's background image is now also shown as the board tile
background](https://redirect.github.com/wekan/wekan/commit/f0bce67a3bf301c21ded3eb97e84a3be0010290f)
on the
**All Boards** list page (reusing the existing board background, with a
dark overlay
for readability). Fixes
[#&#8203;5157](https://redirect.github.com/wekan/wekan/issues/5157).

and fixes the following bugs:

- [Fixed rules that send an email crashing with `TAPi18n is not
defined`](https://redirect.github.com/wekan/wekan/commit/f0bce67a3bf301c21ded3eb97e84a3be0010290f)
(`TAPi18n` was not imported in `server/rulesHelper.js`). Fixes
[#&#8203;5822](https://redirect.github.com/wekan/wekan/issues/5822).

- [Fixed the **WIP limit**
counting](https://redirect.github.com/wekan/wekan/commit/f0bce67a3bf301c21ded3eb97e84a3be0010290f)
only the currently visible cards when a filter is
active, which let lists exceed their hard WIP limit; it now counts all
cards in the
list. Fixes
[#&#8203;2095](https://redirect.github.com/wekan/wekan/issues/2095).

- [Fixed deleting a board leaving orphaned rule
**Actions**](https://redirect.github.com/wekan/wekan/commit/f0bce67a3bf301c21ded3eb97e84a3be0010290f)
in the database (Rules and
Triggers were removed but Actions were not). Fixes
[#&#8203;4266](https://redirect.github.com/wekan/wekan/issues/4266).

- [Fixed the "check all / uncheck all / (un)check item" rule actions
crashing](https://redirect.github.com/wekan/wekan/commit/f0bce67a3bf301c21ded3eb97e84a3be0010290f)
with
"Cannot read property 'uncheckAllItems' of undefined" when the named
checklist or
item does not exist on the card; they now no-op safely. Fixes
[#&#8203;5283](https://redirect.github.com/wekan/wekan/issues/5283).

- [Added e2e tests for the above features and
fixes](https://redirect.github.com/wekan/wekan/commit/f0bce67a3bf301c21ded3eb97e84a3be0010290f)
in
`tests/playwright/specs/24-feature-issues.e2e.js` (accessible card/list
reordering,
visual card aging with default and configurable thresholds, board-delete
rule
  cleanup, and the board background on the All Boards tile).

- [Fixed duplicate `id="header"` attributes rendered inside loops on the
My Cards
page](https://redirect.github.com/wekan/wekan/commit/c8c0438d662426aaf246a6164d3c3b18bd3462f6),
which produced invalid HTML and broke assistive-technology navigation
(WCAG 4.1.1).

- [Fixed the My Cards table
markup](https://redirect.github.com/wekan/wekan/commit/255de2062ff9b54393fd603bfc6cabddb8ede66a):
header cells (`<th>`) are now wrapped in a `<tr>`
with `scope="col"`, and a caption was added, so the table is announced
correctly.

- [Added missing `alt` text to the user avatar
image](https://redirect.github.com/wekan/wekan/commit/255de2062ff9b54393fd603bfc6cabddb8ede66a)
(the surrounding link already
  carries the accessible name).

- [Fixed several bugs in the new features
above](https://redirect.github.com/wekan/wekan/commit/073842b3c54f07205c5b0a9c519a665f920c768e)
that were surfaced by running the full
test suite (`./rebuild-wekan.sh` → "Run ALL tests"), so the Playwright
suite is
  green again:
- **Board JSON export returned empty lists, swimlanes and rules.** A
previous fix
that made attachment export use `meta.boardId` accidentally applied the
same
selector to lists/swimlanes/rules, which store a flat `boardId`, so
those came
back empty — and the whole-board import API then had nothing to
recreate.
    Attachments now use their own selector. (`models/exporter.js`)
- **Export, PDF export and board-delete REST endpoints required a global
site
admin** (`Authentication.checkUserId`) instead of board-level access, so
a board
owner using their own API token got `403`/empty responses and board
deletion
silently did nothing (its rule/trigger/action cleanup never ran). They
now require
only a logged-in user and rely on the existing per-board `canExport` /
board-admin
checks. (`models/export.js`, `models/exportPDF.js`,
`server/models/boards.js`)
- **Rules did not appear on the fullscreen Rules page.** The
`boardRules`
publication passed the user id string to `Board.isVisibleBy()`, which
expects a
user object, so a board's rules/triggers/actions were never published.
    (`server/publications/rules.js`)
  - **Card edit and checklist REST endpoints returned `500`.**
`PUT /api/boards/:boardId/lists/:listId/cards/:cardId` with `locations`
stored
entries without the schema-required `_id` (and without numeric
coordinates), and
the checklist `POST` referenced a permission helper it never imported.
    (`server/models/cards.js`, `server/models/checklists.js`)
- **Excel/CSV import crashed on spreadsheets without date columns** (it
read
`.length` of a missing cell); date columns are now treated as optional.
    (`models/csvCreator.js`)
- **Importing a board whose export carried a non-WeKan board color
aborted with a
`400`.** A WeKan/Trello export can contain `color: "bgnone"`, which is
not an
allowed board color, so collection2 rejected the board insert and the
import never
navigated to the new board. The imported color now falls back to the
default when
it is not a recognized WeKan color. The post-import username bookkeeping
was also
    hardened to only record usernames on users that actually exist.
    (`models/wekanCreator.js`)
- **Accessible "move card up/down" and "move list left/right" buttons
did nothing.**
The buttons are visually hidden with an `.sr-only` container that clips
them to a 1px
box (`clip: rect(0,0,0,0)`), so a click resolved (via hit-testing) to
the element
behind them and the Blaze handler never fired. They are now kept in
normal flow and
hit-testable while still visually hidden (a transparent, focusable
control), so the
reorder handlers actually run. (`client/components/main/layouts.css`)
- **Board/card automation buttons never rendered.** The
board-button/card-button
helpers joined a published rule to its `triggers` document to read the
button
type/label, but the schemaless `triggers` collection's documents do not
reach the
client over the board subscription in this Meteor 3 setup, so the lookup
found
nothing. The button type/label are now denormalised onto the
(schema-backed,
reliably-published) rule document by a new board-admin-gated
`rules.createRule`
    server method, and the header/card read them straight from the rule.
(`server/rulesButton.js`, `models/rules.js`,
`client/components/rules/actions/boardActions.js`,
`client/components/rules/boardButtons.js`,
`client/components/rules/cardButtons.js`)
- Hardened several tests that were checking the wrong state rather than
a real product
bug: the accessibility test now polls for the `<html lang>` attribute
(set by client
JS on startup) instead of reading it once before the page settles; the
board-background
tile test selects the "Remaining" boards menu where the unstarred seeded
board appears;
and the list-menu helper and a few card/list reads now poll/retry
through a transient,
pre-existing "Board not found" re-render that can briefly tear down the
board view
    while its subscription settles.
    Thanks to xet7 and Claude.

Known issues / possible later fixes (not addressed in this release):

- **Transient "Board not found" flicker on an open board.** While a
board's
subscription re-settles, the reactive board read
(`Utils.getCurrentBoard()` →
`ReactiveCache.getBoard` → the memoizing `DataCache`) can momentarily
return
`undefined` while the subscription is still `ready()`, so
`client/components/
boards/boardBody.jade` briefly shows `board-not-found` and tears down
the lists/
cards before the board re-renders. Real users on slow/reconnecting links
can see a
flash and lose scroll/popup state. The test suite was made resilient to
it, but the
underlying flicker is unfixed. A safe fix needs care because the obvious
options
have trade-offs: a "was-ever-present" latch in the board template would
replace the
flash with a spinner but still unmount the lists; making
`getCurrentBoard()` sticky
  would keep the board mounted but return a stale board after a genuine
delete/archive (global behavior change); and hardening `DataCache` (not
storing a
transient `undefined` over a present value) risks masking legitimate
removals across
every reactive read. Same root cause as the board/card automation-button
flicker
fixed above (worked around there by reading Minimongo directly). (The
`DataCache`
60s-teardown contributor to this flicker has since been hardened — see
the Upcoming
  release fixes above.)

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-15 18:24:07 +02:00
TrueCharts Bot 8558a50ba6 fix(crafty-4): update image registry.gitlab.com/crafty-controller/crafty-4 4.10.4 → 4.10.5 (#49151)
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 |
`d2f61fc` → `6dca9a8` |

---

> [!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.5`](https://gitlab.com/crafty-controller/crafty-4/blob/HEAD/CHANGELOG.md#----4105---20260615)

##### Refactor

- Sonar refactor: server.py ([Merge
Request](https://gitlab.com/crafty-controller/crafty-4/-/merge_requests/1003)
| [Merge
Request](https://gitlab.com/crafty-controller/crafty-4/-/merge_requests/1024))
- Sonar refactor: File Helpers ([Merge
Request](https://gitlab.com/crafty-controller/crafty-4/-/merge_requests/1015))
- Refactor repeated broadcast logic into new Websocket Manager function
([Merge
Request](https://gitlab.com/crafty-controller/crafty-4/-/merge_requests/1032))

##### New features

- Add API method to list backup files ([Merge
Request](https://gitlab.com/crafty-controller/crafty-4/-/merge_requests/1014))
- Add "Stop All Servers" button ([Merge
Request](https://gitlab.com/crafty-controller/crafty-4/-/merge_requests/1001))

##### Bug fixes

- Fix general users not being able to edit themselves ([Merge
Request](https://gitlab.com/crafty-controller/crafty-4/-/merge_requests/1016))
- Improve upload progress bar consistency ([Merge
Request](https://gitlab.com/crafty-controller/crafty-4/-/merge_requests/1023))
- Improve terminal performance for noizy servers ([Merge
Request](https://gitlab.com/crafty-controller/crafty-4/-/merge_requests/1022))
- Allow users to access terminal buffer without log perms ([Merge
Request](https://gitlab.com/crafty-controller/crafty-4/-/merge_requests/869))
- Fix headers for remote requests agents ([Merge
Request](https://gitlab.com/crafty-controller/crafty-4/-/merge_requests/1019))
- Fix command watcher thread crash when sending command to offline
server ([Merge
Request](https://gitlab.com/crafty-controller/crafty-4/-/merge_requests/1026))
- Fix permission checkbox behavior during horizontal scroll ([Merge
Request](https://gitlab.com/crafty-controller/crafty-4/-/merge_requests/1030))
- Fix server control nav not collapsing to dropdown on small screens
([Merge
Request](https://gitlab.com/crafty-controller/crafty-4/-/merge_requests/1031))
- Rework Validate Read Perms to Fail-Shut by Default ([Merge
Request](https://gitlab.com/crafty-controller/crafty-4/-/merge_requests/1040))

##### Tweaks

- Bump cryptography for CVE-2026-26007 ([Merge
Request](https://gitlab.com/crafty-controller/crafty-4/-/merge_requests/1017))
- Fallback code block to automatically parse Java Versions on Arch Linux
([Merge
Request](https://gitlab.com/crafty-controller/crafty-4/-/merge_requests/845))
- Show total system RAM in dashboard memory tooltip ([Merge
Request](https://gitlab.com/crafty-controller/crafty-4/-/merge_requests/1034))
- Add busy timeout to sqlite connections ([Merge
Request](https://gitlab.com/crafty-controller/crafty-4/-/merge_requests/1028))
- Use exception instead of error in exception handlers ([Merge
Request](https://gitlab.com/crafty-controller/crafty-4/-/merge_requests/1038))
<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-15 18:24:02 +02:00
TrueCharts Bot fcbbe4e82e fix(kromgo): update image ghcr.io/home-operations/kromgo 0.14.7 → 0.14.8 (#49155) 2026-06-15 18:23:39 +02:00
TrueCharts Bot 21b3dd3b26 feat(redisinsight): update image docker.io/redislabs/redisinsight 3.4.2 → 3.6.0 (#49160)
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| docker.io/redislabs/redisinsight | minor | `85562d6` → `aa21bbd` |

---

> [!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:eyJjcmVhdGVkSW5WZXIiOiI0My4xMzAuMSIsInVwZGF0ZWRJblZlciI6IjQzLjEzMC4xIiwidGFyZ2V0QnJhbmNoIjoibWFzdGVyIiwibGFiZWxzIjpbImFwcC9yZWRpc2luc2lnaHQiLCJhdXRvbWVyZ2UiLCJyZW5vdmF0ZS9jb250YWluZXIiLCJ0eXBlL21pbm9yIl19-->
2026-06-15 18:23:37 +02:00
TrueCharts Bot 9e873c47c3 fix(qbitrr): update image docker.io/feramance/qbitrr v5.12.5 → v5.12.6 (#49157) 2026-06-15 18:23:28 +02:00