hermes-agent/web/src
maxmilian c5cafd3847 fix(web): portal Change Model modal so it renders above the app sidebar
The dashboard's main column is `relative z-2` (App.tsx), which creates a
stacking context that traps fixed descendants below the app sidebar
(`z-50`). `ModelPickerDialog` renders `fixed inset-0 z-[100]` inline,
so its z-100 is scoped to z-2 and the sidebar covers its left edge.

The bug is visible across all themes but only obvious in the Large theme
variants (Hermes Teal (Large), etc.) where the larger root font widens
the dialog into the sidebar's column. Toast.tsx already documents the
same trap and uses the same `createPortal(..., document.body)` escape.

This commit ports the picker; the same pattern affects other inline
z-[100] modals in the dashboard (OAuthLoginModal, Cron / Models /
Profiles page modals) and is left for a follow-up — keeping this PR
scoped to the reporter's specific case.

Fixes #28103

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-18 20:02:50 -07:00
..
components fix(web): portal Change Model modal so it renders above the app sidebar 2026-05-18 20:02:50 -07:00
contexts feat(web): mobile dashboard UX polish (#28127) 2026-05-18 15:20:31 -04:00
hooks feat(web): mobile dashboard UX polish (#28127) 2026-05-18 15:20:31 -04:00
i18n feat(web): mobile dashboard UX polish (#28127) 2026-05-18 15:20:31 -04:00
lib fix(dashboard): respect HERMES_BASE_PATH in WebSocket URLs (#25547) 2026-05-17 11:39:37 -07:00
pages feat(web): mobile dashboard UX polish (#28127) 2026-05-18 15:20:31 -04:00
plugins feat(dashboard): support serving under URL prefix via X-Forwarded-Prefix 2026-05-07 06:39:18 -07:00
themes feat(web): mobile dashboard UX polish (#28127) 2026-05-18 15:20:31 -04:00
App.tsx feat(web): mobile dashboard UX polish (#28127) 2026-05-18 15:20:31 -04:00
index.css feat(web): add /api/pty WebSocket bridge to embed TUI in dashboard 2026-04-24 10:51:49 -04:00
main.tsx feat(web): mobile dashboard UX polish (#28127) 2026-05-18 15:20:31 -04:00