feat(ui): check-run details-page readiness table (#2216) - #4716
Conversation
|
Superagent didn't find any vulnerabilities or security issues in this PR. |
|
Tip 🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩 ✅ Gittensory review result - approve/merge recommendedReview updated: 2026-07-10 19:11:07 UTC
✅ Suggested Action - Approve/Merge
Review summary Nits — 5 non-blocking
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.
|
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #4716 +/- ##
=======================================
Coverage 94.14% 94.14%
=======================================
Files 437 437
Lines 38551 38561 +10
Branches 14055 14058 +3
=======================================
+ Hits 36294 36304 +10
Misses 1599 1599
Partials 658 658
🚀 New features to boost your workflow:
|
… a propagated label (#4816) * fix(review): never let an inconclusive linked-issue recheck downgrade a propagated label A merge-time (or later sweep/webhook) recheck of a PR's linked-issue label propagation could not distinguish "the recheck genuinely couldn't be verified this pass" (a transient GitHub fetch/rate-limit failure) from "the issue confirms no propagation applies" -- both fell through to the blunt title heuristic and silently overwrote whatever correct label a prior pass had already applied. Confirmed live: 118 PRs mislabeled across gittensory and metagraphed in a 2-day sample, including contributor-reported PRs #4716 and #4783. - linked-issue-label-propagation-fetch.ts: fetchLinkedIssueLabelsForPropagation now returns {labels, inconclusive} instead of a bare label list; isRepoMaintainerLogin distinguishes a confirmed permission result from an errored (inconclusive) one, and logs the error instead of swallowing it. - processors.ts: the type-label block skips the mutation entirely (leaving existing labels untouched) when the recheck was inconclusive rather than confirmed-negative, and now claims the existing per-PR actuation lock so two concurrent passes for the same PR can no longer race each other here. - client.ts: excludes the two trust-deciding endpoints (linked-issue reads, collaborator-permission checks) from cross-caller request coalescing, so one caller's transient failure can no longer become a different concurrent caller's answer. - public.ts / rag-index.ts / grounding-wire.ts: three GitHub callers were computing their rate-limit admission key before a token fallback was applied (or never attributing one at all for a high-volume caller), which is what buried the live incident in an unattributed metric bucket. Full regression coverage added, including an end-to-end reproduction of the exact PR #4716/#4783 race in queue.test.ts. * fix(review): follow the reviewCheckMode migration in the new type-label tests Rebased onto main's gateCheckMode-deprecation migration (#4618); the two new regression tests added alongside it still need reviewCheckMode set directly, matching every sibling test in the same describe block.
Summary
Adds a public-safe Context check readiness table to the maintainer details surface (the page linked from the GitHub App Context check
details_url). The table consumesbuildPublicReadinessScoreoutput redacted to bands viabuildExtensionPrStatus, and renders only whencheckRunDetailLevelisstandardordeep.Also normalizes the legacy details link (
/app?view=maintainer&repo=…) to/app/maintainer?repo=….Closes #2216
Changes
src/signals/settings-preview.tsbuildSampleCheckRunReadiness+checkRunReadinesson settings-preview payloadsrc/openapi/schemas.tscheckRunReadinessschema onRepoSettingsPreviewapps/gittensory-ui/public/openapi.jsonnpm run ui:openapi)apps/gittensory-ui/src/components/site/check-run-readiness-model.tsapps/gittensory-ui/src/components/site/check-run-readiness-table.tsxapps/gittensory-ui/src/components/site/app-panels/maintainer-panel.tsxinitialRepoFullNameapps/gittensory-ui/src/routes/app.maintainer.tsx?repo=search param for details deep-linkapps/gittensory-ui/src/routes/app.index.tsx?view=maintainer&repo=→/app/maintainercheck-run-readiness-table.test.tsx,settings-preview.test.ts(#2216 regressions)UI Evidence
Required before opening the PR — upload screenshots via GitHub drag-and-drop (do not commit images):
/app/maintainer(settings preview,checkRunDetailLevel: standard)/app/maintainer(checkRunDetailLevel: minimal)/app?view=maintainer&repo=owner/repoTest plan
shouldShowCheckRunReadinessTable— minimal hides, standard/deep showsresolveCheckRunReadinessView— empty component set returns null (gate-off + gate-on fixtures)CheckRunReadinessTablevitest — render/hide branchesbuildSampleCheckRunReadiness+ settings-preview schema parsenpm run ui:test(readiness table vitest)npm run ui:typechecknpm run test:ci(backend patch coverage onsettings-preview.ts)standard, run settings preview, confirm table bands (no raw scores)Notes
visual+gittensor:featurelabels — expect owner hold on merge until activated.