Skip to content

feat(metrics): add bounded timeseries views - #209

Merged
aleksdotbar merged 10 commits into
mainfrom
feat/1781-weekly-git-output
Jul 23, 2026
Merged

feat(metrics): add bounded timeseries views#209
aleksdotbar merged 10 commits into
mainfrom
feat/1781-weekly-git-output

Conversation

@aleksdotbar

@aleksdotbar aleksdotbar commented Jul 22, 2026

Copy link
Copy Markdown
Contributor

Adds ranked top-N timeseries groups, Other handling, monthly annual bucketing, full-width views, and CSV/XLSX-compatible metadata.

Summary by CodeRabbit

  • New Features

    • Added multi-select filters for timeseries dimensions, with clear controls and selection summaries.
    • Added configurable top-group limits, ranking, and “Other” remainder groups.
    • Timeseries charts now display group labels, rankings, totals, and remainder groups.
    • Added CSV and XLSX export support for “Other” groups.
    • Updated automatic time-bucket selection for improved date-range coverage.
  • UI Improvements

    • Simplified timeseries card presentation by removing expand/collapse controls.
    • Timeseries chart layouts now consistently use a single column.

@aleksdotbar
aleksdotbar requested a review from a team as a code owner July 22, 2026 07:59
@coderabbitai

coderabbitai Bot commented Jul 22, 2026

Copy link
Copy Markdown

Review Change Stack

Warning

Review limit reached

@aleksdotbar, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 16 minutes

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 0a50ef36-0f4e-44aa-8b08-ea6d4fe51840

📥 Commits

Reviewing files that changed from the base of the PR and between 84ac0aa and 992016a.

📒 Files selected for processing (10)
  • src/api/transforms.test.ts
  • src/components/widgets/metric-views/metric-timeseries-csv.ts
  • src/components/widgets/metric-views/metric-timeseries-export.test.ts
  • src/components/widgets/metric-views/metric-timeseries-view.tsx
  • src/components/widgets/v2/group-drilldown-sheet.tsx
  • src/lib/scoring.test.ts
  • src/queries/ic-dashboard.test.ts
  • src/queries/sales-dashboard.test.ts
  • src/queries/team-view.test.ts
  • src/queries/v2/ic-extras.test.ts
📝 Walkthrough

Walkthrough

Timeseries requests now support grouping limits and richer series metadata. Models order ranked and remainder groups, exports include “Other,” and the UI supports multi-select filters, toggle-based grouping, persisted presentation selection, and fixed single-column rendering.

Changes

Timeseries request contracts and configuration

Layer / File(s) Summary
Request contracts and grouping configuration
src/api/metric-results-client.ts, src/lib/metrics/collection.ts, src/lib/insight/groups.ts, src/lib/metrics/collection.test.ts, src/lib/insight/groups.test.ts
Timeseries requests accept group_limit, responses expose series totals and grouping metadata, collection views map group limits into wire requests, bucket thresholds change, and Git output drilldowns define repository limits.

Ranked remainder model and exports

Layer / File(s) Summary
Ranked remainder model and exports
src/components/widgets/metric-views/metric-timeseries-model.ts, src/components/widgets/metric-views/metric-timeseries.test-fixtures.ts, src/components/widgets/metric-views/metric-timeseries-model.test.ts, src/components/widgets/metric-views/metric-timeseries-export.test.ts
Timeseries columns consume totals, ranks, labels, and remainder metadata; sorting places remainder columns last, and CSV/XLSX exports include the “Other” column.

Interactive timeseries controls

Layer / File(s) Summary
Interactive timeseries controls
src/components/widgets/metric-views/metric-timeseries-view.tsx, src/components/widgets/metric-views/metric-timeseries-view.test.tsx, src/components/widgets/metric-views/collection-drilldown.tsx
Grouping uses toggle controls, filters use checkbox multi-select state, group limits flow into timeseries collections, expansion controls are removed, presentation persistence is tested, and timeseries render in one column.

Estimated code review effort: 4 (Complex) | ~45 minutes

Sequence Diagram(s)

sequenceDiagram
  participant Analyst
  participant MetricTimeseriesView
  participant MetricCollection
  participant MetricResultsAPI
  Analyst->>MetricTimeseriesView: select group and filter values
  MetricTimeseriesView->>MetricCollection: build timeseries view with groupLimit
  MetricCollection->>MetricResultsAPI: send group_limit and filters
  MetricResultsAPI-->>MetricTimeseriesView: return ranked and remainder series
  MetricTimeseriesView-->>Analyst: render ordered timeseries columns
Loading

Possibly related PRs

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately captures the main change: adding bounded timeseries views for metrics.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat/1781-weekly-git-output

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

Signed-off-by: Aleksandr Barkhatov <pm@aleks.bar>
Signed-off-by: Aleksandr Barkhatov <pm@aleks.bar>
Signed-off-by: Aleksandr Barkhatov <pm@aleks.bar>
Signed-off-by: Aleksandr Barkhatov <pm@aleks.bar>
Signed-off-by: Aleksandr Barkhatov <pm@aleks.bar>
@aleksdotbar
aleksdotbar force-pushed the feat/1781-weekly-git-output branch from 0d2a274 to 84ac0aa Compare July 23, 2026 08:59
Signed-off-by: Aleksandr Barkhatov <pm@aleks.bar>
Signed-off-by: Aleksandr Barkhatov <pm@aleks.bar>
Signed-off-by: Aleksandr Barkhatov <pm@aleks.bar>
Signed-off-by: Aleksandr Barkhatov <pm@aleks.bar>
Signed-off-by: Aleksandr Barkhatov <pm@aleks.bar>
@aleksdotbar
aleksdotbar merged commit c604d80 into main Jul 23, 2026
6 checks passed
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