feat(analytics): add aggregate queue-health to the maintainer quality dashboard (#2201) - #5141
Conversation
|
🚨 Contributor flagged. Click here for more info: Superagent Dashboard |
|
Superagent didn't find any vulnerabilities or security issues in this PR. |
… dashboard (JSONbored#2201) Fold the per-repo QueueHealth signals the shaping already computes into a dashboard-level queueHealth aggregate on MaintainerQualityDashboard: summed open/stale/draft/unlinked PR counts, collision clusters, an open-PR age-bucket distribution, and how many repos fall in each burden band. Pure in-memory aggregation over data already produced in the shaping loop (no new IO). Adds QueueHealthCard rendering the counts + age distribution + burden-band pills (counts and bands only, never raw scores), wired into MaintainerPanel and degrading to an empty state when the queue is clear or the field is absent.
9f2f70d to
b1c2943
Compare
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #5141 +/- ##
=======================================
Coverage 94.32% 94.33%
=======================================
Files 472 472
Lines 39868 39878 +10
Branches 14544 14544
=======================================
+ Hits 37607 37617 +10
Misses 1583 1583
Partials 678 678
Flags with carried forward coverage won't be shown. Click here to find out more.
🚀 New features to boost your workflow:
|
|
Warning 🟨🟨🟨🟨🟨🟨🟨🟨🟨🟨🟨🟨 ⏸️ Gittensory review result - manual review recommendedReview updated: 2026-07-12 07:25:18 UTC
⏸️ Suggested Action - Manual Review
Review summary Nits — 6 non-blocking
Flagged checks (non-blocking)
Linked issue satisfactionNot yet addressed Review context
Contributor next steps
Signal definitions
[BETA] Chat with GittensoryAsk Gittensory a question about this PR directly in a comment — grounded only in the same cached, public-safe facts shown above, never a new claim.
Full command reference: https://gittensory.aethereal.dev/docs/gittensory-commands Visual preview
Click any thumbnail to open the full-size screenshot. Before = production · After = this PR's preview deploy. 🟩 Safe / merged · 🟦 Advisory · 🟨 Held for review · 🟥 Blocked / closed 💰 Earn for open-source contributions like this. Gittensor lets GitHub contributors earn for the work they already do — register to start earning →. Checked by Gittensory, a quiet PR intelligence layer for OSS maintainers.
|
What
Adds an aggregate queue-health slice to the maintainer quality dashboard (Closes #2201): summed open / stale / draft / unlinked PR counts across the maintainer's shaped repos, an open-PR age-bucket distribution, collision-cluster count, and how many repos fall in each burden band.
Surfaces real data —
buildMaintainerQualityDashboardalready computes a per-repoQueueHealthin its shaping loop but only kept the band; this folds those existing signals into a dashboard-levelqueueHealthaggregate. Pure in-memory aggregation over data the loop already produces (no new IO). Counts + bands only, never raw scores.Changes
Backend (
src/services/maintainer-quality-dashboard.ts, +33)QueueHealth.signals(already computed atbuildQueueHealth) into aqueueHealthaggregate onMaintainerQualityDashboard:openPullRequests / stalePullRequests / draftPullRequests / unlinkedPullRequests / collisionClusters, anageBucketsdistribution, and per-bandbandCounts.test/unit/maintainer-quality-dashboard.test.ts(open-PR count matchesqualitySignals; bands + age buckets present; public-safe).Frontend
queue-health-card.tsx(new) —QueueHealthCard: four count Stats + a severity-colored age-distribution bar + burden-band pills. ReusesAnalyticsCardShell; empty states for a clear queue and an absent field.queue-health-card.test.tsx(new) — populated, queue-clear, and absent-field branches.maintainer-panel.tsx— optionalqueueHealth?on the dashboard type + renders the card above the contributor-quality table.Verification
test/unit/maintainer-quality-dashboard.test.tsgreen (11 tests); card tests green (3);tscclean on the changed backend; pure-aggregation diff (+219/−1).Screenshots
Maintainer quality dashboard, populated and empty, desktop + mobile, light + dark.
light
dark
mobile
light
dark
mobile
Closes #2201