From 455e86571a9402359e38090c83455384c60b342f Mon Sep 17 00:00:00 2001
From: shamoon <4887959+shamoon@users.noreply.github.com>
Date: Wed, 5 Nov 2025 08:11:24 -0800
Subject: [PATCH 1/7] Chore: improve event hash generation in iCal integration
(#5938)
---
src/widgets/calendar/integrations/ical.jsx | 10 ++++++++--
1 file changed, 8 insertions(+), 2 deletions(-)
diff --git a/src/widgets/calendar/integrations/ical.jsx b/src/widgets/calendar/integrations/ical.jsx
index 764e57f41..1bf5ebee6 100644
--- a/src/widgets/calendar/integrations/ical.jsx
+++ b/src/widgets/calendar/integrations/ical.jsx
@@ -106,13 +106,19 @@ export default function Integration({ config, params, setEvents, hideErrors, tim
};
const eventsToAdd = [];
- events.forEach((event, index) => {
+ events.forEach((event) => {
const occurrences = getOcurrencesFromRange(event);
occurrences.forEach((icalDate) => {
const date = icalDate.toJSDate();
- const hash = simpleHash(`${event.id}-${event.title}-${index}-${date.toString()}`);
+ const occurrenceTimestamp = date.getTime();
+ const eventIdentifier =
+ event.id ??
+ simpleHash(
+ `${event.title ?? ""}-${event.type ?? ""}-${event.status ?? ""}-${event.url ?? ""}-${event.location ?? ""}`,
+ );
+ const hash = simpleHash(`${eventIdentifier}-${occurrenceTimestamp}`);
let title = event.title;
if (showName) {
From 6faf32eae9f13894238a67ea17b90e8391ae9e08 Mon Sep 17 00:00:00 2001
From: shamoon <4887959+shamoon@users.noreply.github.com>
Date: Wed, 5 Nov 2025 08:32:33 -0800
Subject: [PATCH 2/7] Chore: better guard against empty data in komodo widget
---
src/widgets/komodo/component.jsx | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/widgets/komodo/component.jsx b/src/widgets/komodo/component.jsx
index 4d22758e5..8034c14b0 100644
--- a/src/widgets/komodo/component.jsx
+++ b/src/widgets/komodo/component.jsx
@@ -32,7 +32,7 @@ export default function Component({ service }) {
if (
(!widget.showStacks && !containersData) ||
- (widget.showSummary && (!stacksData || !serversData)) ||
+ (widget.showSummary && (!containersData || !stacksData || !serversData)) ||
(widget.showStacks && !stacksData)
) {
return widget.showSummary ? (
From 3ef7031eb02e714334bd29b2da1abd85358facac Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Wed, 5 Nov 2025 16:41:24 +0000
Subject: [PATCH 3/7] Chore(deps): Bump docker/setup-qemu-action from 3.6.0 to
3.7.0 (#5939)
---
.github/workflows/docker-publish.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.github/workflows/docker-publish.yml b/.github/workflows/docker-publish.yml
index 0f9aec8ff..864d37800 100644
--- a/.github/workflows/docker-publish.yml
+++ b/.github/workflows/docker-publish.yml
@@ -127,7 +127,7 @@ jobs:
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Setup QEMU
- uses: docker/setup-qemu-action@v3.6.0
+ uses: docker/setup-qemu-action@v3.7.0
- name: Setup Docker buildx
uses: docker/setup-buildx-action@v3
From afc0fe29ee7441dd1e5ad2eaf21a07e67356db57 Mon Sep 17 00:00:00 2001
From: shamoon <4887959+shamoon@users.noreply.github.com>
Date: Sat, 8 Nov 2025 12:32:41 -0800
Subject: [PATCH 4/7] Fix: enforce max field blocks for esp home widget (#5951)
---
src/widgets/esphome/component.jsx | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/src/widgets/esphome/component.jsx b/src/widgets/esphome/component.jsx
index e0f020899..1e9dc2517 100644
--- a/src/widgets/esphome/component.jsx
+++ b/src/widgets/esphome/component.jsx
@@ -14,6 +14,12 @@ export default function Component({ service }) {
return ;
}
+ if (!widget.fields || widget.fields.length === 0) {
+ widget.fields = ["online", "offline", "offline_alt", "total"];
+ } else if (widget.fields.length > 4) {
+ widget.fields = widget.fields.slice(0, 4);
+ }
+
if (!resultData) {
return (
From 0dafc792f7afc7faf0d867dbbafe952c17da49c4 Mon Sep 17 00:00:00 2001
From: Alessandro Travi
Date: Tue, 11 Nov 2025 08:07:28 +0100
Subject: [PATCH 5/7] Documentation: note support for omada controller version
6 (#5961)
---
docs/widgets/services/omada.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/widgets/services/omada.md b/docs/widgets/services/omada.md
index f42e73a6c..e83038d82 100644
--- a/docs/widgets/services/omada.md
+++ b/docs/widgets/services/omada.md
@@ -3,7 +3,7 @@ title: Omada
description: Omada Widget Configuration
---
-The widget supports controller versions 3, 4 and 5.
+The widget supports controller versions 3, 4, 5 and 6.
Allowed fields: `["connectedAp", "activeUser", "alerts", "connectedGateways", "connectedSwitches"]`.
From 8a75c9b6e3a6e2246acffa86c445458cc8a36095 Mon Sep 17 00:00:00 2001
From: shamoon <4887959+shamoon@users.noreply.github.com>
Date: Tue, 11 Nov 2025 08:56:44 -0800
Subject: [PATCH 6/7] Fixhancement: improve UID support (#5963)
---
Dockerfile | 2 ++
docker-entrypoint.sh | 4 ++--
2 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/Dockerfile b/Dockerfile
index d58737923..2e5ff0339 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -51,6 +51,8 @@ COPY --link --from=builder --chown=1000:1000 /app/.next/static/ ./.next/static
RUN apk add --no-cache su-exec iputils-ping shadow
+USER root
+
ENV NODE_ENV=production
ENV HOSTNAME=0.0.0.0
ENV PORT=3000
diff --git a/docker-entrypoint.sh b/docker-entrypoint.sh
index 16ce33aa6..5e8f7aa56 100755
--- a/docker-entrypoint.sh
+++ b/docker-entrypoint.sh
@@ -57,8 +57,8 @@ if [ -d /app/.next ]; then
fi
# Drop privileges (when asked to) if root, otherwise run as current user
-if [ "$(id -u)" == "0" ] && [ "${PUID}" != "0" ]; then
- su-exec ${PUID}:${PGID} "$@"
+if [ "$(id -u)" = "0" ] && [ "${PUID}" != "0" ]; then
+ exec su-exec ${PUID}:${PGID} "$@"
else
exec "$@"
fi
From 57b193b037f8f354f7bf19a3ef3018a1b3c0d234 Mon Sep 17 00:00:00 2001
From: "github-actions[bot]"
<41898282+github-actions[bot]@users.noreply.github.com>
Date: Tue, 11 Nov 2025 08:59:39 -0800
Subject: [PATCH 7/7] New Crowdin translations by GitHub Action (#5953)
---
public/locales/zh-Hans/common.json | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/public/locales/zh-Hans/common.json b/public/locales/zh-Hans/common.json
index 76b850f6a..a6eda2e21 100644
--- a/public/locales/zh-Hans/common.json
+++ b/public/locales/zh-Hans/common.json
@@ -200,10 +200,10 @@
"rutorrent": {
"active": "活动中",
"upload": "Upload",
- "download": "Download"
+ "download": "下载"
},
"transmission": {
- "download": "Download",
+ "download": "下载",
"upload": "",
"leech": "Leech",
"seed": "Seed"
@@ -223,8 +223,8 @@
"invalid": "Invalid"
},
"deluge": {
- "download": "Download",
- "upload": "Upload",
+ "download": "下载",
+ "upload": "上传",
"leech": "Leech",
"seed": "Seed"
},