← back to Exo
dashboard: show macOS version in debug mode (#1454)
6950f9410967bfcade912c9ac2e557e89e2aeb85 · 2026-02-12 09:56:55 -0800 · Alex Cheema
## Motivation
When debugging cluster issues, it's useful to see which macOS version
each node is running — especially since version mismatches can cause
compatibility problems. The OS version data is already collected by the
identity gatherer but wasn't shown in the topology graph.
## Changes
- Added OS version label (e.g. "macOS 15.2") to each node in the
topology graph when debug mode is enabled
- Renders below the existing TB and RDMA debug labels using the same
styling conventions
- Sources data from the existing `nodeIdentities` store (no backend
changes needed)
## Why It Works
The `nodeIdentities` store already contains `osVersion` for each node.
We simply read it in the `TopologyGraph` component and append a text
label in the debug section, following the exact same pattern as the TB
and RDMA labels.
## Test Plan
### Manual Testing
<!-- Hardware: MacBook Pro -->
- Enable debug mode in the dashboard
- Verify OS version label appears below TB/RDMA labels on each node
- Verify label disappears when debug mode is disabled
### Automated Testing
- Dashboard build passes (`npm run build`)
---------
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Co-authored-by: rltakashige <rl.takashige@gmail.com>
Co-authored-by: Ryuichi Leo Takashige <leo@exolabs.net>
Files touched
M dashboard/src/lib/components/TopologyGraph.svelte
Diff
commit 6950f9410967bfcade912c9ac2e557e89e2aeb85
Author: Alex Cheema <41707476+AlexCheema@users.noreply.github.com>
Date: Thu Feb 12 09:56:55 2026 -0800
dashboard: show macOS version in debug mode (#1454)
## Motivation
When debugging cluster issues, it's useful to see which macOS version
each node is running — especially since version mismatches can cause
compatibility problems. The OS version data is already collected by the
identity gatherer but wasn't shown in the topology graph.
## Changes
- Added OS version label (e.g. "macOS 15.2") to each node in the
topology graph when debug mode is enabled
- Renders below the existing TB and RDMA debug labels using the same
styling conventions
- Sources data from the existing `nodeIdentities` store (no backend
changes needed)
## Why It Works
The `nodeIdentities` store already contains `osVersion` for each node.
We simply read it in the `TopologyGraph` component and append a text
label in the debug section, following the exact same pattern as the TB
and RDMA labels.
## Test Plan
### Manual Testing
<!-- Hardware: MacBook Pro -->
- Enable debug mode in the dashboard
- Verify OS version label appears below TB/RDMA labels on each node
- Verify label disappears when debug mode is disabled
### Automated Testing
- Dashboard build passes (`npm run build`)
---------
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Co-authored-by: rltakashige <rl.takashige@gmail.com>
Co-authored-by: Ryuichi Leo Takashige <leo@exolabs.net>
---
dashboard/src/lib/components/TopologyGraph.svelte | 18 ++++++++++++++++++
1 file changed, 18 insertions(+)
diff --git a/dashboard/src/lib/components/TopologyGraph.svelte b/dashboard/src/lib/components/TopologyGraph.svelte
index 2e77050d..0d0d3c3d 100644
--- a/dashboard/src/lib/components/TopologyGraph.svelte
+++ b/dashboard/src/lib/components/TopologyGraph.svelte
@@ -7,6 +7,7 @@
debugMode,
nodeThunderboltBridge,
nodeRdmaCtl,
+ nodeIdentities,
type NodeInfo,
} from "$lib/stores/app.svelte";
@@ -33,6 +34,7 @@
const debugEnabled = $derived(debugMode());
const tbBridgeData = $derived(nodeThunderboltBridge());
const rdmaCtlData = $derived(nodeRdmaCtl());
+ const identitiesData = $derived(nodeIdentities());
function getNodeLabel(nodeId: string): string {
const node = data?.nodes?.[nodeId];
@@ -1177,6 +1179,22 @@
.attr("font-size", debugFontSize)
.attr("font-family", "SF Mono, Monaco, monospace")
.text(rdmaText);
+ debugLabelY += debugLineHeight;
+ }
+
+ const identity = identitiesData[nodeInfo.id];
+ if (identity?.osVersion) {
+ nodeG
+ .append("text")
+ .attr("x", nodeInfo.x)
+ .attr("y", debugLabelY)
+ .attr("text-anchor", "middle")
+ .attr("fill", "rgba(179,179,179,0.7)")
+ .attr("font-size", debugFontSize)
+ .attr("font-family", "SF Mono, Monaco, monospace")
+ .text(
+ `macOS ${identity.osVersion}${identity.osBuildVersion ? ` (${identity.osBuildVersion})` : ""}`,
+ );
}
}
});
← d0c44273 feat: add enable_thinking toggle for thinking-capable models
·
back to Exo
·
Add support for Step 3.5 flash! (#1460) 5a286427 →