Skip to content

feat(vscode): sidebar home dashboard with freshness and theme switcher#650

Merged
RaghavChamadiya merged 1 commit into
mainfrom
feat/vscode-sidebar-home
Jul 2, 2026
Merged

feat(vscode): sidebar home dashboard with freshness and theme switcher#650
RaghavChamadiya merged 1 commit into
mainfrom
feat/vscode-sidebar-home

Conversation

@RaghavChamadiya

Copy link
Copy Markdown
Member

What

The Repowise activity-bar sidebar now opens onto a Home dashboard instead of a stack of tree sections.

  • Hero card: repo name, current branch, hotspot-health score colored by band, trend delta chip, and a sparkline. Falls back to the average score when hotspot scoring is gated on quiet repos.
  • Index freshness row: compares the indexed commit against the live checkout (git extension with a .git/HEAD disk fallback) and offers a one-click incremental update with progress feedback.
  • Launcher cards: one per visualization panel (health, architecture, knowledge graph, refactoring, decisions, docs, branch risk) with live micro-stats, so the panels are discoverable without the command palette.
  • Brand footer with a theme switcher: auto (follow editor) / light / dark, persisted in workspace state and applied to every open Repowise webview immediately.

How

  • The Home view is a contributes.views webview (type: webview) resolved by the same manager that owns the editor-tab panels, sharing the HTML/CSP builder, the typed RPC dispatcher, the refresh epoch, and the theme bridge.
  • One new RPC, homeSummary(), aggregates health overview and trend, refactoring plan count (medium-confidence query), decision count, and freshness behind Promise.allSettled, so a failing endpoint degrades one card instead of the view. Sub-fetches reuse the dashboards' cache keys.
  • New one-way messages: open-view (validated against the panel table), update-index with an update-done ack (the update command now returns its promise so executeCommand resolves on completion), and set-theme broadcast as theme-changed.
  • Sidebar de-noise: the five tree views consolidate into two. A Findings composite nests Health, Hotspots, Ownership, and Dead Code as sections of one tree (badge counts failing health files only); Refactoring stays standalone; the Decisions tree is retired in favor of the timeline panel. Both trees are contributed collapsed.
  • The footer owl ships as two 64px theme-matched PNGs (about 4 KB each) bundled by Vite.

Testing

  • tsc clean for both the host and webview programs.
  • 25/25 webview unit tests, including new Home coverage (hero stats, stale-index update flow, launcher clicks, theme pinning, degraded-summary rendering) and message round-trips for the new envelopes.
  • 4/4 electron smoke tests; host bundle 99.9 KB (budget 300 KB); VSIX 3.56 MB, dogfooded in a real VS Code window.

…and consolidated trees

The activity-bar sidebar previously opened onto a stack of plain tree
sections, with the visualization panels reachable only from the command
palette. It now leads with a Home webview that makes everything the
extension can show discoverable in one click:

- Hero card: repo name, current branch, hotspot-health score with trend
  delta and sparkline (falls back to the average score when hotspot
  scoring is gated on quiet repos).
- Index freshness row comparing the indexed commit against the live
  checkout, with a one-click incremental update. The update command now
  returns its promise so the host can ack completion (update-done) and
  the view can stop its spinner even when the update fails.
- Launcher cards for all seven dashboard panels with live micro-stats
  (open findings, ranked plans, decision count) served by a single
  aggregated homeSummary RPC that reuses the dashboards' cache entries.
- Brand footer with a theme switcher: auto (follow editor), light, or
  dark, persisted host-side and pushed to every open Repowise webview.

Sidebar de-noise: the five tree views collapse into two. A Findings
composite nests Health, Hotspots, Ownership, and Dead Code as sections
of one tree (badge counts failing health files only), Refactoring stays
standalone, and the Decisions tree is retired in favor of the timeline
panel. Both trees are contributed collapsed so Home is the face of the
sidebar.

Live-head resolution and short-sha matching move from the staleness
feature into the shared git adapter so the home summary reuses them.
@RaghavChamadiya
RaghavChamadiya requested a review from swati510 as a code owner July 2, 2026 11:32
@RaghavChamadiya
RaghavChamadiya merged commit 8092ebf into main Jul 2, 2026
6 checks passed
@RaghavChamadiya
RaghavChamadiya deleted the feat/vscode-sidebar-home branch July 2, 2026 11:38
joptimus pushed a commit to joptimus/repowise that referenced this pull request Jul 3, 2026
…and consolidated trees (repowise-dev#650)

The activity-bar sidebar previously opened onto a stack of plain tree
sections, with the visualization panels reachable only from the command
palette. It now leads with a Home webview that makes everything the
extension can show discoverable in one click:

- Hero card: repo name, current branch, hotspot-health score with trend
  delta and sparkline (falls back to the average score when hotspot
  scoring is gated on quiet repos).
- Index freshness row comparing the indexed commit against the live
  checkout, with a one-click incremental update. The update command now
  returns its promise so the host can ack completion (update-done) and
  the view can stop its spinner even when the update fails.
- Launcher cards for all seven dashboard panels with live micro-stats
  (open findings, ranked plans, decision count) served by a single
  aggregated homeSummary RPC that reuses the dashboards' cache entries.
- Brand footer with a theme switcher: auto (follow editor), light, or
  dark, persisted host-side and pushed to every open Repowise webview.

Sidebar de-noise: the five tree views collapse into two. A Findings
composite nests Health, Hotspots, Ownership, and Dead Code as sections
of one tree (badge counts failing health files only), Refactoring stays
standalone, and the Decisions tree is retired in favor of the timeline
panel. Both trees are contributed collapsed so Home is the face of the
sidebar.

Live-head resolution and short-sha matching move from the staleness
feature into the shared git adapter so the home summary reuses them.
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.

2 participants