Commit graph

2 commits

Author SHA1 Message Date
Johannes du Plessis
9475afdf2e
fix: theme-aware syntax highlighting in chat code blocks (#1479)
Inline chat code blocks hardcoded the github-dark Shiki theme, so in light
mode dark-theme token colors rendered on a light bubble with poor contrast.
Resolve the Shiki theme from the active light/dark mode and cache tokens per
theme. Adds a reactive useResolvedTheme hook so blocks update live on toggle.

Co-authored-by: open-swe[bot] <open-swe@users.noreply.github.com>
2026-06-10 09:58:20 -07:00
Johannes du Plessis
30d5d55f0f
feat: add dark mode support to web UI (#1436)
* feat: add dark mode support to web UI

Add a persisted, system-aware theme with a Light/Dark/System toggle in
the sidebar user menu. An inline head script applies the stored theme
before paint to avoid a flash, and the agents-ui surface gets dark
overrides for its --ui-* variables.

Co-authored-by: open-swe[bot] <open-swe@users.noreply.github.com>

* fix: use static theme init script to satisfy CodeQL

Build the no-FOUC theme script from a fully static string literal
instead of interpolating THEME_STORAGE_KEY, so no value flows into
code construction (CodeQL "Improper code sanitization").

Co-authored-by: open-swe[bot] <open-swe@users.noreply.github.com>

* fix: avoid theme flip on hydration for persisted preferences

Only apply a theme after the stored preference is read, instead of
eagerly applying the default "system" theme on first effect. This
prevented a brief flip to the OS theme (then back) on load for users
with a saved preference that differs from their OS setting.

Co-authored-by: open-swe[bot] <open-swe@users.noreply.github.com>

---------

Co-authored-by: open-swe[bot] <open-swe@users.noreply.github.com>
2026-06-06 12:06:31 -07:00