dsh-reference-session-collector
DSH 会话原文只读投影同步器(drsc):只读扫描 ~/.dsh/sessions/** 会话日志,经内置 leaf 解码器解 zstd/分段帧日志后投影进插件自有 SQLite(node:sqlite,segments/replaces + FTS5),由单条 fenced HTTP 路由提供 surface 标记账本、召回/压缩对账与中文可用的内容检索面;token 计数与 CCI verify 用同一套 DeepSeek-V4 分词器与公式,资产缺失时落带标注的 chars/4 口径。绝不写会话文件,所有落盘仅进自有数据目录。服务三个消费插件:context-compression-i
安装
dsh plugin --profile web add dsh-reference-session-collector
沙箱测试结果
| 阶段 | 结果 |
|---|---|
| 1 安装 | ✗ |
| 2 列装 | — |
| 3 挂载 | — |
| 4 启动 | — |
dsh: initialized profile web at /home/node/.dsh/profiles/web四阶段在隔离沙箱里跑:安装(有网)→ 列装 → 挂载 → 启动(后三步断网)。
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
以上内容来自 npm 上的 README,我们只做格式化,不改内容。
版本
npm 上共发布:12,最后更新 2026-11-06