···11-VITE_TWISTER_API_BASE_URL=http://localhost:8080
11+VITE_TWISTER_API_BASE_URL=http://127.0.0.1:8080
22+33+# OAuth configuration
44+# VITE_OAUTH_CLIENT_ID must be a publicly accessible URL (use a tunnel for local dev)
55+# VITE_OAUTH_CLIENT_ID=https://your-tunnel.example.com/oauth/client-metadata.json
66+VITE_OAUTH_REDIRECT_URI=http://127.0.0.1:5173/oauth-callback
···67676868**Depends on:** App: Search & Discovery (for Constellation service), API: Constellation Integration
69697070-- [ ] OAuth setup with `@atcute/oauth-browser-client`
7171-- [ ] Login page, OAuth flow, callback handling
7272-- [ ] Capacitor deep link configuration
7373-- [ ] Session management (restore, refresh, logout, account switcher)
7474-- [ ] Auth-aware XRPC client using dpopFetch
7070+- [x] OAuth setup with `@atcute/oauth-browser-client`
7171+- [x] Login page, OAuth flow, callback handling
7272+- [x] Capacitor deep link configuration
7373+- [x] Session management (restore, refresh, logout, account switcher)
7474+- [x] Auth-aware XRPC client using dpopFetch
7575- [ ] Star repos (write to PDS, count from Constellation)
7676- [ ] Follow users (write to PDS, count from Constellation)
7777- [ ] React to content (write to PDS, count from Constellation)
+5
packages/api/.env.example
···2525LOG_FORMAT=json
2626ENABLE_ADMIN_ENDPOINTS=false
2727# ADMIN_AUTH_TOKEN=
2828+2929+# OAuth client configuration for the Twisted mobile app
3030+# VITE_OAUTH_CLIENT_ID must be a publicly accessible URL (use a tunnel for local dev)
3131+# OAUTH_CLIENT_ID=https://your-tunnel.example.com/oauth/client-metadata.json
3232+# OAUTH_REDIRECT_URIS=http://127.0.0.1:5173/oauth-callback,io.ionic.starter://oauth-callback