Follow-up to AIGOV-193.
When a user is connected to a workspace and the network is degraded, the extension should detect it and surface it in the status bar.
Detection
The extension already polls NetworkInfo from the CLI proxy every 3 seconds. We add three configurable thresholds:
coder.networkThreshold.latencyMs (default: 200) - latency above this triggers a warning
coder.networkThreshold.downloadMbps (default: 5) - download speed below this triggers a warning
coder.networkThreshold.uploadMbps (default: 0) - upload speed below this triggers a warning (disabled by default)
Setting any threshold to 0 disables that check. Each threshold is evaluated independently. To avoid flicker, the condition must persist across 3 consecutive polls (~9 seconds) before triggering, and 3 consecutive healthy polls to clear.
Status bar UX
-
The existing network status bar item turns yellow (statusBarItem.warningBackground) when any threshold is crossed.
-
The hover tooltip shows all live metrics with warning markers after the offending values:
Latency: 350ms ⚠ (threshold: 200ms)
Download: 45.2 Mbps
Upload: 12.1 Mbps
Connection: us-east (relay)
Click for diagnostics
-
Click action depends on what's degraded:
- Only latency is bad: runs Ping Workspace
- Only download/upload is bad: runs Speed Test
- Multiple thresholds crossed: opens a QuickPick to choose between Ping, Speed Test, and Support Bundle
-
In normal state, the tooltip shows the same metrics without warning markers.
Files to change
src/remote/sshProcess.ts - threshold checking, warning state, tooltip, click handler
package.json - new setting declarations
Part of AIGOV-193.
Follow-up to AIGOV-193.
When a user is connected to a workspace and the network is degraded, the extension should detect it and surface it in the status bar.
Detection
The extension already polls
NetworkInfofrom the CLI proxy every 3 seconds. We add three configurable thresholds:coder.networkThreshold.latencyMs(default: 200) - latency above this triggers a warningcoder.networkThreshold.downloadMbps(default: 5) - download speed below this triggers a warningcoder.networkThreshold.uploadMbps(default: 0) - upload speed below this triggers a warning (disabled by default)Setting any threshold to 0 disables that check. Each threshold is evaluated independently. To avoid flicker, the condition must persist across 3 consecutive polls (~9 seconds) before triggering, and 3 consecutive healthy polls to clear.
Status bar UX
The existing network status bar item turns yellow (
statusBarItem.warningBackground) when any threshold is crossed.The hover tooltip shows all live metrics with warning markers after the offending values:
Click action depends on what's degraded:
In normal state, the tooltip shows the same metrics without warning markers.
Files to change
src/remote/sshProcess.ts- threshold checking, warning state, tooltip, click handlerpackage.json- new setting declarationsPart of AIGOV-193.