Search: rank titles, dim overlay setting, UI redesign #26

Open
opened 2026-09-15 06:16:47 +00:00 by kayg · 5 comments
Owner

Request (user, 2026-09-15)

  1. Command search ignores titles: typing show lists "Go to Today (Show the current day)" and "Toggle Sidebar (Show or hide the timeline)" but not "Show Markdown Source" whose title starts with the query. Entry search should rank title matches first (events, notes, days, commands).
  2. Search UI needs a redesign; research good command-palette / search designs (web components are fine as reference; we adopt the style in SwiftUI/AppKit), then propose.
  3. Settings → Plugins → Search: add a "Dim background" option like ~/Developer/mailternal's search overlay; default ON; user can disable.

Acceptance

  • Title/prefix matches rank above description/body matches; show surfaces Show Markdown Source first when a note is open.
  • Dim overlay behind the capsule when enabled (default), native materials, respects Reduce Transparency; setting persists per Space (DECISIONS.md #20).
  • Design proposal reviewed by the user before implementation of the redesign.
## Request (user, 2026-09-15) 1. Command search ignores titles: typing `show` lists "Go to Today (Show the current day)" and "Toggle Sidebar (Show or hide the timeline)" but not "Show Markdown Source" whose title starts with the query. Entry search should rank title matches first (events, notes, days, commands). 2. Search UI needs a redesign; research good command-palette / search designs (web components are fine as reference; we adopt the style in SwiftUI/AppKit), then propose. 3. Settings → Plugins → Search: add a "Dim background" option like ~/Developer/mailternal's search overlay; default ON; user can disable. ## Acceptance - Title/prefix matches rank above description/body matches; `show` surfaces Show Markdown Source first when a note is open. - Dim overlay behind the capsule when enabled (default), native materials, respects Reduce Transparency; setting persists per Space (DECISIONS.md #20). - Design proposal reviewed by the user before implementation of the redesign.
Author
Owner

Spec for the palette redesign (after review of the survey; the rest of the survey = what mailternal already does, so mailternal's capsule chrome is the baseline)

  1. Ranking: exact title > title prefix > word-prefix > fuzzy title > subtitle/keywords > body; matched graphemes bold. (Implemented on wave19/search-titles-dim.)
  2. Secondary line only for Notes/Events (date/context); never for commands, never when it repeats the title.
  3. Compact mode: empty query shows the input + recents, not the full command list.
  4. ⌘↵ secondary action per result type; Backspace on an empty query leaves a nested page.
  5. Motion: list height animates over 100 ms; nothing else; none under Reduce Motion.

Research survey text lives on the branch (docs/research/search-palette-design-2026-09-15.md) for citations only.

## Spec for the palette redesign (after review of the survey; the rest of the survey = what mailternal already does, so mailternal's capsule chrome is the baseline) 1. Ranking: exact title > title prefix > word-prefix > fuzzy title > subtitle/keywords > body; matched graphemes bold. (Implemented on wave19/search-titles-dim.) 2. Secondary line only for Notes/Events (date/context); never for commands, never when it repeats the title. 3. Compact mode: empty query shows the input + recents, not the full command list. 4. ⌘↵ secondary action per result type; Backspace on an empty query leaves a nested page. 5. Motion: list height animates over 100 ms; nothing else; none under Reduce Motion. Research survey text lives on the branch (docs/research/search-palette-design-2026-09-15.md) for citations only.
Author
Owner

Root cause of the missing note-scoped commands: they were gated on the editor's live isInteractionEnabled, which is false while the palette is modal — present with an empty query, gone on the first keystroke. Fixed (a0f2422), VM-verified: 'show' → Show Markdown Source first. Title-first ranking + 25 % dim backdrop toggle (Settings → Plugins → Search, per-Space, default on). On the user's desktop in wave19/desktop-test @ 5b72a45.

Root cause of the missing note-scoped commands: they were gated on the editor's live isInteractionEnabled, which is false while the palette is modal — present with an empty query, gone on the first keystroke. Fixed (a0f2422), VM-verified: 'show' → Show Markdown Source first. Title-first ranking + 25 % dim backdrop toggle (Settings → Plugins → Search, per-Space, default on). On the user's desktop in wave19/desktop-test @ 5b72a45.
Author
Owner

User feedback 2026-09-15 (5b72a45): the dim is nothing like mailternal's search overlay. Mailternal.app is installed on the VM (~/Apps/Mailternal.app): run it, open its search, screenshot, and match material/blur/dim/animation exactly (read mailternal's source, not just the opacity).

User feedback 2026-09-15 (5b72a45): the dim is nothing like mailternal's search overlay. Mailternal.app is installed on the VM (~/Apps/Mailternal.app): run it, open its search, screenshot, and match material/blur/dim/animation exactly (read mailternal's source, not just the opacity).
Author
Owner

User feedback 2026-09-15 (5b72a45): search UI still bad — query sidebar returns NO results (Toggle Sidebar should match on title); selection highlight is rectangular while the capsule corners are rounded; rows do not span the capsule's full width; overall must look like mailternal's search panel (App/Sources/Search/SearchPanel.swift: .fullScreenUI backdrop withinWindow emphasized, .thinMaterial surface, continuous rounded card, 0.18 border, shadow 0.28/28/14, spring with scale .985 + offset -10, width min(680, w-48)).

User feedback 2026-09-15 (5b72a45): search UI still bad — query `sidebar` returns NO results (Toggle Sidebar should match on title); selection highlight is rectangular while the capsule corners are rounded; rows do not span the capsule's full width; overall must look like mailternal's search panel (App/Sources/Search/SearchPanel.swift: .fullScreenUI backdrop withinWindow emphasized, .thinMaterial surface, continuous rounded card, 0.18 border, shadow 0.28/28/14, spring with scale .985 + offset -10, width min(680, w-48)).
Author
Owner

Findings from the VM entry search (Main, build editor-click-image a030ae44, query A0 Block): (1) matched terms in the secondary line render as literal brackets [A0] [Block] Editor… instead of bold highlights; (2) the snippet concatenates blocks without a separator (…Style QAParagraph before…) — join with ' · ' or a space; (3) an event and a note with identical titles tie for rank 1 with the event first — fine, but the kind icon should make it obvious; consider ranking notes above events for note-titled queries. Fix in the search polish follow-up.

Findings from the VM entry search (Main, build editor-click-image a030ae44, query `A0 Block`): (1) matched terms in the secondary line render as literal brackets `[A0] [Block] Editor…` instead of bold highlights; (2) the snippet concatenates blocks without a separator (`…Style QAParagraph before…`) — join with ' · ' or a space; (3) an event and a note with identical titles tie for rank 1 with the event first — fine, but the kind icon should make it obvious; consider ranking notes above events for note-titled queries. Fix in the search polish follow-up.
Sign in to join this conversation.
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
kayg/calternal-macos#26
No description provided.