Skip to content

feat(ui): install-preview 'what gittensory would have flagged' card (onboarding) #2217

Description

@JSONbored

Add the first-session onboarding preview card (#701): render the gate + AI-review result of a live demo run against the repo's recent PRs ('here's what gittensory would have flagged'), reusing the existing settings-preview pipeline. UI card slice only — it consumes the preview payload the maintainer-settings preview already produces.

Deliverables

  • New OnboardingPreviewCard consuming the settings-preview request/result shape (lib/maintainer-settings-preview.ts:40, buildSettingsPreviewRequest at :146)
  • Render the demo verdict + flagged findings using existing PreviewResult patterns (maintainer-panel.tsx:567)
  • Loading/empty/error via StateBoundary; EmptyState when the repo has no recent PRs
  • Wire into the maintainer first-visit surface (maintainer-panel.tsx / app.maintainer.tsx) — extend, do not duplicate existing preview
  • Vitest test: flagged-findings present, clean-PR (no findings), and no-recent-PRs branches

References

  • apps/gittensory-ui/src/lib/maintainer-settings-preview.ts:40
  • apps/gittensory-ui/src/lib/maintainer-settings-preview.ts:146
  • apps/gittensory-ui/src/components/site/app-panels/maintainer-panel.tsx:567
  • apps/gittensory-ui/src/components/site/state-views.tsx:215

Part of #701.


📸 Required: before/after screenshots (this is a UI change)

Non-negotiable. PRs that change UI must include a before/after screenshot table. PRs without it are automatically closed — no exceptions.

Rules:

  • Show every page/feature you changed — before and after, one row each.
  • Use the markdown table below. Screenshots go inside the table only — no large full-size images pasted elsewhere in the PR.
  • Each cell is a clickable thumbnail (a small image linking to the full-size image) with a one-line caption underneath.
  • Upload screenshots to the PR by drag-and-drop (GitHub hosts them on its CDN). Do NOT commit image files to the repo.

Copy this and fill it in (replace FULL_IMAGE_URL with the URL GitHub gives you after you drop the image in):

| Page / Feature | Before | After |
|---|---|---|
| `/your-route` | [<img src="FULL_IMAGE_URL" width="260">](FULL_IMAGE_URL)<br><sub>before: short caption</sub> | [<img src="FULL_IMAGE_URL" width="260">](FULL_IMAGE_URL)<br><sub>after: short caption</sub> |


size: S · held for later release (gittensor:feature once activated)

Metadata

Metadata

Assignees

No one assigned

    Labels

    gittensor:featureGittensor-scored feature linked to a feature issue — scores a 0.25x multiplier.visualUI/web visual work — owner-led, NOT for Gittensor contributors (extensions excepted)

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions