dsh-web
zhu1090093659/dsh-webDeepSeek Harness(DSH)Web 插件聚合生态包 · 一切皆插件,创意工坊分发(dsh-market.com)
Conversation steward for DeepSeek Harness: one folder per conversation, recoverable delete, right-click file actions, and a three-rule safety baseline written into the global AGENTS.md.
给 DeepSeek Harness 的对话管家:
每个对话一个文件夹、可恢复的删除、文件右键菜单,外加一套写进全局 AGENTS.md 的运行守则。🌏 中文 · English
DSH 原生把「对话」放在侧边栏,但:
AGENTS.md。这个插件把这四件事一次做完,并且只有一个 bundle、一个开关、一个设置页。
把 ` 换成你的 profile 名(桌面端通常是 desktop,Web 端通常是 web`)。
dsh plugin --profile <profile> add https://codeload.github.com/John4874314/dsh-steward/tar.gz/refs/tags/v1.0.0不要求本机装 git,也不要求 github.com:443 可直连 —— 只走 codeload.github.com。
github: 简写dsh plugin --profile <profile> add github:John4874314/dsh-steward需要本机 PATH 里有 git,且能连上 github.com:443。在国内网络下 github.com 常常超时(api.github.com / codeload.github.com 却正常), 这时会报 ERR_PNPM_GIT_RESOLVE_FAILED,换方式一即可。
重启 DSH。客户端 bundle 图在进程启动时构建,只按 Ctrl/Cmd + Shift + R 刷新页面 不会重新扫描新插件。
0.2.1-rc.3 上实测通过)尚未发布到 npm。dsh plugin add dsh-steward 现在装不到东西,请用上面两种方式。设置 → 对话管家 → 对话管理 → 「每个新对话创建一个文件夹」。
-。$DSH_HOME/chat-manager-config.json。对话行「⋯」菜单 → 「删除对话」。
确认框里可勾选「同时删除该对话的文件夹」。确认后:
api-session/removed,让侧边栏立即移除该行内容进$DSH_HOME/trash//,并写一条meta.json记下标题、时间、原路径。
设置页「回收站」里可以恢复或彻底删除。
对话行「⋯」菜单 → 「打开该对话的文件夹」,直接在资源管理器里定位。 没有登记过文件夹的对话不显示这一行 —— 不占位,也不会出现点了没反应的按钮。
/chat-delete-batch --sessions=<id1,id2,...> [--with-folder]逐个走同一条删除路径,全部进回收站,返回每个的成功/失败明细。
对话里的文件卡片上点右键(或用键盘 Shift+F10 / 菜单键):
动作 · 说明 打开 / 打开文件夹 / 选择打开方式 · 走 remote.session.*,不写会话日志 在终端中打开 · 在该文件所在目录起一个终端窗口 复制路径 · 复制绝对路径 复制为引用 · 复制成 @,粘贴到输入框即可定位 另存为… · 选目录后由宿主复制一份(同名自动加序号) 重命名… · 同目录内改名,不覆盖已有文件 移到回收站 · 文件进 $DSH_HOME/trash/,可恢复
外观是液态玻璃,颜色取 --dsw-alias-* 令牌,随深浅主题自动切换。
「打开 / 打开文件夹 / 打开方式 / 复制路径 / 复制为引用」不写日志;
「在终端中打开 / 另存为 / 重命名 / 移到回收站」必须由宿主执行,走 /chat-file,会在对话里留一条命令记录 —— 这是浏览器无法直接写本地文件的必然代价。
设置 → 对话管家 → 运行守则 → 「启用运行三原则」。
打开后把三原则写进 `$DSH_HOME/AGENTS.md`(DSH 的全局指令文件), 每个工作区、每个新会话都会带上,harness 升级也不丢:
正文见 AGENTS.guardrails.md。
本 bundle 的 patch 会重新启用 agent-instructions(web-app bundle 默认禁用了它),否则守则写进AGENTS.md也进不了上下文。副作用:项目里的AGENTS.md/CLAUDE.md
也会被读进上下文。
分页 · 内容 对话 · 每个新对话一个文件夹的开关 回收站 · 列表 / 恢复 / 彻底删除 / 清空,显示每条占用 备份 · 备份目录位置与占用,一键清空 或 打开文件夹 自行取舍 运行守则 · 三原则开关、全文展开、写入结果预览、用内置版本恢复 体检 · 一次只读自检,报告守则块 / 表单 / 配置 / 登记表 / 回收站 / 备份
写 AGENTS.md 等文件前会自动备份到 $DSH_HOME/backups/,备份会一直留着占磁盘。 「备份」分页因此给了两个按钮:一键清空 或 打开备份文件夹 自己挑。 插件不会替你自动删 —— 那是不可逆操作,该由你决定。
检查项 · 说明 guardrails · 守则块在不在、标记是否配对、有没有残留旧标记 config-schema · schemastery 是否可用(拿不到就没设置表单) config-file · 配置文件能否读取、当前开关值 folder-registry · 登记表里有多少条指向已不存在的目录 trash · 回收站条目数与占用 backups · 备份条目数与占用
全部只读,不改任何文件。
这是本插件最看重的设计目标 —— 任何失败都只表现为「少一个功能」,绝不连累 DSH 本身:
拿不到就导出 Config = undefined,插件照常加载,只是没有设置表单。
apply 结尾 catch(() => {}),任何失败都只是「没写进去」。$DSH_HOME/backups/,备份失败就放弃写入。还会顺手清理旧 guardrails 插件留下的 guardrails:begin/end 段。
dsh-better-sidebar)的集成一律用ctx.get(...) 探测 + try/catch,目标不存在就跳过,不影响本体。
已做故障注入:DSH_HOME 不存在、config 为 null、依赖缺失、重复 apply 均不抛错。
配置文件在 $DSH_HOME/chat-manager-config.json:
{
"folder": {
"enabled": false,
"trigger": "first-message",
"template": "chat-{date}-{time}",
"useAsWorkingDirectory": false
},
"guardrails": {
"install": true
}
}字段 · 默认 · 说明 folder.enabled · false · 是否每个新对话建一个文件夹 folder.trigger · first-message · first-message 或 session-start folder.template · chat-{date}-{time} · 支持 {date} {time} {title} {id} folder.useAsWorkingDirectory · false · 建好后是否把该对话的工作目录切过去 guardrails.install · true · 是否把三原则写进全局 AGENTS.md
设置页只暴露folder.enabled和guardrails.install两个开关;
其余字段需要手改这个 JSON。改完重启 DSH 生效。
设置 → 插件 → 已安装 → 移除。
$DSH_HOME/AGENTS.md 里的守则段不会自动删除(那是你的文件), 需要的话手删 ` 与 ` 之间的内容。
node_modules/ 里指向 schemastery 的链接是设置表单用的,删掉只会让设置页退化,不会让插件崩。