From ea60aa701e56dc311af386a830557f46dd0f580e Mon Sep 17 00:00:00 2001 From: Fred KISSIE Date: Wed, 8 Jul 2026 01:39:52 +0200 Subject: [PATCH 1/2] =?UTF-8?q?=F0=9F=90=9B=20fix=20sitetable=20page=20cra?= =?UTF-8?q?shing=20because=20of=20invalid=20version?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/SitesTable.tsx | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/components/SitesTable.tsx b/src/components/SitesTable.tsx index cac639222..7d61345a2 100644 --- a/src/components/SitesTable.tsx +++ b/src/components/SitesTable.tsx @@ -359,10 +359,12 @@ export default function SitesTable({ cell: ({ row }) => { const originalRow = row.original; - let updateAvailable = + let updateAvailable = Boolean( latestNewtVersion && originalRow.newtVersion && - semver.lt(originalRow.newtVersion, latestNewtVersion); + semver.valid(originalRow.newtVersion) && + semver.lt(originalRow.newtVersion, latestNewtVersion) + ); if (originalRow.type === "newt") { return ( From 92775a51cae31f78a4cf16f556ef6d95740d409d Mon Sep 17 00:00:00 2001 From: Fred KISSIE Date: Wed, 8 Jul 2026 01:44:28 +0200 Subject: [PATCH 2/2] =?UTF-8?q?=F0=9F=90=9B=20fix=20invalid=20semver=20ver?= =?UTF-8?q?sion=20causing=20crashes=20in=20frontend?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../settings/clients/user/[niceId]/general/page.tsx | 6 +++--- src/components/MachineClientsTable.tsx | 9 ++++++--- src/components/UserDevicesTable.tsx | 9 ++++++--- 3 files changed, 15 insertions(+), 9 deletions(-) diff --git a/src/app/[orgId]/settings/clients/user/[niceId]/general/page.tsx b/src/app/[orgId]/settings/clients/user/[niceId]/general/page.tsx index 8573e8199..0ed7c7b16 100644 --- a/src/app/[orgId]/settings/clients/user/[niceId]/general/page.tsx +++ b/src/app/[orgId]/settings/clients/user/[niceId]/general/page.tsx @@ -195,9 +195,9 @@ export default function GeneralPage() { if (agent in latestPlatformVersions) { const agentVersion = latestPlatformVersions[agent]; - updateAvailable = semver.lt( - client.olmVersion, - agentVersion.latestVersion + updateAvailable = Boolean( + semver.valid(client.olmVersion) && + semver.lt(client.olmVersion, agentVersion.latestVersion) ); } } diff --git a/src/components/MachineClientsTable.tsx b/src/components/MachineClientsTable.tsx index c1f4bd347..4143b37eb 100644 --- a/src/components/MachineClientsTable.tsx +++ b/src/components/MachineClientsTable.tsx @@ -404,9 +404,12 @@ export default function MachineClientsTable({ if (agent in latestPlatformVersions) { const agentVersion = latestPlatformVersions[agent]; - updateAvailable = semver.lt( - originalRow.olmVersion, - agentVersion.latestVersion + updateAvailable = Boolean( + semver.valid(originalRow.olmVersion) && + semver.lt( + originalRow.olmVersion, + agentVersion.latestVersion + ) ); } } diff --git a/src/components/UserDevicesTable.tsx b/src/components/UserDevicesTable.tsx index 17a82dfc9..6b881f4e9 100644 --- a/src/components/UserDevicesTable.tsx +++ b/src/components/UserDevicesTable.tsx @@ -588,9 +588,12 @@ export default function UserDevicesTable({ if (agent in latestPlatformVersions) { const agentVersion = latestPlatformVersions[agent]; - updateAvailable = semver.lt( - originalRow.olmVersion, - agentVersion.latestVersion + updateAvailable = Boolean( + semver.valid(originalRow.olmVersion) && + semver.lt( + originalRow.olmVersion, + agentVersion.latestVersion + ) ); } }