feat(ui): add the scoped-permissions confirmation step to the install flow#7401
Conversation
|
🚨 Contributor flagged. Click here for more info: Superagent Dashboard |
|
Superagent didn't find any vulnerabilities or security issues in this PR. |
|
Warning ⏸️ LoopOver review result - manual review recommendedReview updated: 2026-07-20 06:46:05 UTC
Review summary Nits — 5 non-blocking
Flagged checks (non-blocking)
Decision drivers
Context & advisory signals — never blocks the verdict
Review context
Contributor next steps
Signal definitions
🧪 Chat with LoopOverAsk LoopOver 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://loopover.ai/docs/loopover-commands 🧪 Experimental — new and may change. Visual previewClick any thumbnail to open the full-size screenshot. Before = production · After = this PR's preview deploy. Scroll previewA short scroll-through clip (desktop) — click either thumbnail to open the full animation. Evidence for scroll-linked behavior a single screenshot can't show. 🟩 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 LoopOver, a quiet PR intelligence layer for OSS maintainers.
|








What
Adds the scoped-permissions confirmation step to the self-serve install flow — a new
/install/permissionsroute that is the third step (“Confirm scoped permissions”) of the signup → install → confirm flow described in #4802. Before a customer finishes the GitHub install, this page shows exactly which repository permissions the LoopOver App requests, and why, so the grant on GitHub holds no surprises.This is a scoped slice of #4802, continuing the
/installentry surface (#7203) whose third step previously pointed only to a follow-up. That step now links here.Details
/install/permissions(install.permissions.tsx) lists the real permission set, grouped:issues,issue_comment,pull_request,repository.REQUIRED_INSTALLATION_PERMISSIONS/OPTIONAL_CHECK_RUN_PERMISSION/OPTIONAL_PR_WRITE_PERMISSION/OPTIONAL_CONTENTS_WRITE_PERMISSION/REQUIRED_INSTALLATION_EVENTSconstants insrc/github/backfill.ts(the same source install-health checks against), so it stays accurate rather than fabricated./installis split into a thin layout (install.tsx, renders an<Outlet />) plus its index page (install.index.tsx, the existing three-step surface, unchanged in content) so/installand/install/permissionsrender as sibling pages under the shared path — the same layout/index patternapp.tsx/app.index.tsxanddocs.tsxalready use. The regeneratedrouteTree.gen.tsreflects only these two new routes./installstep-3 card now links to the new page (“Review the exact scopes →”).Built on the shared design-system primitives (
Section,Card,Callout,Eyebrow, design tokens) per the issue’s design-system boundary. Read-only informational surface: reads no secrets, changes no auth backend; the real grant still happens on GitHub.Validation
npm run ui:typecheck,npm run ui:lint— pass.install.test.tsxupdated for the movedInstallPageimport and passing; full UI test suite green.git diff --checkclean; the diff is exactly the five install-flow files (no doc/openapi churn).UI Evidence
/install/permissionsis a new route, so before is the app’s Not-Found state at that path and after is the new page. loopover-ui is a dark-mode-only build (theme-toggle.tsx— the toggle was removed and there is no light theme to force), so Dark is the only theme dimension; each viewport is shown below./install/permissions)Closes #4802