Index chats and messages in macOS Spotlight #11

Open
opened 2026-08-21 08:36:17 +00:00 by kayg · 0 comments
Owner

Goal

Expose Hermternal chats and messages to macOS Spotlight through Core Spotlight, complementary to the in-app ⌘K BM25 search.

Direction

  • Index durable chats and stable server-backed messages as CSSearchableItems from the local cache/index pipeline; never fetch merely for Spotlight.
  • Selecting a result opens the corresponding hermternal://chat/.../message/... deep link.
  • Incremental insert/update/delete; no full reindex on every launch.
  • Disable/remove Spotlight items when local caching is disabled, the user signs out, or a session is deleted.
  • Use privacy-safe titles/snippets and expose an explicit Settings toggle if indexing message content beyond the app is considered sensitive.

Performance

Indexing stays off the main actor, batches updates, honors cancellation, and never blocks chat launch/switching/streaming.

Dependencies

Coordinate with #4 (deep links) and #8 (local BM25 search) so all three share stable identity and one incremental indexing source.

## Goal Expose Hermternal chats and messages to macOS Spotlight through Core Spotlight, complementary to the in-app ⌘K BM25 search. ## Direction - Index durable chats and stable server-backed messages as `CSSearchableItem`s from the local cache/index pipeline; never fetch merely for Spotlight. - Selecting a result opens the corresponding `hermternal://chat/.../message/...` deep link. - Incremental insert/update/delete; no full reindex on every launch. - Disable/remove Spotlight items when local caching is disabled, the user signs out, or a session is deleted. - Use privacy-safe titles/snippets and expose an explicit Settings toggle if indexing message content beyond the app is considered sensitive. ## Performance Indexing stays off the main actor, batches updates, honors cancellation, and never blocks chat launch/switching/streaming. ## Dependencies Coordinate with #4 (deep links) and #8 (local BM25 search) so all three share stable identity and one incremental indexing source.
Sign in to join this conversation.
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/hermternal-apple#11
No description provided.