Fix OAuth callback, extract auth buttons partial, dev tunnel support
- Fix callback param parsing (use request.qs() instead of completeUrl())
- Resolve handle via identity resolver instead of authenticated getProfile
(we don't have getProfile scope)
- Extract auth buttons into a partial with auth.check() call
- Add auth buttons to landing page header
- Allow all hosts in Vite dev server for tunnel usage
- Make APP_URL configurable in docker-compose.yml
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>