feat(ui): slop + duplicate trend card on maintainer dashboard (#2202)#4704
feat(ui): slop + duplicate trend card on maintainer dashboard (#2202)#4704jimcody1995 wants to merge 5 commits into
Conversation
…red#2202) Add weekly slop-flag and duplicate-flag rate trends from queue-health snapshots to the maintainer console, with band labels, freshness metadata, and Vitest coverage. Co-authored-by: Cursor <cursoragent@cursor.com>
Update maintainer and queue-health test fixtures for the new required slopFlaggedPullRequests and duplicateFlaggedPullRequests counts, and drop those fields from the engine-package predicted-gate coverage stub. Co-authored-by: Cursor <cursoragent@cursor.com>
…e absent buildQueueHealth now tolerates collision reports without a clusters array, preventing contributor draft and other callers from crashing when only summary counts are present. Co-authored-by: Cursor <cursoragent@cursor.com>
|
🚨 Contributor flagged. Click here for more info: Superagent Dashboard |
|
Superagent didn't find any vulnerabilities or security issues in this PR. |
Codecov Report❌ Patch coverage is
❌ Your patch status has failed because the patch coverage (91.66%) is below the target coverage (99.00%). You can increase the patch coverage or adjust the target coverage. Additional details and impacted files@@ Coverage Diff @@
## main #4704 +/- ##
==========================================
- Coverage 94.14% 94.13% -0.01%
==========================================
Files 437 438 +1
Lines 38551 38634 +83
Branches 14055 14081 +26
==========================================
+ Hits 36294 36370 +76
Misses 1599 1599
- Partials 658 665 +7
🚀 New features to boost your workflow:
|
|
Caution 🟥🟥🟥🟥🟥🟥🟥🟥🟥🟥🟥🟥 🛑 Gittensory review result - fixes requiredReview updated: 2026-07-10 15:16:10 UTC
🛑 Suggested Action - Fix Blockers
Review summary Nits — 1 non-blocking
CI checks failing
Flagged checks (non-blocking)
Linked issue satisfactionAddressed Review context
Contributor next steps
Signal definitions
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.
|
|
Gittensory is closing this pull request on the maintainer's behalf (CI is failing (codecov/patch, validate, validate-code)). This is an automated maintenance action — to pursue this change, please open a new pull request with the issues resolved. Closed PRs may be analyzed later to improve review accuracy, but they are not automatically reopened or re-reviewed. |
Add weekly slop-flag and duplicate-flag rate trends from queue-health snapshots to the maintainer console, with band labels, freshness metadata, and Vitest coverage.
Summary
buildQueueHealth/ queue-health signal snapshots withslopFlaggedPullRequestsandduplicateFlaggedPullRequestscounts.buildMaintainerSlopDuplicateTrendto roll up an 8-week trend from historical snapshots plus the live queue-health point for the current week.qualityDashboard.slopDuplicateTrendonGET /v1/app/maintainer-dashboard.SlopDuplicateTrendCardto the maintainer console: dualTrendChartseries (slop flag rate, duplicate flag rate), shared legend,generatedAt, and stale/fresh pill.buildQueueHealthwhen collision reports omitclusters(prevents contributor-draft callers from crashing).Scope
type(scope): short summaryConventional Commit format, for examplefix(api): restore profile access checks.CONTRIBUTING.mdand does not reintroduce GitHub Pages, VitePress,site/, orCNAME.Closes #123) — a linked open issue is required for every contributor PR.Closes #2202
Part of #539
Validation
git diff --checknpm run actionlintnpm run typechecknpm run test:coveragelocally;codecov/patchrequires ≥99% coverage of the lines AND branches you changed (aim for 100% on your diff so CI variance does not fail near the threshold). Global coverage is a non-blocking trend with a loose 90% backstop, not the gate.npm run test:workersnpm run build:mcpnpm run test:mcp-packnpm run ui:openapi:checknpm run ui:lintnpm run ui:typechecknpm run ui:buildnpm audit --audit-level=moderateIf any required check was skipped, explain why:
npm test -- --run test/unit/maintainer-slop-duplicate-trend.test.tsnpm test -- --run test/unit/contributor-issue-draft.test.tsnpm --workspace @jsonbored/gittensory-ui test -- --run src/components/site/app-panels/slop-duplicate-trend-card.test.tsxnpm test -- --run test/integration/api.test.ts -t "counts cached open PRs across all in-scope repos"npm --workspace @jsonbored/gittensory-ui run typecheckSafety
UI Evidencesection below with JPG/JPEG or PNG screenshots arranged as organized, captioned, clickable thumbnails. SVG screenshots are not used as review evidence. Review-only screenshots or recordings are not committed to the repository.Auth/session/CORS unchanged. The card reads maintainer-scoped dashboard data from the existing authenticated route; empty and stale states are driven by real snapshot availability, not hard-coded demo payloads in production code.
UI Evidence
/app/maintainerloaded state (no trend card between StatCards and Install health)/app/maintainerloaded state (new Slop + duplicate trend card with dual charts, legend,generatedAt, fresh pill)What changed: StatCards flow straight into Install health before; after, the new Slop + duplicate trend card sits between StatCards and Install health.
Notes
queue-healthsignal snapshots; no new public GitHub surface is added.clean/low/elevated/high) only — raw slop-risk values are not rendered.Made with Cursor