* refactor(db): port operations, settings, audit, activity, and misc service metadata to sqlc
Covers the cross-cutting surface: operations board reads, app settings,
notification producers, activity/audit inserts, builds upsert/cancel,
git clone credential resolution, invites, environments, registry auth,
project/service variables, HA resolver, boot sweeps, and admin user ops.
Dynamic filtered lists and Better Auth table probes stay raw by design.
Authored By: TDvorak <[email protected]>
* refactor(db): port apwhy gateway handlers and proxy data plane to sqlc
Final tranche — every static call site now uses generated queries. Raw SQL
remains only where the statement is assembled at runtime (filtered lists,
sparse updates, admin count closure) or probes Better Auth's auth_users
table, which lives outside the local schema.
Authored By: TDvorak <[email protected]>
* feat(setup): first-run wizard — admin, GitHub App, tunnel, done
- GET /api/v1/setup/status (public): has_users, needs_setup,
has_github_app, has_tunnel. app_settings.setup_completed flag; installs
with existing projects auto-complete so upgrades never see the wizard.
- POST /api/v1/setup/complete records the flag.
- /setup page: progress rail + four steps — create admin (links into the
bootstrap sign-up with redirect back), GitHub App manifest flow,
optional Cloudflare tunnel token, finish. Every optional step is
skippable; nothing blocks.
- PlatformShell redirects signed-in users to /setup while needs_setup.
- The GitHub App callback honors a sessionStorage return marker set by
the wizard so provisioning resumes at /setup instead of /settings.
- OpenAPI documents both endpoints.
Verified live: status reports auto-completed on this install,
complete persists the flag, response shape matches the client.
Generated with [Devin](https://devin.ai)
Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
* test(setup): wizard step-state coverage
Five cases across the state machine: fresh-install account prompt,
sign-in resume, git-provider step, tunnel step, and finish.
Generated with [Devin](https://devin.ai)
Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
---------
Co-authored-by: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>