(v0.3.1) Dashboard v2: Topology View, Remote Remediation & Fleet Redesign
env-doctor v0.3.1
Dashboard v2: Topology View, Remote Remediation & Fleet Redesign
This release transforms the fleet dashboard from a static monitoring UI into an interactive operations console with a graph-based topology view, remote command execution, and redesigned fleet health page.
Topology View
An Obsidian-style force-directed node graph that shows the dashboard hub and all connected GPU machines at a glance.
- GPU-card-shaped nodes sized by hardware tier — budget GPUs get a small card, datacenter GPUs (A100, H100) get a large server slab with rack lines and LED indicators
- Hub node displays the env-doctor stethoscope logo with a blue glow border
- Click any GPU node to zoom in and see hardware details (left panel) and diagnostics (right panel)
- Drag any node — hub or machine — and watch the graph react with spring physics
- Scroll to zoom, pan by dragging empty space, press Escape to reset
Remote Remediation
Queue env-doctor CLI commands directly from the dashboard — they execute on the GPU machine on its next check-in. No SSH, no inbound ports, works behind NATs and firewalls.
Dashboard (operator clicks "▶ Run")
└──▶ Command queued in database (status: pending)
GPU Machine (scheduled cron)
└──▶ env-doctor check --report-to http://<dashboard>:8765
└──▶ Server returns pending commands in HTTP response
└──▶ CLI executes commands, posts output back
└──▶ CLI re-runs check to verify fix
- Only
env-doctor/doctorprefixed commands are accepted (security scoped) - Terminal output is printed locally and posted back to the dashboard
- Commands that crash mid-execution still report their error to the server
- The Fleet page shows real-time command status: pending → running → done/failed with full output
Fleet Overview Redesign
The fleet page is now an operations-focused view for managing GPU health at scale.
- Pie chart showing pass/warning/fail distribution across the fleet
- Health gauge per machine (SVG arc, scored by issue count)
- "▶ Run on Machine" buttons for each recommended command — one click to queue
- Smart recommendations: broken libraries get "Fix" actions, missing libraries get "Install" actions, plus "Re-run diagnostics"
- Expandable rows with full diagnostics per machine
Bug Fixes
- Library status logic: Missing libraries no longer inflate issue count or trigger warnings when at least one library is installed
- Install command fallback: Libraries without a CUDA-specific mapping (e.g. jax) now fall back to
pip install <lib>instead of crashing sys.exit()removed from install command: Previously killed the process before remote command results could be posted back- Windows encoding fix: Remote command execution uses UTF-8 instead of system default cp1252
- Heartbeat always checks for pending commands: No more
--forcerequired to pick up queued commands
Dark Theme
Consistent dark background (#0d1117) across all pages — topology, fleet, and machine detail. Sidebar includes the env-doctor logo and a subtle "Feedback / Issues" link to GitHub.
Install / Upgrade
pip install --upgrade env-doctor
# With dashboard support
pip install --upgrade "env-doctor[dashboard]"Quick Start
# Start dashboard
env-doctor dashboard
# Register machines (run on each GPU node)
env-doctor check --report-to http://<dashboard-ip>:8765
# Set up automatic check-ins
env-doctor report install --url http://<dashboard-ip>:8765 --interval 5mFull changelog: https://github.com/mitulgarg/env-doctor/blob/main/CHANGELOG.md