From 70771cc9a4fdb7183c4b49f7e303da13343627a2 Mon Sep 17 00:00:00 2001 From: Vladimir Perovic Date: Sat, 22 Aug 2026 18:02:28 +0200 Subject: [PATCH 1/7] fix(packaging): preserve executable bits for dist integration files A fresh checkout carries init.d/pppoe-wan and init.d/cloudflared as 100644, so make dist-amd64 produced an archive whose appliance payload failed ValidateApplianceFileModes at router-update stage time (appliance executable bit is missing: init.d/pppoe-wan). Copy the modes that routerd.initd and router-applyd.initd already have and enforce them explicitly after the copy, matching the executable contract required by slot staging. --- Makefile | 4 ++-- packaging/alpine/cloudflared.initd | 0 packaging/alpine/pppoe-wan.initd | 0 3 files changed, 2 insertions(+), 2 deletions(-) mode change 100644 => 100755 packaging/alpine/cloudflared.initd mode change 100644 => 100755 packaging/alpine/pppoe-wan.initd diff --git a/Makefile b/Makefile index 7c5ab528..6a0e7afb 100644 --- a/Makefile +++ b/Makefile @@ -127,7 +127,7 @@ dist-arm64: build-linux-arm64 web-build @cp packaging/alpine/ip-up.d-minimalrouter-qos build/dist/minimalrouter-linux-arm64/ip-up.d-minimalrouter-qos @cp packaging/alpine/install-console.sh build/dist/minimalrouter-linux-arm64/install.sh @cp packaging/alpine/install-dist.sh build/dist/minimalrouter-linux-arm64/install-core.sh - @chmod +x build/dist/minimalrouter-linux-arm64/install.sh build/dist/minimalrouter-linux-arm64/install-core.sh build/dist/minimalrouter-linux-arm64/slot-exec + @chmod +x build/dist/minimalrouter-linux-arm64/install.sh build/dist/minimalrouter-linux-arm64/install-core.sh build/dist/minimalrouter-linux-arm64/slot-exec build/dist/minimalrouter-linux-arm64/init.d/routerd build/dist/minimalrouter-linux-arm64/init.d/router-applyd build/dist/minimalrouter-linux-arm64/init.d/pppoe-wan build/dist/minimalrouter-linux-arm64/init.d/cloudflared build/dist/minimalrouter-linux-arm64/ip-up.d-minimalrouter-qos @tar czf build/minimalrouter-linux-arm64.tar.gz -C build/dist minimalrouter-linux-arm64 @sh scripts/checksum-file.sh build/minimalrouter-linux-arm64.tar.gz build/minimalrouter-linux-arm64.tar.gz.sha256 @echo "=== Distribution: build/minimalrouter-linux-arm64.tar.gz ===" @@ -163,7 +163,7 @@ dist-amd64: build-linux-amd64 web-build @cp packaging/alpine/ip-up.d-minimalrouter-qos build/dist/minimalrouter-linux-amd64/ip-up.d-minimalrouter-qos @cp packaging/alpine/install-console.sh build/dist/minimalrouter-linux-amd64/install.sh @cp packaging/alpine/install-dist.sh build/dist/minimalrouter-linux-amd64/install-core.sh - @chmod +x build/dist/minimalrouter-linux-amd64/install.sh build/dist/minimalrouter-linux-amd64/install-core.sh build/dist/minimalrouter-linux-amd64/slot-exec + @chmod +x build/dist/minimalrouter-linux-amd64/install.sh build/dist/minimalrouter-linux-amd64/install-core.sh build/dist/minimalrouter-linux-amd64/slot-exec build/dist/minimalrouter-linux-amd64/init.d/routerd build/dist/minimalrouter-linux-amd64/init.d/router-applyd build/dist/minimalrouter-linux-amd64/init.d/pppoe-wan build/dist/minimalrouter-linux-amd64/init.d/cloudflared build/dist/minimalrouter-linux-amd64/ip-up.d-minimalrouter-qos @tar czf build/minimalrouter-linux-amd64.tar.gz -C build/dist minimalrouter-linux-amd64 @sh scripts/checksum-file.sh build/minimalrouter-linux-amd64.tar.gz build/minimalrouter-linux-amd64.tar.gz.sha256 @echo "=== Distribution: build/minimalrouter-linux-amd64.tar.gz ===" diff --git a/packaging/alpine/cloudflared.initd b/packaging/alpine/cloudflared.initd old mode 100644 new mode 100755 diff --git a/packaging/alpine/pppoe-wan.initd b/packaging/alpine/pppoe-wan.initd old mode 100644 new mode 100755 From 709d55048dd8801328c04aaf308d663c0d1eea96 Mon Sep 17 00:00:00 2001 From: Vladimir Perovic Date: Sat, 22 Aug 2026 18:11:03 +0200 Subject: [PATCH 2/7] fix(dashboard): keep device tables inside their containers The connected-devices table forced a 1160px min-width with fixed 230px/270px columns, so on narrower effective viewports the Actions column ran past the container edge and clipped the Reserve IP and Pause Internet buttons. Let the table compress instead: lower the floor, slim the fixed columns, wrap long hostnames, and allow DHCP reservation rows to wrap while keeping MAC/IP codes intact. Drop the redundant Online label - a row in Connected devices is online by definition - so the activity cell only shows the lease countdown. --- web/src/ClassicDashboard.css | 4 ++-- web/src/components/DeviceLeasesTable.css | 10 +++++++--- web/src/components/DeviceLeasesTable.tsx | 2 +- 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/web/src/ClassicDashboard.css b/web/src/ClassicDashboard.css index 39373645..9ea99e8a 100644 --- a/web/src/ClassicDashboard.css +++ b/web/src/ClassicDashboard.css @@ -3237,8 +3237,8 @@ .static-lease-search{margin:.9rem 0 .3rem;max-width:360px} .static-leases table{font-size:.92rem} .static-leases thead th{padding:.55rem .9rem;font-size:.68rem} -.static-leases tbody td{padding:.38rem .9rem} -.static-leases tbody td code{font-size:.85rem} +.static-leases tbody td{padding:.38rem .9rem;overflow-wrap:anywhere} +.static-leases tbody td code{font-size:.85rem;white-space:nowrap} .static-leases .empty-state{padding:1rem} @media(max-width:640px){.static-lease-search{max-width:none}} diff --git a/web/src/components/DeviceLeasesTable.css b/web/src/components/DeviceLeasesTable.css index efe5d94d..5b4300f8 100644 --- a/web/src/components/DeviceLeasesTable.css +++ b/web/src/components/DeviceLeasesTable.css @@ -3,15 +3,15 @@ } .dashboard-app .modern-device-section .elegant-device-table { - min-width: 1160px; + min-width: 560px; } .dashboard-app .modern-device-section .elegant-col-expires { - width: 230px; + width: 170px; } .dashboard-app .modern-device-section .elegant-col-actions { - width: 270px; + width: 220px; } .dashboard-app .modern-device-section .elegant-device-table th, @@ -32,6 +32,10 @@ flex: 0 0 auto; } +.dashboard-app .modern-device-section .elegant-cell-name { + overflow-wrap: anywhere; +} + .device-reserve-button { display: inline-flex; min-height: 40px; diff --git a/web/src/components/DeviceLeasesTable.tsx b/web/src/components/DeviceLeasesTable.tsx index 78ba7dba..dee82cd8 100644 --- a/web/src/components/DeviceLeasesTable.tsx +++ b/web/src/components/DeviceLeasesTable.tsx @@ -358,7 +358,7 @@ export default function DeviceLeasesTable({ leases, config, onReservationSaved } {row.ip_address} {row.mac || "Unknown"} - {pause ? {pauseLabel(pause)} : row.online ?