Build on push to main and version tags, push to ghcr.io with
semver/branch/sha tags. PRs get build-only validation.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Keep TwoFactorModal open after code submit; display server-side
errors inline instead of silently closing the modal
- handlePair now returns PairedDeviceInfo so handleInstall uses the
fresh UDID instead of stale closure state
- Add explicit /wisp/ location in nginx.conf returning 502 to prevent
SPA fallback from swallowing websocket upgrades
- Add prefers-color-scheme dark mode via CSS custom property overrides;
replace hardcoded rgba/hex with color-mix() for automatic adaptation