侧边栏底部的已归档对话列表,可只读预览最近消息;针对产品刻意隐藏且无法重新打开的归档会话。
安装
# GitHub 源码(首次需按提示配置 allowBuilds 构建授权后重试)
dsh plugin --profile web add github:AKS1st/dsh-archived-conversations
装任何插件都等于在你的机器上跑第三方代码,权限和你本人一样大——能读你的文件、用你的凭据、访问网络,工具审批管不到它。GitHub 来源的插件还会在安装时执行构建脚本。请只安装可信来源,并尽量锁定 commit(github:owner/repo#sha)。
README
在 DSH Web 侧边栏底部显示已归档对话列表,点击条目可只读预览最近的用户/助手消息。独立插件,通过 dsh plugin 安装进 web profile。
为什么是"只读预览"
DSH 产品有意禁止打开归档会话:客户端 workspaces 服务有一条强制规则——归档会话一旦成为当前会话就被立即清除回"新对话"状态("隐藏的行不能保持打开"),且当前 Host 端没有取消归档(unarchive)API。因此本插件不尝试打开或恢复归档会话,而是提供安全的只读预览:
- 入口在侧边栏底部(
sidebar.footer.action,设置按钮上方),宽/窄侧边栏均适配; - 点击"已归档"展开列表(标题 + 相对时间 + 数量徽标);
- 点击某条 → Host 读取该会话日志,提取最近 6 条用户/助手文本消息(每条截断 400 字符)返回展示;
- 完全不切换当前会话、不修改任何状态、不暴露完整日志。
工作方式
- Host 半部(
src/index.ts):注册 webServer 精确路由GET /__archived-conversations/preview?sessionId=<id>,通过sessionQuery.readSession(live-preferred,冷会话走持久化)读取日志,只提取user/message(真实用户来源)与assistant/message的纯文本块,限量返回 JSON。 - Client 半部(
src/client/index.js):window.__ModuleLoader__.load静态 bundle,require('react'),注册sidebar.footer.action条目,用 fetch 调 Host 预览路由;列表数据来自槽位标准 props(useSessions/useWorkspaces)。
安全设计
本插件的预览路由在发布前经过独立安全审核,并做了如下加固:
- IDOR 防护:预览路由只在
sessionId属于 registry 归档集合(workspaceRegistry.archivedSessionIds)时才响应,活动会话、子代理会话一律不可读(404); - 会话 id 校验:
sessionId必须是 UUID 形态字符串,否则拒绝; - 最小数据:只返回最近 6 条、每条 ≤400 字符的纯文本消息;不返回推理内容、工具调用、文件内容或完整日志;
- XSS 安全:消息文本在浏览器端以 React 文本节点渲染(自动转义,无
innerHTML/dangerouslySetInnerHTML); - 固定错误文案:错误响应使用固定文本,不泄露内部错误细节、堆栈或路径;
- 响应头:
Cache-Control: no-store+X-Content-Type-Options: nosniff; - 不携带凭据:插件不读取、不发送任何文件、凭据或系统信息;路由只读、同源。
说明:路由本身是 DSH 静态插件与 Host 通信的标准模式(
webServer.register+ fetch,与dsh-mermaid等社区插件一致)。DSH web 服务默认绑定127.0.0.1(仅本机可达)。若部署方将 web 端口暴露到局域网/公网,请确保访问层有独立的认证与网络策略。
安装
从 GitHub 仓库安装(构建在 prepare 脚本里自动执行):
dsh plugin --profile web add github:AKS1st/dsh-archived-conversations
dsh web # 重启 web 服务使 profile 生效
若 pnpm 提示 git 依赖需要执行构建脚本(
ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED), 按提示把包加入 profile 的pnpm-workspace.yaml的allowBuilds后重试即可。
本地开发(先构建再安装):
npm install
npm run build
dsh plugin --profile web add .
dsh web
卸载:
dsh plugin --profile web remove archived-conversations
许可
MIT
链接
同类插件
zhu1090093659/dsh-web-ui#packages/dsh-web-ui-all★ 2622
DSH Web UI 插件与皮肤合集:任务看板、git 图、右侧面板、远程移动端 UI、桌宠、实时 token 统计与皮肤中心。
ccch1mneyyy/dsh-TUI★ 1231
Claude Code 风格全屏终端 UI:像素鲸鱼顶栏、实时工作状态行、思考流式展开。
omdsh-dev/DSH-better-sidebar★ 1198
侧边栏完整工作台:内置文件渲染编辑、终端、Git 与子代理,支持三方插件注册新 Tab。
omdsh-dev/dsh-at-file★ 214
Codex 风格的 `@file` 文件引用,输入框里直接搜索并引用工作区文件。
huiliyi37/dsh-tianshu-tui★ 159
DeepSeek Harness 的终端 UI(TUI)。
Nagi-ovo/dsh-visualize★ 114
对话内生成式 UI:模型把交互式 HTML 卡片直接画进会话流,带流式预览与沙箱渲染。