feat(ui): gate-outcome breakdown card (#2203)#5098
Conversation
|
Superagent didn't find any vulnerabilities or security issues in this PR. |
|
Warning 🟨🟨🟨🟨🟨🟨🟨🟨🟨🟨🟨🟨 ⏸️ Gittensory review result - manual review recommendedReview updated: 2026-07-12 04:18:55 UTC
⏸️ Suggested Action - Manual Review
Review summary Nits — 6 non-blocking
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.
|
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #5098 +/- ##
=======================================
Coverage 94.20% 94.20%
=======================================
Files 470 471 +1
Lines 39705 39736 +31
Branches 14489 14498 +9
=======================================
+ Hits 37404 37435 +31
Misses 1645 1645
Partials 656 656
Flags with carried forward coverage won't be shown. Click here to find out more.
🚀 New features to boost your workflow:
|
|
An AI reviewer flagged a likely defect, but its confidence was below this repository's configured close-confidence floor, so this is held for a maintainer to confirm instead of closing automatically. Resolve the flagged defect (see the review notes), or ask a maintainer to override. |
Closes #2203
Summary
Adds a read-only Gate outcomes card to the maintainer dashboard summarizing auto-merged, auto-closed, and held/manual terminal dispositions from repo-scoped
agent.action.{merge,close,hold}audit events. Three stat tiles plus a stacked proportion bar; scoped to the maintainer's repos.Part of #539.
Changes
src/services/gate-outcome-breakdown.tsbuildGateOutcomeBreakdown+ audit bucket classifiersrc/db/repositories.tslistGateOutcomeAuditEventRollups(repo-scoped SQL rollups)src/api/routes.tsgateOutcomeBreakdowntoqualityDashboardonGET /v1/app/maintainer-dashboardapps/gittensory-ui/.../gate-outcome-card-model.tsapps/gittensory-ui/.../gate-outcome-card.tsxStattiles + stacked proportion barapps/gittensory-ui/.../maintainer-panel.tsxGateOutcomeCardinto maintainer consolegate-outcome-breakdown.test.ts,gate-outcome-audit-rollups.test.ts,gate-outcome-card.test.tsx, integration API assertionUI Evidence
Required before opening the PR — upload screenshots via GitHub drag-and-drop (do not commit images):
/appmaintainer panel)Test plan
buildGateOutcomeBreakdown— all buckets presentbuildGateOutcomeBreakdown— zero in one bucketbuildGateOutcomeBreakdown— empty rollups (null rates)classifyGateOutcomeAuditBucket— ignores dry-run/denied/non-outcome eventslistGateOutcomeAuditEventRollups— repo scope + empty scopeGateOutcomeCard— all outcomes, zero bucket, empty statenpm run ui:test -- gate-outcome-card.test.tsxnpm run test:unit -- test/unit/gate-outcome-breakdown.test.ts test/unit/gate-outcome-audit-rollups.test.tsvisual)Notes
visual+gittensor:feature. Confirm contributor eligibility before opening.GATE_OUTCOME_BREAKDOWN_WINDOW_DAYS) over all scoped repos (not the 12-repo quality cap).