Strip YAML/TOML front-matter before handing content to the rich editor
and display it as a read-only banner. In preview mode, render front-matter
as a styled block above the markdown output. Remove the frontmatter entry
from UNSUPPORTED_PATTERNS so files with front-matter can use rich mode.
Also fixes: look up html-or-jsx matcher by reason instead of fragile index.
- Only show "Create worktree" action after the user types a query
- Remove per-row CornerDownLeft enter arrow (footer already shows Enter → Open)
- Rename footer label from "Jump" to "Open"
- Remove the border-bottom separator in the agent hovercard when no agents
are active (looked off as a stray line under "No agents active")
- Add a "Hide from titlebar" button at the bottom of the hovercard that
disables the badge via settings and shows a persistent dismissible toast
pointing users to Settings → Appearance to re-enable
* fix: address review findings
Replace repeated dynamic imports in tests with a single static import.
* fix: address CI lint failure — use T[] instead of Array<T>
* fix: Cmd+X in rich markdown editor deletes only the current line
- Guard against depth < 1 (GapCursor before top-level leaf nodes) to
prevent RangeError crash
- Add visual-line cutting for word-wrapped paragraphs so Cmd+X removes
one visual line at a time instead of the entire paragraph
- Normalize soft line breaks on load/update: split paragraphs with
embedded \n into separate paragraph nodes so block-level cut works
per-line
- Add comprehensive tests for cut handler behavior and normalization
* fix: address review findings
- Normalize soft breaks at all document depths (not just top-level)
using doc.descendants() instead of doc.forEach()
- Capture transaction lazily from editor.view.state.tr to avoid stale
state after setContent()
* fix: use editor.view.state consistently in normalizeSoftBreaks
Read doc and create tr from editor.view.state (not editor.state) so
position collection and transaction application share the same base
state, avoiding stale-doc corruption after setContent().
Add a `showTitlebarAgentActivity` setting under Appearance > Titlebar
that lets users toggle the agent activity badge in the titlebar.
- Add `showTitlebarAgentActivity` to GlobalSettings (default: true)
- Add toggle in AppearancePane under a new "Titlebar" sub-section
- Upgrade badge from Tooltip to HoverCard with per-worktree breakdown
- Show dimmed idle state when no agents are active
- Fix badge/tab overlap when sidebar is closed (min-w-0 + conditional shrink-0)
- Extract countWorkingAgentsForTab helper for reuse by per-worktree counter
Cmd+Shift+G was opening the source control sidebar even when terminal
search was active, because both App.tsx and keyboard-handlers.ts
registered capture-phase keydown listeners on window with no
coordination between them.
Fix with two layers:
- App.tsx: skip Cmd+Shift+G when [data-terminal-search-root] is in the
DOM (reliable regardless of listener registration order)
- App.tsx: bail on defaultPrevented as a general guard
- keyboard-handlers.ts: upgrade stopPropagation to
stopImmediatePropagation for the search navigate handler
- Delete empty blocks on Cmd+X (match VS Code behavior)
- Preserve rich formatting on clipboard (text/html + text/plain)
- Fix cursor placement after cutting last block (clamp position)
- Guard against null clipboardData to prevent silent data loss
- Extracted contextual copy setup logic into `useContextualCopySetup` hook.
- Replaced direct `setupContextualCopy` usage in `MonacoEditor` with the new hook.
- Added `useContextualCopySetup` to `DiffViewer` to enable contextual copy in diffs.
- Bound copy handlers to both original and modified diff editors.
- Updated `EditorContent` to pass `filePath` and `relativePath` down to `DiffViewer`.
- Made `onSave` optional in `propsRef` since it's not strictly required in diff views.
fitAddon.fit() triggers an xterm.js buffer reflow that can leave the
viewport at a stale scroll offset, making the terminal appear scrolled
up away from the prompt. Before each fit(), capture whether the terminal
was scrolled to the bottom, and restore that position afterwards. If the
user had manually scrolled up to read history, their position is kept.
- Show a "Create new worktree…" option when search yields no matches
- Pre-select it so Enter immediately opens the create dialog
- Replace inline SVG with lucide Plus icon
- Simplify palette item styling (rounded-xl, neutral selection colors)
- Add primary badge, CornerDownLeft hint, and layout refinements
- Remove unused badgeLabel field from search results