From b578c98e493d638777041dd348fb17a500b68a3d Mon Sep 17 00:00:00 2001 From: Grimmer Kang Date: Tue, 8 Sep 2026 17:53:42 +0800 Subject: [PATCH 1/2] fix(ui): outline the match markers instead of filling them MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The `match …` labels carried the same solid amber as the highlighted words. That was right while a row had at most one of them (#139); #152 made a row carry up to four — `match #N` plus path, assistant, and recap or reply — and at that count the labels compete with the text they point at, and cannot be told apart from it. They are now amber outlined pills, the shape every other badge on the row already uses (PR, account, terminal), so solid amber means exactly one thing: text the query matched. The `id 4ed7505a` marker follows, keeping the 3px corner of the badges beside it on that line. `display` stays inline: an inline border costs no line height and is not clipped by the line's `overflow: hidden`, while inline-block adds 2-8px per row. Measured across four rows of chips, 2026-09-08. Co-Authored-By: Claude Opus 5 (1M context) --- CHANGELOG.md | 4 ++++ package.json | 2 +- src/switcher-ui.tsx | 41 ++++++++++++++++++++++++++++++----------- 3 files changed, 35 insertions(+), 12 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a90b490..8818b9c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 1.0.90 + +- Fix: the **`match …` markers are outlined rather than filled.** They carried the same solid amber as the highlighted words, which was right while a row had at most one of them; [#152](https://github.com/grimmerk/codev/pull/152) made a row carry up to four (`match #N` plus `match path`, `match assistant`, and `match recap` or `match reply`), and at that count the labels competed with the text they point at and could not be told apart from it. They are now amber outlined pills, the shape every other badge on the row already uses (PR, account, terminal), so solid amber means exactly one thing: text the query matched. The `id 4ed7505a` marker follows, keeping the corner radius of the badges beside it on that line. No row is taller for it: the border is drawn on an inline element, which costs no line height + ## 1.0.89 - Feat: a search result explains itself and can be walked ([#141](https://github.com/grimmerk/codev/issues/141), [#146](https://github.com/grimmerk/codev/issues/146)) diff --git a/package.json b/package.json index 014586c..5b59980 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "CodeV", "productName": "CodeV", - "version": "1.0.89", + "version": "1.0.90", "description": "Quick switcher for VS Code, Cursor, and Claude Code sessions", "repository": { "type": "git", diff --git a/src/switcher-ui.tsx b/src/switcher-ui.tsx index 830fc65..b6e2866 100644 --- a/src/switcher-ui.tsx +++ b/src/switcher-ui.tsx @@ -61,16 +61,31 @@ const SEARCH_HIGHLIGHT_STYLE = { fontWeight: 600, } as const; -// Deliberately the SAME amber as SEARCH_HIGHLIGHT_STYLE: the chip and the -// highlighted words are one system, so the row reads as "search found this -// here" at a glance. The line's text stays the neutral prompt grey — an amber -// line body sat too close to the orange last-message line, and the snippet IS -// a user prompt, so colouring it as one is also the honest choice. +// The label naming what a snippet line is (`match #N`, `match path`, …). +// +// It used to be FILLED with the same amber as SEARCH_HIGHLIGHT_STYLE, which +// was right while a row carried at most one of them (#139): one chip and the +// highlighted words read as a single "search found this here" system. PR #152 +// made a row carry up to four — `match #N` plus path, assistant, and recap or +// reply — and at that count the filled amber competes with the thing it points +// at, since the label and the matched words are then the same solid block of +// colour. Reported as noise, and as "I cannot tell a field label from matched +// text". +// +// So the hue stays (the label is still part of the search system) and the +// weight goes: an outlined pill, which is what every other badge on the row +// already is (PR, account, terminal). Filled amber now means exactly one +// thing: text the query actually matched. +// +// `display` is deliberately left at inline. An inline border costs no line +// height and is not clipped by the line's `overflow: hidden`; inline-block +// adds 2–8px per row, measured 2026-09-08 across four rows of chips. const SNIPPET_MARKER_STYLE = { - color: SEARCH_HIGHLIGHT_STYLE.color, - backgroundColor: SEARCH_HIGHLIGHT_STYLE.backgroundColor, - borderRadius: '2px', - padding: '0 4px', + // The highlight amber, dimmed for text and at half strength for the border. + color: '#e0b060', + border: '1px solid rgba(245, 185, 66, 0.5)', + borderRadius: '9px', + padding: '0 6px', fontSize: '10px', fontWeight: 600, } as const; @@ -3507,8 +3522,12 @@ function SwitcherApp() { Date: Tue, 8 Sep 2026 18:16:14 +0800 Subject: [PATCH 2/2] docs(changelog): hyphenate the compound adjective Review round 1 (CodeRabbit): "amber outlined pills" becomes "amber-outlined pills". The only finding on the PR; cubic found none. Co-Authored-By: Claude Opus 5 (1M context) --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8818b9c..3f1545b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,7 +2,7 @@ ## 1.0.90 -- Fix: the **`match …` markers are outlined rather than filled.** They carried the same solid amber as the highlighted words, which was right while a row had at most one of them; [#152](https://github.com/grimmerk/codev/pull/152) made a row carry up to four (`match #N` plus `match path`, `match assistant`, and `match recap` or `match reply`), and at that count the labels competed with the text they point at and could not be told apart from it. They are now amber outlined pills, the shape every other badge on the row already uses (PR, account, terminal), so solid amber means exactly one thing: text the query matched. The `id 4ed7505a` marker follows, keeping the corner radius of the badges beside it on that line. No row is taller for it: the border is drawn on an inline element, which costs no line height +- Fix: the **`match …` markers are outlined rather than filled.** They carried the same solid amber as the highlighted words, which was right while a row had at most one of them; [#152](https://github.com/grimmerk/codev/pull/152) made a row carry up to four (`match #N` plus `match path`, `match assistant`, and `match recap` or `match reply`), and at that count the labels competed with the text they point at and could not be told apart from it. They are now amber-outlined pills, the shape every other badge on the row already uses (PR, account, terminal), so solid amber means exactly one thing: text the query matched. The `id 4ed7505a` marker follows, keeping the corner radius of the badges beside it on that line. No row is taller for it: the border is drawn on an inline element, which costs no line height ## 1.0.89