You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Recolor the same city by different metrics — toggleable "lenses" over one geometry — so codecity becomes a code-health dashboard, not just a map. Same buildings, many insights.
Lenses to explore
Churn — how often each file changes (from git log); busiest files glow as hotspots / tech-debt radar.
Ownership — dominant author per file via git blame; visualize bus-factor districts (files only one person touches = risk).
Age — last-modified recency (already the default hue axis, but as an explicit lens).
Complexity — a cheap proxy (lines, nesting, or a real metric via tree-sitter).
Test coverage — if a coverage report is present/uploaded.
What's already built (feasibility)
Buildings are colored per-instance via getBuildingColor (app/src/city/components/buildings/color.ts) and a per-instance color attribute rebuilt in buildings/index.ts — so a lens is just an alternate color provider + a UI toggle, no layout change.
The Settings/theme system + reactive rebuild give a clean place to hang a lens selector.
New data needed (backend)
Churn: per-file change count over the history window (git log --name-only aggregation) → new FileNode/stats field.
Ownership: per-file dominant author (git blame is expensive at scale — sample or cache; consider git log last-author as a cheap approximation first).
These extend the manifest → just gen-types + a cache-schema bump (that path is well-trodden now).
Design questions
Legend + UX: each lens needs its own legend (sequential for churn/age, categorical for ownership) — reuse the Info-tab Legend. Follow the dataviz conventions for sequential vs categorical palettes.
Recolor the same city by different metrics — toggleable "lenses" over one geometry — so codecity becomes a code-health dashboard, not just a map. Same buildings, many insights.
Lenses to explore
git log); busiest files glow as hotspots / tech-debt radar.git blame; visualize bus-factor districts (files only one person touches = risk).What's already built (feasibility)
getBuildingColor(app/src/city/components/buildings/color.ts) and a per-instance color attribute rebuilt inbuildings/index.ts— so a lens is just an alternate color provider + a UI toggle, no layout change.New data needed (backend)
git log --name-onlyaggregation) → newFileNode/stats field.git blameis expensive at scale — sample or cache; considergit loglast-author as a cheap approximation first).just gen-types+ a cache-schema bump (that path is well-trodden now).Design questions
Phasing