dsh-session-fulltext-search
IdentifiedTurn on the built-in session full-text search backend (session-query-sqlite, SQLite FTS5) that dsh ships disabled by default, so the sidebar magnifier searches message bodies with snippets instead of
dsh-session-fulltext-search
Enable full-text search over DSH session history in the Web sidebar — and make it actually find Chinese text. 中文说明
The DeepSeek Harness web UI ships with a content-search backend
(@deepseek-ai/dsh-session-query-sqlite, SQLite FTS5) that is disabled by
default (openAt: never): the sidebar magnifier then matches only session
titles and workspace names. This plugin is the deployment override the
backend's documentation prescribes — openAt: first-search with a persistent
derived index under $DSH_HOME.
That alone has a catch for CJK users: FTS5's unicode61 tokenizer treats a
run of continuous Chinese text as one token, so a query only matches when
it aligns with token boundaries — searching 福州大学 does not hit
已保研至福州大学. This plugin therefore also mounts a substring fallback:
queries containing CJK are answered with a literal substring scan over the
same derived index, so any Chinese phrase inside message bodies is found,
exactly as you typed it. Non-CJK queries use the tokenizer unchanged.
What you get
- The sidebar magnifier searches message bodies (user messages, assistant replies) across all workspaces, with a content snippet per hit.
- Chinese searches are substring-based — no whole-token boundary problem.
- The index updates incrementally as sessions grow.
Install
Into a profile (e.g. desktop):
dsh plugin --profile desktop add github:amd47802574/dsh-session-fulltext-search
dsh plugin add also registers the package in dsh.profile.bundles (the
patch-layer stack). Restart DSH afterwards. Manual equivalent:
// <profile>/package.json
"dependencies": {
"dsh-session-fulltext-search": "github:amd47802574/dsh-session-fulltext-search"
},
"dsh": { "profile": { "bundles": ["…existing layers…", "dsh-session-fulltext-search"] } }
then pnpm install inside the profile directory and restart DSH.
Uninstall
dsh plugin --profile desktop remove dsh-session-fulltext-search
After restarting DSH the sidebar falls back to title-only search. The derived
index file ($DSH_HOME/session-query-index.sqlite3) can be deleted.
Notes
- CJK queries take the substring scan; other queries keep the tokenizer's
word/phrase matching (so
pythostill does not matchpython— by design, that is how FTS5 works). Wrap a query in quotes ("two words") for exact-phrase search; FTS5 operators (OR,*) are treated as plain text. - The fallback reads the derived index with its own read-only SQLite connection; the owning engine keeps writing (WAL). A missing or rebuilding index simply returns fewer results for that one query.
- This layer only overrides the
session-query-sqliterow's config (path,openAt) and adds its own wrapper row. Your own profilecordis.patch.ymlsits later in the stack, so a manual override there still wins over this plugin. - The index is derived data — delete the file to force a rebuild. Never point
pathat the session persistence database.
License
MIT
Comments
Loading…
Similar plugins
by LeslieWylie
Search, list and read past and current sessions through the harness's own `sessionQuery` service: uses the SQLite FTS5 index where a deployment enables it, and falls back to a bounded newest-first sca
★ 5
MIT
JavaScript
Aug 18, 2026
dsh plugin --profile web add dsh-session-search-proby Zn-Dk
Message-level full-text search across DSH sessions via an FTS5 trigram index (user / assistant / steering / tool with per-kind filters), deduplicated results across fork/continued sessions, read-only
★ 6
↓ 80/wk
MIT
TypeScript
Sep 9, 2026
dsh plugin --profile web add dsh-session-explorerby 2275803244-cpu
In-session full-text search for the DeepSeek Harness web GUI: kind filters, multi-term AND matching, keyboard navigation, copy-to-clipboard, and jump-to-message.
★ 0
MIT
JavaScript
Oct 1, 2026
dsh plugin --profile web add dsh-client-ui-session-searchby Li-0803
Full-text search for DeepSeek Harness sessions with precise message navigation.
★ 0
MIT
JavaScript
Oct 6, 2026
dsh plugin --profile web add dsh-session-searchCross-session memory for the model: full-text search all past sessions (SQLite FTS5 via ctx.sessionQuery) and bring the strongest matching excerpts back into the current context.
★ 0
dsh plugin --profile web add dsh-plugin-recallby 240xu
Cross-session full-text search over persisted DSH session logs: builds an incremental message-level index and returns sessionId, seq, and a short excerpt; exposes an agent tool and a standalone panel.
★ 0
JavaScript
Oct 21, 2026
dsh plugin --profile web add @240xu/dsh-session-search