leolee9086/dsh-better-session-query ↗★ 0
dsh-better-session-query
为会话历史构建块级并行索引以供检索 高级检索工具。适合需要对会话中的文本、推理、工具调用进行细粒度检索的用户。
安裝
$
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:leolee9086/dsh-better-session-query說明文件
閱讀完整 README ↗配置
| 键 | 默认 | 说明 |
|---|---|---|
path | /session-blocks.db | 索引库;:memory: 表示不落盘(每次启动重建) |
journalMode | wal | wal/delete/truncate/persist |
include | 见上 | 逐类开关:text reasoning toolCall toolResult todo turnEnd toolCallEvent images files |
recheckMs | 600000 | 冷会话复查间隔 |
maxSessionsPerReconcile | 25 | 单轮索引更新上限 |
useTokens | true | 用 sessionPersistence.stat 的文件物理身份做变更令牌(不读事件日志);拿不到服务就自动退回指纹比对 |
listingTtlMs | 15000 | 会话清单缓存;0 = 每轮都重新取 |
failureCooldownMs | 1800000 | 读不出来的会话的失败冷却,避免每轮白吃名额 |
includeCold | true | 关掉就只索引实时会话 |
includeWorkspaces | [] | 白名单:非空时只索引这些工作区(穷尽语义,没有 cwd 的会话也不收) |
excludeWorkspaces | [] | 黑名单:这些工作区连日志都不读;已经在索引里的会在下一轮索引更新被清掉。黑名单优先于白名单 |
includeWithoutWorkspace | true | 没有 cwd 的会话收不收(仅在白名单为空时生效) |
includeArchived | false | 归档会话收不收。默认不收:归档只是工作区注册表里的一个 id 列表(workspaceRegistry.archivedSessionIds),日志原地不动、listSessions() 照样列出来,所以必须显式排除;已经在索引里的归档会话会被清掉,取消归档后下一轮自然回来 |
reconcileOnSearch | "background" | 检索时怎么办:"background" 踢一轮后台(不等)/ "await" 同步等一轮 / "off" 不管 |
backgroundReconcileMs | 30000 | 后台定时索引更新间隔;0 = 关掉定时(库退化成按需打开) |
defaultLimit / maxLimit | 20 / 100 | 检索返回条数 |
snippetTokens | 24 | FTS5 snippet 的 token 预算 |
logFile / logMaxBytes | /logs/session-blocks.log / 2MB | 诊断日志(stdout 不落地,诊断必须落盘);"off" 关闭 |
monitor | { enabled: true, path: "/session-blocks" } | 界面监控数据面:关掉就不挂路由(宿主工具与服务不受影响) |
没有 openAt。 那是官方 session-query-sqlite 的配置词汇(shipped profile 用它关掉官方那套索引),本插件不抄它:启用后台索引更新就在加载时开库并把定时器接上——索引是后台渐进的过程,不能等"有人碰一下"才开始,否则每次重启都停在原地。不想要后台工作设 backgroundReconcileMs: 0;整个插件不要就在 profile 里禁用那一行。开库失败只记日志、不拒绝加载(一个后台索引不该把 profile 拖下水)。