Skip to content

Snippet colours, a launcher that writes markup, and a shelf that tracks the pointer - #57

Merged
mindaugaskasp merged 1 commit into
mainfrom
fix/quicklook-and-tag-shelf
Aug 13, 2026
Merged

Snippet colours, a launcher that writes markup, and a shelf that tracks the pointer#57
mindaugaskasp merged 1 commit into
mainfrom
fix/quicklook-and-tag-shelf

Conversation

@mindaugaskasp

Copy link
Copy Markdown
Owner

Quick Look

  • A click on a row does what ↵ does. It only selected before, so a tool, the Tools header and the create row all looked dead to the pointer. The repeat is dropped — double-click was the activator until now, and acting on both clicks opened the Tools section and shut it again in one gesture.
  • acceptsFirstMouse. The launcher is summoned over another app, so macOS spent the first click activating the window and never delivered it: every row and button ignored the first press.
  • Composing gets a card to write in (960×720) and gives it back on the way out. The renderer names the job; main decides what that is worth in pixels, and grows the card from where it already is — re-centring slides the row out from under the pointer that just clicked one.
  • The chord answers while Diff Bro is in front. The guard that silenced it there existed for the Settings capture field; that field now says so itself, and main disarms on the sender's destroyed — armed and abandoned, the chord would otherwise stay dead for the session with no window left to explain why.
  • A re-summon keeps an unsaved draft, and the card it was written in.
  • Jira/Markdown get their formatting row here too, with the rendered form drawn beside the syntax as you type.

Markup, both surfaces

Markdown gains strikethrough, task lists and tables; Jira gains tables; both gain list indent/outdent. Each is offered only because the renderer draws it, so the toolbar and the live preview cannot disagree — the separator row is what makes a Markdown table, so prose about a shell pipeline stays a paragraph.

Sidebar

  • The tag shelf's depth is a height the grip drags 1:1, and what fits at that height is measured. Four chips per row was a guess that made one row of pointer travel worth anything between half a rendered row and two. Adds double-click to snap and ↑/↓/Home/End on the seam, which carried no keyboard at all.
  • A colour you pick, across the whole snippet row — right-click it. Six colours and None, re-lightened to the theme's own --tag-l and mixed into the panel, so the name holds 4.5:1 on all twenty themes (worst: nord, 6.40). Decoration only: nothing filters, searches or sorts by it.
  • Settings ▸ Appearance ▸ "Show tags on sidebar rows" takes the tag word off the rows for a library where nearly everything carries the same two.

Verification

  • npm run check green — 3476 tests, coverage 95.39 / 88.33 / 95.89 / 96.48.
  • Full e2e in the container on the final tree: 512 passed, 3 skipped (macOS-gated), 0 failed. The macOS-gated quick-look-window-recovery was run natively and passes.
  • theme-sweep gains a snippet-colour surface: 100 measurements across all 20 themes, every probe above its floor.
  • Every bug fixed here was watched red first, including the two the audit found.

What an audit pass caught, and what it cost

  • A stuck capture flag would have killed the global shortcut for the rest of the session (worst on Windows, where the app lives on in the tray).
  • A selected tag could be clipped out of sight and out of "+N more" — the box clips now where it used to scroll, so the old "never cut a selected tag" override rendered chips outside the edge that the picker also could not reach.
  • The shelf's arrow keys broke with long tag names: wide chips do not fill the rows the stored height pays for, so keys anchored on the rendered height wrote a shallower depth and moved nothing. Steps now count from the stored depth; the drag still starts under the hand.

Unverified

  • The actual OS global-shortcut keypress while the app is focused — every spec calls the toggle IPC, which bypasses onShortcut. The guard itself is unit-tested.
  • Windows: setBounds on a resizable: false window is documented to be ignored there, so the flag is lifted for the write and put straight back. E2E is Linux-only, so this is reasoned rather than observed.

🤖 Generated with Claude Code

…ks the pointer

Quick Look
- A click on a result row does what ↵ does. It only selected before, so a
  tool, the Tools header and the create row all looked dead to the pointer.
  The repeat is dropped: double-click was the activator until now, and acting
  on both clicks opened the Tools section and shut it again.
- acceptsFirstMouse on the launcher window. It is summoned OVER another app,
  so macOS was spending the first click on activating it and never delivering
  it — every row and button ignored the first press.
- Composing gets a card to write in (960×720) and gives it back on the way
  out. The renderer names the JOB; main decides what that is worth in pixels
  and grows the card from where it already is, since re-centring slides the
  row out from under the pointer that just clicked one.
- The summon chord answers while Diff Bro itself is in front. The guard that
  silenced it there existed for the Settings capture field; that field now
  says so itself, and MAIN disarms on the sender's destroy — armed and
  abandoned, the chord would have stayed dead for the session.
- A re-summon keeps an unsaved draft, and the card it was written in. Two
  presses of the chord is how the launcher is dismissed and brought back.
- Jira and Markdown get their formatting row here too, with the rendered form
  drawn beside the syntax as you type.

Markup, both surfaces
- Markdown gains strikethrough, task lists and tables; Jira gains tables;
  both gain list indent/outdent. Each one is offered only because the
  renderer draws it, so the toolbar and the live preview cannot disagree.

Sidebar
- The tag shelf's depth is a HEIGHT the grip drags 1:1, and what fits at that
  height is measured. Four chips per row was a guess that made one row of
  pointer travel worth anything between half a rendered row and two. Adds
  double-click to snap and ↑/↓/Home/End on the seam, which carried no
  keyboard at all.
- A colour you pick, painted across the whole snippet row — right-click it.
  Six colours and None, re-lightened to the theme's own --tag-l and mixed
  into the panel, so the name holds 4.5:1 on all twenty themes (worst: nord,
  6.40). Decoration only: nothing filters, searches or sorts by it.
- Settings ▸ Appearance ▸ "Show tags on sidebar rows" takes the tag word off
  the rows for a library where nearly everything carries the same two.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@mindaugaskasp
mindaugaskasp merged commit bc5be9d into main Aug 13, 2026
6 checks passed
@mindaugaskasp
mindaugaskasp deleted the fix/quicklook-and-tag-shelf branch August 13, 2026 22:03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant