0ea84dce7d
Adds a new selectable theme `terminal` (alongside System / Whale / Whale Light / Grayscale / Catppuccin / Tokyo Night / Dracula / Gruvbox) that paints every surface with `Color::Reset` instead of any RGB so the host terminal's own background, foreground, and palette show through. The existing `system` theme only chose between two RGB themes (Whale dark or Whale Light) based on COLORFGBG / macOS appearance — useful, but it still painted brand-colored RGB surfaces. Users with custom terminal themes (Solarized, Nord, transparent backgrounds, custom Ghostty/iTerm schemes) had no way to make the TUI respect their terminal palette. Implementation: - New `TERMINAL_UI_THEME` const where every `*_bg` and most text slots are `Color::Reset`, and accents (mode_agent/yolo/plan, status_working, status_warning) use ANSI named colors so they also inherit the user's terminal palette rather than DeepSeek brand RGB. - `ThemeId::Terminal` plumbed through `from_name` / `name` / `display_name` / `tagline` / `ui_theme` / `SELECTABLE_THEMES`, and registered in `normalize_theme_name` with aliases `term`, `transparent`, `follow-terminal`, `inherit` so existing user-friendly config strings just work. - `theme_remap_active(Terminal) → true` so the existing per-cell remap in `ColorCompatBackend` rewrites every hard-coded palette constant (`DEEPSEEK_INK`, `DEEPSEEK_SLATE`, `BORDER_COLOR`, `TEXT_BODY`, …) to `Color::Reset`. Without this, the many render sites that reach for the named palette constants directly would still paint brand RGB. - `theme_green` / `theme_red` return `Color::Green` / `Color::Red` for Terminal so diff "+"/"−" stay green/red but follow the user's terminal palette. - `theme_diff_added_bg` / `theme_diff_deleted_bg` return `Color::Reset` for Terminal — diff highlight is conveyed by foreground color only. - The new theme is the second entry in `SELECTABLE_THEMES` (right after System) so it surfaces prominently in the `/theme` picker. theme_picker tests: the new theme is inserted in row 2 of `SELECTABLE_THEMES`, which shifts the indices three existing tests relied on — `arrow_down_previews_next_theme`, `enter_commits_with_persist_true`, and `digit_jumps_to_row` — so those expectations are updated to match the new ordering. No production behavior change in those tests, just index arithmetic. Default (`theme = "system"`) is unchanged; existing users see no difference. Users who want full terminal pass-through opt in via `/theme` or `theme = "terminal"` in settings.toml.