54 lines
1.9 KiB
Markdown
54 lines
1.9 KiB
Markdown
---
|
|
id: "08-frontend-settings"
|
|
title: "Workspace and personal GitHub settings"
|
|
status: completed
|
|
wave: 6
|
|
depends_on: ["07-http-health-mocks"]
|
|
plan: "plan.md"
|
|
spec: "../../specs/integrations/requirements/github-authentication.md"
|
|
---
|
|
|
|
# Task 08: Workspace And Personal GitHub Settings
|
|
|
|
## Inputs
|
|
|
|
- Spec: What, Identity And Routing, state machines, failure modes, and desktop/mobile scenarios.
|
|
- Task 07 API contract.
|
|
- `apps/web/AGENTS.md` and the mobile-parity skill.
|
|
|
|
## Acceptance
|
|
|
|
- GitHub status/state is keyed by workspace and refetched on workspace changes without showing a
|
|
previous workspace's actor, repositories, diagnostics, permissions, or rate limits.
|
|
- Settings expose feature-complete Workspace automation and My GitHub identity sections for legacy,
|
|
PAT, named CLI, App installation, personal connect/reconnect, capability, and actor states.
|
|
- App-only `My GitHub` gating and user-triggered mutation attribution match the spec on desktop and
|
|
mobile; all controls fit and remain keyboard/screen-reader accessible.
|
|
|
|
## Files Likely Touched
|
|
|
|
- `apps/web/lib/api/domains/github-api.ts`
|
|
- `apps/web/lib/types/github.ts`
|
|
- `apps/web/lib/state/slices/github/github-slice.ts`
|
|
- `apps/web/lib/state/slices/github/github-slice.test.ts`
|
|
- `apps/web/hooks/domains/github/use-github-status.ts`
|
|
- `apps/web/hooks/domains/github/use-github-status.test.tsx` (new)
|
|
- `apps/web/components/github/github-status.tsx`
|
|
- `apps/web/components/github/github-settings.tsx`
|
|
- `apps/web/components/integrations/integrations-menu.tsx`
|
|
- `apps/web/app/github/github-page-client.tsx`
|
|
- GitHub PR review/merge components that display the effective actor
|
|
|
|
## Verification
|
|
|
|
```bash
|
|
cd apps/web && rtk pnpm run typecheck
|
|
cd apps && rtk pnpm --filter @kandev/web test -- github
|
|
cd apps && rtk pnpm --filter @kandev/web lint
|
|
```
|
|
|
|
## Output Contract
|
|
|
|
Report states and responsive behavior implemented, accessibility checks, tests run, screenshots
|
|
inspected, files touched, blockers, and risks.
|