Replace Better Auth user, machine, and agent authentication with Realmroot native flows, migrate tenant ownership, and route AMA access through the cutover adapter. Preserve this deployed migration state as the baseline for the narrower user-auth-only redesign.
Connect repo onboarding to the GitHub App and complete the installation
webhook, so per-repo App coverage is tracked and surfaced end to end.
- migration 0027: github_installations + github_installation_repositories
- githubInstallations.ts: owner-scoped install tracking; repoAppStatus
coverage computed on read (single source of truth, no denormalization)
- webhook: handle installation + installation_repositories events (was
pull_request only); githubApp.ts gains getInstallation /
listInstallationRepositories / recordInstallationFromSetup
- routes: new /api/github-app config|setup|repositories endpoints; repo
create/list/get return app_status; the authenticated config reports the
owner install status + accounts
- UI: install/connected state on Repositories + Account pages, dual-tab
Add dialog (browse-and-import from GitHub | manual URL), status badges
- drop the GITHUB_AGENT_TOKEN push-credential fallback: the App
installation token is the sole credential; an uninstalled repo fails
dispatch loudly instead of using a shared long-lived PAT
- env: add GITHUB_APP_SLUG; vite allowedHosts for a stable dev tunnel
87 tests across 8 modules: Auth, Routing, Board, Header,
Settings, Machines, Agents, Repositories. Vite dev port
configurable via VITE_DEV_PORT env var for parallel development.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>