dsh-plugin-session-delete 使用指南
在 DSH Web 界面补全"删除会话"能力:会话顶垃圾桶按钮、侧栏"..."菜单注入删除项、Agent 工具 workbench_session_delete,删除会话日志、投影缓存与工作区记账。
本文为派生内容(基于 wiki / faq / compatibility_json 自动组装),非 AI 即时创作。
本文由本站基于该插件已收录的字段自动派生(wiki / faq / compatibility_json / readme),非 AI 即时创作。每节末尾标源字段。
快速上手
dsh-plugin-session-delete
— 源: plugin_wiki.wiki_content
安装与验证
dsh plugin --profile web add github:lsz-asd/dsh-plugin-session-delete
复制以上命令在 DSH Web Profile 内运行。安装完成后在「插件列表」启用即可。
— 源: plugins.install
关键要点
- 侧栏会话行 "..." 菜单注入"删除会话"项
RiskConfirmation风险确认:勾选"我已了解后果"后确认可用- 删除链路:会话目录 + 投影缓存 + 工作区记账(经活动 storageDomain,内存/磁盘一致)
workbench_session_delete工具:agent 可直接删除会话- 添加更多针对会话的操作工具和选项
— 源: plugin_wiki.readme_zh (fallback readme_raw)
常见问题
安装后必须重启 web 才能生效吗?
是的。Host 端通过 cordis bundle 行注入,需要重启 dsh web 才能加载新路由和工具;客户端模块同理。
能不能删除正在运行的会话?
能,但服务端会先调用 agent.cancel({kind:'user'}) 并等待 agent.whenIdle(最长 15 秒),确认停止后才执行删除;客户端对话框会用 ⚠ 警告告知用户此操作将中断正在进行的任务。
删除不彻底、回到"未分组"是怎么修好的?
v0.3.1 起同时清理原始 uuid 与 session-<uuid> 两种 id 形式;先删除磁盘日志并确认成功后再解除工作区记账;删除前先 flush 活动会话,避免 dispose 阶段重建日志目录。
侧栏"..."菜单里为什么不是原生菜单项?
rc.6 版本的 session-row "..." 菜单(重命名/fork/归档)硬编码在 ui-workspace 中、没有任何扩展插槽,所以本插件通过 MutationObserver 监听 DOM、向菜单动态注入"删除会话"项,标签颜色与官方错误色保持一致。
"删除会话"按钮在桌面客户端能用吗?
能。client.js 同时被 web 平台注入(dsh.client.platform: web)和 desktop shell 加载;会话顶按钮按 sessionId 派发,DOM 注入的侧栏项按标题匹配,共享同一个删除对话框。
怎么卸载?
运行 dsh plugin --profile web remove github:lsz-asd/dsh-plugin-session-delete 并重启 profile;由于 cordis bundle 行 id 固定,重装/卸载都走同一行,无需手工清理。
删除一个会话会动到哪些数据?
删除 ~/.dsh/sessions/session_projcache 的 sessions 表行)、从 workspace 域的 workspaces.sessionIds 数组和 global.archivedSessionIds 数组中摘除;删除后客户端列表立刻刷新。
会话 ID 校验严格吗?
严格。Host 端只接受符合 (session-)?<uuid> 正则的 ID,否则返回 400 invalid session id;侧栏点击时按客户端 list store 做精确/去 fork 后缀/包含三段匹配,未命中会回退到 /__chameleon/session/list。
— 源: plugin_wiki.faq_json
兼容性
- DSH: ^0.1.0-rc.6
- Node: >=20
— 源: plugin_wiki.compatibility_json
踩坑提醒
安装前请审阅上游仓库;本指南基于已收录字段自动派生,可能滞后于最新版本。如发现与官方文档冲突,请以上游为准。
— 来源:通用规则