fix(app): only show used providers in picker + bottom-align hero activity

- provider dropdown: filter to providers with actual usage (value > 0) instead
  of every known/detected key (Pi, Goose, Warp, etc. no longer show)
- Overview hero: bottom-align the activity heatmap (space-between) so its grid
  lines up with the left column's Saved-to-date line

typecheck clean; 128/128 tests pass.
This commit is contained in:
iamtoruk 2026-07-12 13:26:19 -07:00
parent 144d2b3363
commit 1c236a47eb
2 changed files with 2 additions and 2 deletions

View file

@ -90,7 +90,7 @@ export function App() {
useEffect(() => {
if (!overview.data) return
const found = Object.keys(overview.data.current.providers)
const found = Object.entries(overview.data.current.providers).filter(([, value]) => value > 0).map(([key]) => key)
setDetectedProviders(current => {
const next = [...current]
for (const item of found) if (!next.includes(item)) next.push(item)

View file

@ -428,7 +428,7 @@ body { overflow: hidden; background: var(--bg); color: var(--ink); }
.ov-saved-line { display: flex; flex-wrap: wrap; align-items: baseline; gap: 3px 7px; margin-top: 5px; padding-top: 9px; border-top: 1px solid var(--line2); color: var(--mut2); font-size: 10.5px; }
.ov-saved-line strong { color: var(--ok); font-family: var(--mono); font-size: 13px; font-weight: 650; font-variant-numeric: tabular-nums; }
.ov-saved-line small { color: var(--mut2); font-size: 10px; }
.ov-hero-split .ov-heatmap-bare { display: flex; flex-direction: column; justify-content: flex-start; gap: 8px; }
.ov-hero-split .ov-heatmap-bare { display: flex; flex-direction: column; justify-content: space-between; gap: 8px; }
.ov-activity-head { display: flex; align-items: baseline; gap: 8px; }
.ov-hero-sub .neutral { color: var(--mut); font-weight: 560; }
.ov-efficiency { display: flex; min-width: 0; flex-direction: column; padding: 14px 16px; }