Replace the ⚓ emoji with a real logo image used as the in-app brand
mark and the favicon. Default bundled public/logo.svg is the
HangmanLab mark recolored to the Foundry-Deck ember (#ff6a1a).
Override at deploy time via HARBORFORGE_LOGO_URL (injected into
runtime-config.js; getLogoUrl() + favicon swap), no rebuild needed.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Solves the OIDC-only bootstrap lockout (admin can't reach the in-app
OIDC settings page when password login is disabled and OIDC is unset).
- Frontend image entrypoint injects /runtime-config.js from the
deploy-time HARBORFORGE_OIDC_ONLY env so the SPA knows the mode
before the backend exists.
- Setup wizard gains an "OIDC" step (between Admin and Backend):
required when OIDC-only (incl. admin's OIDC subject so the bootstrap
admin can sign in), optional otherwise; written into harborforge.json.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- Login page with JWT auth
- Dashboard with stats and charts
- Issues list with pagination, filtering
- Issue detail with comments, status transitions
- Create issue form
- Dark theme UI
- Docker (nginx) with API proxy to backend
- Sidebar navigation