feat: branch filtering, activity rollups, and usage grouping - #1017
Conversation
roborev: Combined Review (
|
roborev: Combined Review (
|
roborev: Combined Review (
|
roborev: Combined Review (
|
roborev: Combined Review (
|
|
This branch needs more work (I have over 1000 branches in my session database, and there are performance sharp edges) so I'm going to ship 0.37.0 and then get this merged when I can |
roborev: Combined Review (
|
b13fce9 to
2682399
Compare
roborev: Combined Review (
|
roborev: Combined Review (
|
roborev: Combined Review (
|
34b3e7f to
117e099
Compare
roborev: Combined Review (
|
117e099 to
aa5196a
Compare
roborev: Combined Review (
|
roborev: Combined Review (
|
roborev: Combined Review (
|
roborev: Combined Review (
|
b4a6c0e to
04adf03
Compare
roborev: Combined Review (
|
04adf03 to
63ca296
Compare
roborev: Combined Review (
|
roborev: Combined Review (
|
d34459c to
c69d89b
Compare
roborev: Combined Review (
|
roborev: Combined Review (
|
2228d33 to
bf872a3
Compare
roborev: Combined Review (
|
roborev: Combined Review (
|
bf872a3 to
1e00449
Compare
roborev: Combined Review (
|
1e00449 to
50015a4
Compare
roborev: Combined Review (
|
roborev: Combined Review (
|
d48073e to
5af56d7
Compare
roborev: Combined Review (
|
5af56d7 to
46ac5c9
Compare
roborev: Combined Review (
|
46ac5c9 to
bd46820
Compare
roborev: Combined Review (
|
roborev: Combined Review (
|
roborev: Combined Review (
|
roborev: Combined Review (
|
roborev: Combined Review (
|
roborev: Combined Review (
|
|
Will do a human QA pass on this before merging |
|
returning to this |
5eea9e1 to
4012674
Compare
roborev: Combined Review (
|
roborev: Combined Review (
|
4b6781d to
b8db0bb
Compare
roborev: Combined Review (
|
Make branch identity usable across session discovery, activity analysis, and usage attribution so users can inspect work by branch without losing backend parity, API compatibility, or fast default query paths. Squashed follow-ups: - fix(usage): preserve comparison work during lazy branch enrichment - fix(usage): keep project-qualified branches independently selectable - perf(usage): skip branch buckets for totals-only comparisons - fix(frontend): keep branch attribution complete - fix(usage): retain branch enrichment across refreshes - fix(usage): preserve multi-project branch filters - fix(usage): align branch suggestions and attribution - docs: remove unrelated superpowers artifacts - fix(branches): preserve API compatibility at scale - fix(usage): keep AI credits in branch-only reports - fix(usage): isolate branch enrichment generations Co-authored-by: Wes McKinney <wesmckinn+git@gmail.com> Co-authored-by: Marius van Niekerk <marius.v.niekerk@gmail.com>
b8db0bb to
9c64660
Compare
roborev: Combined Review (
|
Adds Git branch as a first-class filter and grouping dimension across session
discovery, Activity, and Usage. This combines and supersedes #974, #978, and
#979 as part of #928.
Branch identity remains project-qualified through opaque tokens, so same-named
branches in different repositories stay independent. The stable
/api/v1/branchescontract continues to return project, branch, and token;bounded, recency-ordered picker search now uses the additive
/api/v1/branch-namesendpoint.Session search, the sidebar, HTTP clients, and MCP tools can filter by branch.
Picker suggestions follow the active project and session scope, retain the
branchless option outside bounded results, and recover safely from stale
archive-specific identities.
Activity now provides branch rollups across SQLite, PostgreSQL, and DuckDB. Its
branch panel shows the 39 highest-value rows and combines the remainder into an
Other row, keeping large archives responsive without misrepresenting totals.
Usage can group charts and attribution by branch with selection shared across
rows, URLs, and saved preferences. Branch data is loaded lazily without
interrupting comparisons; totals-only comparison queries skip branch buckets,
and unattributed usage remains visible so percentages reconcile with summary
totals.
Branch selections are include-based and intersect with the sidebar branch
filter when both are active. Large explicit selections can still increase URL
and request size, while branch breakdown payloads grow with per-day branch
churn; both costs are opt-in.