Ziminli/dsh-session-search ↗★ 1

dsh-session-search

Search stored DSH conversation text across all or selected workspaces and sessions, with exact, regular-expression, typo-tolerant or word-internal subsequence matching.

包名
dsh-session-search
兼容性
待验证
版本
1.3.6
许可证
MIT
最近更新
2026年10月28日

同名包的其他仓库

安装

$npx -p @deepseek-ai/dsh dsh plugin --profile web add github:Ziminli/dsh-session-search

Usage

  1. Click the sidebar magnifying glass or press Ctrl+F / ⌘F. By default, typing searches after a 300 ms debounce. Use the top-right Settings shortcut to open Plugins → Session Search without changing the selected conversation. There, set When to search → Only on Enter / Search and Save to require explicit submission. In that mode, text and filter changes wait together; stale outcomes are hidden until you submit.
  2. All workspaces is the default. Open the workspace picker to select one or more workspaces; changing selection clears selected sessions. Clear selection (all) restores all-workspace scope. Ungrouped / no workspace includes conversations outside registered workspaces. Session choices and cross-workspace results show workspace names; hover a label to see its path.
  3. Keep All sessions, select multiple conversations using checkboxes, or click Search this session on a result. Filter picker options by title or ID; Select all listed adds the currently filtered choices. Each choice is a whole conversation, latest user activity first. Forks and unnamed conversations remain available. Workspace and session selections intersect.
  4. Adjust matching, scope and Message time options. Presets include Today, Last 24 hours, Last 7 days and This month. Custom start/end dates use your browser's local timezone; an end date includes that entire calendar day. Either bound may be omitted. Time uses individual message timestamps, not session activity, and relative windows stay fixed while loading more. Final model replies only starts on; subagents and archived sessions start off.
  5. Choose result order and, for all-session scope, Timeline / By session. Groups are ordered by their newest matching message, or oldest matching message when reversed. A message counts once even when the query occurs repeatedly in it.
  6. Expand groups and use Load more results / Load more sessions (40 entries per page). Group counts include all matching events, not just loaded pages.
  7. Click Refresh sessions after activity, rename, deletion or archival elsewhere. Open conversation navigates to an unarchived conversation and temporarily highlights matching displayed text in yellow, using that result's exact/regex/fuzzy options. Press Esc or the header's Clear highlights button to remove it. Restore archived sessions in DSH's sidebar/archive manager before opening; search never restores them.

Highlighted results remain in native Conversation mode so DSH’s selected-session file/link viewers stay available. Only during highlighting, the plugin temporarily replaces the Conversation shell using its own uniquely declared session child and the shared content factory. Clearing highlights, pressing Esc or switching to another session disposes that replacement and restores the resident shell; the resident slot declarations are not recreated.

Conversation highlights are view-only: saved messages, selection/copying and original Chat renderers are unchanged. They apply to currently rendered, non-hidden text blocks, not unloaded history or collapsed content; loading older messages or expanding content refreshes them. The result's time/final-only filters select search outcomes, not which text is painted after opening. Markdown rendering can change whitespace or remove syntax, so highlights follow displayed text and cannot span separate block elements. Opening a result preserves its event sequence and loads history through that event before mounting Chat. A compatibility adapter identifies an exact matching Chat row (never a nearby unrelated event), scrolls that row and its first rendered match into view, and spends the highlight budget on it first. It stops automatic scrolling after user interaction. Shipped Chat has no public selected-event reveal API, so collapsed reasoning/tool content or changed Chat markup can prevent the jump; the header reports this rather than jumping to another message. Expand the relevant content to reveal its highlights. Highlighting uses the browser CSS Custom Highlight API, with an explicit unsupported-browser notice, a 100 ms Host deadline, and bounded scans (500 blocks / 200,000 UTF-16 units / 2,048 ranges); partial coverage and errors are shown in the header. “Highlighting is capped” refers only to this bounded display pass, not missing search results or changed messages. The query is temporary, not saved or added to the URL.

Escape or the close button returns to the conversation. Query/options survive while the client module stays loaded; loaded pages and expansion state survive view switches while the panel stays mounted. These are not permanent settings across application restarts; the saved search-timing preference is profile-persistent. For native browser page-find while the plugin owns Ctrl+F/⌘F, use the browser menu.