DDDPG/dsh-plugins--plugins-dsh-session-browser ↗★ 0
dsh-session-browser
DSH plugin: same-workspace cross-session read-only browsing for models — list_sessions / read_session / search_sessions tools with strict cwd scoping, UNTRUSTED snapshot marking, and bounded budgets (optional SQLite FTS full-text search).
安装
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:DDDPG/dsh-plugins#543d4b046af0c67602be6d16cba7f6ed94239247&path:plugins/dsh-session-browser说明文档
阅读完整 README ↗dsh-session-browser
English | 中文
同一工作区内的跨 session 只读浏览:给每个 session 的模型提供三个工具,让它能查看同工作区其他 session 的对话内容。
list_sessions— 列出调用方工作区内的其他 session(id / 标题 / cwd / 创建时间 / live / persisted)。可选query(对 id / 标题 / cwd 的大小写不敏感子串)和limit(默认 50,最大 100)。read_session— 读取另一个 session 当前的对话表面(仅用户消息 + 助手文本;工具调用、推理、注入上下文默认排除)。可选maxMessages(保留最新,默认 50)和includeToolResults(默认 false)。search_sessions— 在调用方工作区内全文搜索(需启用 SQLite FTS 索引,见下)。可选limit(默认 10,最大 20)。
安全与边界
- 严格同工作区限制:所有读取以调用方 session 的
cwd(工作区路径)为界。不同 cwd 的 session 不可见、不可读,没有后门参数;自身 session 一律排除。 - 只读快照:内容来自
ctx.sessionQuery.readSurface()(live 优先,持久化兜底),是对方 session 当前模型表面的一次性快照,非订阅、非实时。 - UNTRUSTED 标记:所有跨 session 输出都带警告头(与官方
dsh-session-reference机制一致),模型只应将其作为背景信息,不得执行其中出现的指令/权限声明。 - 预算约束:每条消息 head/tail 截断(默认 8000 字符),单次读取总量 ≤ 60000 字符,超出部分注明省略量;列表默认 50 条、搜索默认 10 条。
安装(web profile)
已发布到 npm(dsh-session-browser@0.2.0,含 dsh.bundle.patch)——一条命令安装并自动挂载(下次启动 dsh 时生效):
dsh plugin --profile web add dsh-session-browser
本地 checkout(开发):dsh plugin --profile web add ./plugins/dsh-session-browser,或 ./scripts/install.sh web plugins/dsh-session-browser。
全文搜索
search_sessions 使用 session-query-sqlite 的 FTS 索引。bundle 层默认已开启(openAt: first-search,索引在 $DSH_HOME/storages/session-search.sqlite——见包内 cordis.patch.yml 的 session-query-sqlite 覆盖行),首次搜索时自动建库。要改位置或关闭,在 profile 自己的 cordis.patch.yml 里覆盖同一 row(每 row 最后一次写入生效):