dsh-reference-session-collector
Verifieddsh-reference-session-collector · v0.2.2 · MIT · Web UI
DSH Web 插件:会话原文投影同步器(DRS)——只读扫描 ~/.dsh/sessions 会话日志,解码后投影进自有 SQLite(segments/replaces/FTS5),经 /api/dsh-reference-session-collector 提供 surface 标记、召回对账与内容检索面。绝不写会话文件。
Install
dsh plugin add dsh-reference-session-collector Confirm the layer applied with dsh --profile default --dump-config — see the install guide.
Source
Tags
Readme
dsh-reference-session-collector (DRSC) — синхронизатор проекции сессий
Плагин DeepSeek Harness (DSH): сканирует только на чтение журналы
сессий в ~/.dsh/sessions/**, декодирует их и проецирует в собственную
SQLite-проекцию (segments / replaces / FTS5). Одна защищённая HTTP-маршрут
GET/POST /api/dsh-reference-session-collector предоставляет пометки поверхности,
сверку вызовов (recall) и полнотекстовый поиск с поддержкой китайского.
Никогда не записывает в файлы сессий.
Статус
Поставлено (v0.1.0): хостовая половина полностью — чистое ядро
проекции, хранилище SQLite (node:sqlite / FTS5), инкрементальный движок
синхронизации (предпроверка watermark, отслеживание архива, interval-планировщик),
слой запросов с трёхуровневым кэшем, защищённый HTTP-маршрут. Цепочка
гейтов pnpm check полностью зелёная (9 наборов / 66 тестов + dist-смоук).
Осталось: подключение потребителей (фаза 1 — сверка CCI, фаза 2 —
переключение корпуса steward, фаза 3 — дозаполнение якорей memory) и
бенчмарк эффективности T9.1.
Архитектура
~/.dsh/sessions/** (только чтение) ──→ ProjectionSync (инкрементально, watermark=bytes+mtime)
│ projectSessionEvents (чистое ядро)
▼
~/.dsh-reference-session-collector/projection.db (4 таблицы + fts5 + 3 уровня кэша)
│
┌────────────────────┼───────────────────┐
/api/dsh-reference-session-collector CCI (фаза 1) steward (2) / memory (3)
Таблица HTTP-маршрутов
| op | параметры | возвращает |
|---|---|---|
status |
— | самодиагностика хранилища + статистика кэша + последний sync |
sessions |
offset/limit |
сводка сессий (резидентная Map, 0 SQL) |
session |
session=<id>, опц. turn= / fields=search |
детали segments (поля поиска) |
surface |
session=<id> |
реестр поверхности (текущая + указатели замен) |
recall |
session=<id> |
классификация пар замен (Σb / Σ(a−b)) |
search |
q=<запрос>, опц. session= |
FTS5 BM25 (одинаковая сегментация zh/en) |
sync (POST) |
{op:'sync'} |
accepted + последний результат |
Дисциплина «только чтение»
- файлы сессий и
workspace.json— всегда только чтение; - все записи плагина идут исключительно в
~/.dsh-reference-session-collector/projection.db; - полная перезапись-замена на сессию (DELETE+INSERT в транзакции), идемпотентно;
- ответственность за обезличивание не на DRSC: хранится исходный текст, площадь утечки = сами файлы сессий.
Переменные окружения
| переменная | по умолчанию | значение |
|---|---|---|
DSH_HOME |
~/.dsh |
корень журналов сессий |
DSH_REFERENCE_SESSION_COLLECTOR_DIR |
~/.dsh-reference-session-collector |
каталог БД проекции |
DSH_REFERENCE_SESSION_COLLECTOR_SYNC_INTERVAL_MS |
30000 |
интервал sync; 0 = только вручную |
Установка / разработка
dsh plugin --profile web add dsh-reference-session-collector
pnpm install && pnpm check # typecheck→lint→test→build→smoke
Требуется Node ≥ 22 (zlib.zstdDecompressSync + node:sqlite).
Лицензия
MIT