1c96c75118
The Directory page started empty even though setup.sh knows exactly what it deployed. The bootstrap now seeds (via /api/directory-admin, as the logged-in admin): a site from the configured domain, a "Stack host", the SSO Manager + Proxy services with their public URLs in metadata, and links the proxy's auto-registered OAuth client under its service. Idempotent: resources whose slug already exists are operator-owned and never touched. A seed failure only warns — never fails a bring-up (e.g. against an older sso-manager image without /api/directory-admin). Verified against a live app (sso-manager-node test stack): first pass creates site/host/2 services + oauth edge; second pass changes nothing. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>