From 7de281c3be17b55c608b3b405b3bbd853f9ab59b Mon Sep 17 00:00:00 2001 From: ElwinLiu Date: Fri, 24 Apr 2026 23:34:22 -0400 Subject: [PATCH] fix(status): clarify runtime diagnostics labels --- frontend/src/pages/status/StatusPage.tsx | 40 +++++++++++++++++++----- frontend/tests/e2e/status.spec.ts | 3 +- 2 files changed, 35 insertions(+), 8 deletions(-) diff --git a/frontend/src/pages/status/StatusPage.tsx b/frontend/src/pages/status/StatusPage.tsx index 35fa86d..0338b03 100644 --- a/frontend/src/pages/status/StatusPage.tsx +++ b/frontend/src/pages/status/StatusPage.tsx @@ -120,6 +120,7 @@ function StatusContent({ status }: { status: StatusResponse }) { const release = status.release ?? {}; const legacy = status.legacy ?? {}; const legacyDocker = asRecord(legacy.docker); + const runtimeToolRecords = withRuntimeToolPurposes(asRecordArray(legacy.software)); const releaseLabel = formatValue(release.releaseTag) || shortCommit(status.build?.sourceCommit) || "unknown"; const releaseDetail = shortCommit(release.sourceCommit) || shortCommit(status.build?.sourceCommit) || formatValue(status.build?.sourceRefName); const compilerState = formatValue(status.umplesync?.alive) === "true" ? "Running" : "Not running"; @@ -180,28 +181,28 @@ function StatusContent({ status }: { status: StatusResponse }) {
- + - - + + - + - + - +
@@ -297,6 +298,31 @@ function buildHealthRecords(status: StatusResponse): HealthRecord[] { return [...services, ...checks, ...dependencies]; } +function withRuntimeToolPurposes(records: Array>): Array> { + return records.map((record) => ({ + name: record.name, + purpose: runtimeToolPurpose(formatValue(record.name)), + ...withoutKeys(record, ["name"]), + })); +} + +function runtimeToolPurpose(name: string): string { + switch (name) { + case "php": + return "Old UmpleOnline PHP runtime probe; not required by the new app"; + case "java": + return "Runs umplesync.jar, the Umple compiler service"; + case "dot": + return "Graphviz renderer for diagram layout output"; + case "gcc": + return "Native C/C++ compiler used by generated-code workflows"; + case "docker": + return "Container runtime used for services and isolated code execution"; + default: + return "Runtime command reported by the status endpoint"; + } +} + function HealthTable({ records }: { records: HealthRecord[] }) { if (records.length === 0) { return

No health records reported.

; diff --git a/frontend/tests/e2e/status.spec.ts b/frontend/tests/e2e/status.spec.ts index ecaca25..5bbd527 100644 --- a/frontend/tests/e2e/status.spec.ts +++ b/frontend/tests/e2e/status.spec.ts @@ -69,7 +69,8 @@ test.describe('Status dashboard', () => { await expect(page.getByTestId('status-release-runtime')).toContainText('e3cdcad2cf7de3b9e510efc58856086406004718') await expect(page.getByTestId('status-release-runtime')).toContainText('http://code-exec:3000') await expect(page.getByTestId('status-umplesync')).toContainText('Umple compiler listener ready') - await expect(page.getByTestId('status-diagnostics')).toContainText('Legacy software') + await expect(page.getByTestId('status-diagnostics')).toContainText('Runtime tools') + await expect(page.getByTestId('status-diagnostics')).toContainText('Runs umplesync.jar') await expect(page.getByTestId('status-diagnostics')).toContainText('umpleonline-backend') await expect(page.locator('.react-resizable-handle')).toHaveCount(0) await expect(page.locator('.status-widget-drag-handle')).toHaveCount(0)