hermes-agent/web/src/components
kshitijk4poor 247929b0dd feat: dashboard OAuth provider management
Add OAuth provider management to the Hermes dashboard with full
lifecycle support for Anthropic (PKCE), Nous and OpenAI Codex
(device-code) flows.

## Backend (hermes_cli/web_server.py)

- 6 new API endpoints:
  GET /api/providers/oauth — list providers with connection status
  POST /api/providers/oauth/{id}/start — initiate PKCE or device-code
  POST /api/providers/oauth/{id}/submit — exchange PKCE auth code
  GET /api/providers/oauth/{id}/poll/{session} — poll device-code
  DELETE /api/providers/oauth/{id} — disconnect provider
  DELETE /api/providers/oauth/sessions/{id} — cancel pending session
- OAuth constants imported from anthropic_adapter (no duplication)
- Blocking I/O wrapped in run_in_executor for async safety
- In-memory session store with 15-minute TTL and automatic GC
- Auth token required on all mutating endpoints

## Frontend

- OAuthLoginModal — PKCE (paste auth code) and device-code (poll) flows
- OAuthProvidersCard — status, token preview, connect/disconnect actions
- Toast fix: createPortal to document.body for correct z-index
- App.tsx: skip animation key bump on initial mount (prevent double-mount)
- Integrated into the Env/Keys page
2026-04-13 11:18:18 -07:00
..
ui feat: web UI dashboard for managing Hermes Agent (#8756) 2026-04-12 22:26:28 -07:00
AutoField.tsx feat: web UI dashboard for managing Hermes Agent (#8756) 2026-04-12 22:26:28 -07:00
Markdown.tsx feat: web UI dashboard for managing Hermes Agent (#8756) 2026-04-12 22:26:28 -07:00
OAuthLoginModal.tsx feat: dashboard OAuth provider management 2026-04-13 11:18:18 -07:00
OAuthProvidersCard.tsx feat: dashboard OAuth provider management 2026-04-13 11:18:18 -07:00
Toast.tsx feat: dashboard OAuth provider management 2026-04-13 11:18:18 -07:00