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