dsh-search-index
Sidebar session search that builds its own index instead of reusing DSH's full-text one: title to content toggle in one entry, results grouped per session with the strongest snippet and user/reply/tool tags, plus watermark-based incremental sync, archive-driven pruning of archived sessions, and a sh
Install
dsh plugin --profile web add dsh-search-index
Sandbox test results
| Stage | Result |
|---|---|
| 1 install | ✗ |
| 2 list | — |
| 3 mount | — |
| 4 boot | — |
dsh: initialized profile web at /home/node/.dsh/profiles/webFour stages run in an isolated sandbox: install (network on) → list → mount → boot (last three with no network).
README
<p align="center">
Note (0.7.0): this translation lags behindREADME.md/README.en.md. The 0.7.0 changes (DRS hard dependency, 017 dual-form entry, namespaceswitch-search) are documented there.
<strong>Поиск по сессиям с собственным индексом для боковой панели DeepSeek Harness — переключение между заголовком и содержимым в один клик, с фильтрами по пользователю / ответу / инструменту</strong>
</p>
<p align="center">
<a href="README.md">简体中文</a> · <a href="README.en.md">English</a> · <a href="README.fr.md">Français</a> · <a href="README.de.md">Deutsch</a> · <a href="README.it.md">Italiano</a> · <strong>Русский</strong> · <a href="README.es.md">Español</a>
</p>
<p align="center">
<a href="LICENSE"><img alt="MIT License" src="https://img.shields.io/badge/license-MIT-263146?style=flat-square"></a>
<img alt="Public" src="https://img.shields.io/badge/status-public-7da1de?style=flat-square">
</p>
dsh-search-index
Поисковый индекс для боковой панели веб-интерфейса DSH: добавляет в нижней части боковой панели пункт «Поиск», плавающая панель которого одним кликом переключается между поиском по заголовкам ↔ поиском по содержимому; режим содержимого показывает заголовки и найденные фрагменты сгруппированными по сессиям, с фильтрацией по категориям пользователь / ответ / инструмент. Несёт с собой собственный индекс (независимый от официального полнотекстового индекса DSH) с инкрементальной синхронизацией, неразрушающей пересборкой и экспортом/импортом снапшотов.
Этот пакет занимается только поиском и индексом. Просмотр и очистка истории сессий (бывшая панель «архивные сессии») переехали во вкладку «Архивная комната»dsh-session-steward; этот пакет по-прежнему читает официальный архивный набор, чтобы исключать архивированные сессии из индекса, но больше не пишет в него — у архивного набора только один писатель: стюард. Контракт описан вdsh-归档文件格式契约-20260914.md.
Без правок исходников dsh и без PR: cordis-клиент плюс хост-половина плагина, собранные командой dsh plugin и патчем бандла.
Предшественник и текущая версия
Предшественник: dsh-session-search-toggle. Та версия полагалась на defineStore из @deepseek-ai/dsh-client-runtime, чтобы получить место для строки настроек. DSH 0.1.2 переименовал/перестроил клиентские engine-пакеты (dsh-client-runtime → dsh-client-store), и старый код больше не загружался на новом хосте — один плагин не мог покрыть обе версии одним артефактом.
Текущая версия (dsh-search-index 0.6.6) делает основной линией DSH 0.2.0–0.2.1-rc.2 (peer 0.2.0-rc.1 || 0.2.0-rc.2 || 0.2.1-rc.1 || 0.2.1-rc.2 || 0.2.1-rc.3). Исторические хостовые линии обслуживаются отдельными версионными линиями: DSH 0.1.7 обслуживается версией 0.5.7 (npm dist-tag dsh-0.1.7, ветка compat/0.1.7); более старые хосты 0.1.1/0.1.2 используют устаревший артефакт, который дальше этой версии не развивается. Историческая подоплёка:
- Один артефакт, адаптивный в рантайме: тот же
lib/client.jsзагружается и на 0.1.1-rc.2, и на 0.1.2-rc.1, без единой ветки по строкам версии. Клиентский бандл делаетrequireтолькоreact/react-dom, а оба лежат в общей таблице модулей обеих версий. - Ни один из engine-пакетов не импортируется: ни
dsh-client-runtime, ниdsh-client-store— так что переименование ему не страшно. - Место store реализовано локально: строке настроек нужно место store (
StoreHandle/StoreInstance, контракт принадлежит@deepseek-ai/dsh-client-ui-slotsи совпадает в обеих версиях). Плагин заменяетdefineStoreлокальной реализацией строк на тридцать — она зависит только отcreate()→{ actions, getSnapshot, subscribe, clearPersisted }, без единого specifier'а, привязанного к версии. - Все остальные контракты совпадают в обеих версиях: слот
settings.general.item,SettingsScope.{getSnapshot,subscribe,set,unset}и три поверхности запросовsessionQueryимеют одинаковые сигнатуры.
▼ Поддержка версий DSH
| Версия DSH | Статус | Носитель и ключевое отличие |
| --- | --- | --- |
| 0.2.0-rc.1 | ✅ | this release 0.6.6; peer/engines = 0.2.0-rc.1 || 0.2.0-rc.2 || 0.2.1-rc.1 || 0.2.1-rc.2 || 0.2.1-rc.3, ноль правок кода (чисто caller-потребление мест slots/locale/configForms) |
| 0.2.1-rc.1 | ✅ | this release 0.6.6; начиная с 0.2.1-a.2 хост переименовалwebRuntimeвwebStartup— эта версия внедряетwebStartupс цепочкой отката по двум именам |
| 0.2.1-rc.2 | ✅ | текущая версия 0.6.6; декларативное дополнение перечня (все хостовые peers проверены на наличии rc.2 через npm), ноль правок кода |
| 0.1.7-rc.1+ | ✅ | 0.5.7 (dist-tag dsh-0.1.7); configForms получает хендл по entry id, старые хосты откатываются на settingsScope, привязанный по пространству имён |
| 0.1.1-rc.2 | ✅ (устаревший артефакт, заморожен) | store-движок находится в @deepseek-ai/dsh-client-runtime/client |
| 0.1.2-rc.1 | ✅ (устаревший артефакт, заморожен) | движок переименован в @deepseek-ai/dsh-client-store; этот плагин не импортирует ни тот, ни другой |
Обновление со старого имени: этот пакет — переименование dsh-session-search-toggle; id регистрации клиента, id cordis-патча и адрес репозитория переименованы вместе с ним. GitHub сохраняет редиректы для переименованных репозиториев, поэтому старое имя по-прежнему резолвится — но переведите profile-зависимость на новое имя, а не оставляйте два имени сосуществовать надолго:
dsh plugin --profile web add github:drscrewdriver/dsh-search-index#master dsh plugin --profile web remove dsh-session-search-toggle dsh web # перезапуск
Пространство имён настроек остаётся switch-search (ключ хранения стабилен, миграция не требуется), так что старая конфигурация продолжает работать под новым пакетом.
Что он умеет
- Двойной режим заголовок ↔ содержимое: один вход, два способа искать — «Заголовок» фильтрует в реальном времени по подстроке названия сессии / рабочего каталога; «Содержимое
…(truncated)
Rendered from the README published on npm. Formatted only, not edited.
Versions
Published on npm::41,最后更新 2026-11-06