Skip to content

feat: speedtest visualization webview#890

Draft
EhabY wants to merge 2 commits intomainfrom
feat/speedtest-visualization-888
Draft

feat: speedtest visualization webview#890
EhabY wants to merge 2 commits intomainfrom
feat/speedtest-visualization-888

Conversation

@EhabY
Copy link
Copy Markdown
Collaborator

@EhabY EhabY commented Apr 15, 2026

  • After running a speed test, results are now displayed in a lightweight Canvas-based chart instead of raw JSON
  • The webview shows throughput over time with hover tooltips, a summary header, and a "View JSON" button
  • Accepts duration as seconds with a real-time progress bar
  • Extracts createBaseWebviewConfig so lightweight webviews (no React) can reuse the shared Vite config
  • Adds typed IPC via SpeedtestApi using the existing defineCommand/defineNotification pattern
  • Exposes extensionUri through ServiceContainer instead of constructor param sprawl

The speedtest webview bundle is 4.5KB JS + 1.4KB CSS (no external charting library).

Closes #888

@EhabY EhabY marked this pull request as draft April 15, 2026 09:08
EhabY added 2 commits April 16, 2026 18:33
After running a speed test, results are now displayed in a lightweight
Canvas-based chart (4.5KB JS) instead of raw JSON. The webview shows
throughput over time with hover tooltips, a summary header, and a
"View JSON" button for the raw data.

- Add `packages/speedtest/` webview (vanilla TS, no framework)
- Extract `createBaseWebviewConfig` from the React-specific variant
  so lightweight webviews can reuse the shared Vite config
- Add typed IPC via `SpeedtestApi` in `@repo/shared`
- Accept duration as seconds, show real-time progress bar
- Expose `extensionUri` through `ServiceContainer`
- Time-proportional x-axis with dashed leader line from t=0
- Uniform tick labels with smart unit selection (s/m/h) that scale
  from seconds to hours
- Dynamic y-axis padding based on measured label width
- Binary search hit-test with crosshair-snap for dense data
- ResizeObserver debounced via requestAnimationFrame
- Tooltip clamped to container bounds
- General cleanup: named constants, single-pass data prep, responsive
  layout, safer error handling, input validation, missing dependency
@EhabY EhabY force-pushed the feat/speedtest-visualization-888 branch from b4cb6cc to a37b1ac Compare April 16, 2026 15:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Speedtest visualization in a lightweight webview

1 participant