`Stop` fires at the end of every turn, not at task completion, so the guard
that suppresses the completion toast while work is still in flight is what
keeps that notification honest. It reads `background_tasks`, but the counter
only accepted entries whose type was `subagent` — and Claude Code reports a
backgrounded Bash command as `local_bash`. The most common shape (start a
long command, turn ends, command still running) therefore counted zero: the
guard stayed off and the toast claimed the turn was done while the command
was still running.
Count every entry the field carries. It is documented as in-flight work
("Empty array when nothing is in flight"), so the filter belongs on the
status, not on the type. Idle `in_process_teammate` entries stay excluded —
they keep reporting `status: "running"` after they finish
(anthropics/claude-code#85955) — matching Claude Code's own
`status === "running" && !isIdle` predicate.
Tests: three cases pin the counting (every in-flight type, an empty array
leaving the turn done, an idle teammate not holding it open). The first one
counted zero before this change.
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.
Enable the native font backend, fit initial windows inside the usable display, and require terminal text in installed macOS screenshots. Isolate POSIX launch groups and reject runtime endpoints outside the current launch so AppImage restarts cannot reconnect to orphaned instances.
Run Weston with its X11 backend inside one private Xvfb session, retaining compositor cleanup and a cleared DISPLAY for the actual Wayland application. This supplies the wl_seat absent from the headless backend without changing conformance assertions.
Use a marked metadata-only directory for both Cargo target and intermediate outputs, reject native targets and output/config overrides, and keep Cargo.lock fixed. Preserve peer scripts while preventing stub files from entering ordinary build caches. Add ten behavior regressions to Preview preparation; these tests record commands and do not substitute for native CI.