Add Frappe and Macchiato, unify themed pane surfaces, and default to opaque
backgrounds without blur while preserving explicit appearance settings.
Keep default dividers one physical pixel wide at high display scaling.
Align rounded box strokes with adjacent cells and preserve modern Grok
console rendering for new local Windows terminals unless overridden.
Include the regression coverage and synchronized bilingual release notes.
The settings picker mixed a brand PNG (24 px), a `dev-terminal` glyph
(~0.7 em) and a `cod-terminal` glyph (~0.9 em), so icons rendered at three
different sizes; the new-tab palette passed no glyph at all, leaving zsh,
csh, ksh, sh, dash and tcsh without any icon.
Both surfaces now fall back to the shared id-keyed glyph from
`shell_detect::icon_for_id`, all at `FALLBACK_ICON_SCALE` so the glyph ink
matches the brand artwork's 12% safe margin (roughly 0.77 of the slot). The
picker also reserves one fixed icon slot per row, which removes the row
overlap, and spaces rows by exactly `SHELL_ROW_GAP` — the component's
virtual list has no item `gap_y`, so the measured first row is padded to act
as the slot height. A selected row no longer touches the row above it.
Settings -> Terminal's Default shell picker and the new-tab shell palette
fell back to a hard-coded `powershell` when no `shell=` was saved, so a Mac
with no saved value displayed and recommended PowerShell instead of its
login shell.
All four call sites now go through one authority,
`platform::shell::effective_shell_id`: it keeps a configured id and
otherwise resolves the host default (`zsh` on macOS). The settings picker's
empty-detection fallback also stops hard-coding PowerShell/Git Bash.
Codex's turn-complete notification carries the model's
`last-assistant-message` (bounded only at 4 000 chars in `ai_hook`) and an
OSC 9 body is unbounded. Rendered at a fixed 440 px width that became a card
taller than the window: anchored bottom-right it overflowed off the top,
taking its hover-only close button out of reach, and covered a split pane
for the whole 90 s banner TTL.
Notification bodies are now clamped to `TOAST_BODY_MAX_CHARS`; the full text
stays in the log and in the terminal's answer reader. The notification layer
clips to the window, and plain banners dismiss on click.
File tabs now save Markdown, code and text edits through one document
lifecycle, with dirty indicators, close protection, external-change checks,
and BOM/newline preservation. Markdown gains heading navigation and file
information alongside preview and source editing.
Add named tab/window layout recipes using the existing session schema,
remember quick-terminal dimensions, and allow the global hotkey to recall
an existing window. Dock previews and insertion use the hovered pane, with
an outer-edge target for a full row or column.
Add Breeze and Mint light/dark themes, filter settings navigation as the
query changes, expose a font dropdown arrow, and redraw the command icon.
Validated on the isolated commit snapshot with Windows GPUI compilation,
editor and settings interaction tests, workspace/theme tests, shared
settings/split and i18n contracts, architecture checks, and formatting.