dsh-web
zhu1090093659/dsh-webDeepSeek Harness(DSH)Web 插件聚合生态包 · 一切皆插件,创意工坊分发(dsh-market.com)
DeepSeek Harness (DSH) 的会话回收站插件。官方目前只有"归档"(会话留在原位、仅变灰),没有删除入口;本插件补上真正的删除:
~/.dsh/trash/sessions/<sessionId>/,登记信息写入 ~/.dsh/trash/manifest.json——数据不会立即丢失。在 DSH 的 desktop profile 里安装(DSH 自带 pnpm,无需全局安装):
cd ~/.dsh/profiles/desktop
node ~/.dsh/dsh-runtimes/dsh-primary-runtime/dependencies/pnpm/bin/pnpm.cjs add github:<你的用户名>/dsh-plugin-session-trash
然后把 "dsh-plugin-session-trash" 加入 profile package.json 的 dsh.profile.bundles 数组,重启 DSH 即可。
也可以通过 DSH 设置里的插件管理器安装(指向本仓库的 git 地址)。
卸载:pnpm remove dsh-plugin-session-trash + 从 dsh.profile.bundles 移除 + 重启。~/.dsh/trash 与 ~/.dsh/sessions 均不受卸载影响,回收站里的数据保持原样。
lib/index.js):cordis 服务 sessionTrash,依赖 workspaceRegistry 和 sessions。所有工作区登记变更都走 registry 官方 API(unarchiveSession / unpinSession / detachSession / attachSession),本插件从不手改 workspace.json。rename 会话目录进出 ~/.dsh/trash/sessions/,以及永久删除时的 rm -rf(仅限回收站目录内)。~/.dsh/sessions/ 里只发生过改名进出,没有就地写入。refresh() 让侧栏就地更新——全程无需刷新页面或重启。lib/client.js):注册 sidebar.workspaces.session.menu.item(菜单项)、shell.overlay(Toast/确认框)、settings.section(回收站设置页,垃圾桶图标)。lib/remote.js + lib/typert.host.js),一次式 direct 调用。sessions.refresh() 就地更新侧栏;极少数情况下(DSH 内部结构变化导致驱逐失败)提示行要等重启应用后消失。create 重建挂接;若工作区目录本身也没了,会话文件恢复但保持未挂接,并给出警告文案。session_projcache 读取标题兜底,回收站列表里更好认。在 DSH 0.2.0-rc.2(Electron 44,darwin arm64)上开发并实测。用到的主要接口:cordis 插件体系、workspaceRegistry 服务、sessions 服务(含内部 live 表的 best-effort 驱逐,特性检测 + 降级)、Typert remote、sidebar.workspaces.session.menu.item / settings.section / shell.overlay 槽位、primitives 的 Toast/Modal/MenuItemButton。其他版本未测试,接口变动时以降级行为兜底。
pnpm install # 或用 DSH 自带 pnpm
pnpm build # src/ -> lib/(lib/ 已提交,装包无需构建)
pnpm test # 宿主半冒烟测试(临时 DSH_HOME,不碰真实数据)
迭代流程:改 src/ → pnpm build → 在 profile 里重装 → 重启 DSH。
MIT