Skip to content

GUI Journey: Probe Live Telemetry Watch

This page documents the probe-gui-watch journey, which exercises the live telemetry pipeline on the Probe screen — subscription handshake, per-device row streaming, and expand-to-detail interaction.

Overview

Journey ID: probe-gui-watchStatus: Implemented (placeholder artefacts — real recording pending on user Mac) Last Updated: 2026-04-19

What you'll see

  • App boots on Planner; cursor moves to the sidebar and selects Probe.
  • Probe screen opens empty for a brief moment while the telemetry subscription opens.
  • First device row animates in (GPU 0, VRAM 41.2 / 48.0 GB, utilisation 63%), with a rolling sparkline.
  • Three more devices join the list; utilisation and temperature values tick live for about five seconds.
  • User hovers GPU 0, then clicks the row — the per-process breakdown panel slides down with CUDA context entries, power budget bar, and a pinned status header that keeps updating.

Journey not yet recorded.

Run the journey recorder to capture interactions:

./apps/macos/HwLedgerUITests/scripts/run-journeys.sh

What to watch for

  • First-row latency — the gap between "subscription opens" and "first row visible" should be under 500 ms on a warm cache.
  • Sparkline smoothness — the rolling utilisation chart should never jump or reset; it is backed by the same ring buffer the CLI probe watch uses.
  • Expanded panel stability — once a device row is expanded, the header values continue to tick but the expanded detail does not unmount or re-layout.

Reproduce

bash
# 1. Bundle the app (Debug is enough for UI tests)
cd apps/macos/HwLedgerUITests
./scripts/bundle-app.sh --no-codesign debug

# 2. Grant Accessibility + Screen Recording in System Settings for Terminal/Xcode.

# 3. Run the journey (records recording.mp4 + keyframes + manifest.json)
swift test --filter ProbeJourneyTests/testProbeGUIWatch

# 4. Sync artefacts into the docs-site public tree
cd ../../..
bash docs-site/scripts/sync-journey-artefacts.sh

Source

Released under the Apache 2.0 License.