dsh-web
zhu1090093659/dsh-webDeepSeek Harness(DSH)Web 插件聚合生态包 · 一切皆插件,创意工坊分发(dsh-market.com)
DSH Web 会话整理插件:标签分类 · 归档 / 恢复 · 已归档浏览(DeepSeek Harness session organizer plugin)
DSH(DeepSeek Harness)Web 端会话整理插件:标签分类 · 归档 / 恢复 · 已归档浏览。 Organize your DSH Web sessions: tag-based grouping, archive & restore, and an archived-session browser.
DSH 自带的工作区视图只能按「目录」分组、组内只能排序,会话一多就堆在一起。 本插件为会话区补上一层自定义分类维度和归档管理面板,并且归档状态与 DSH 原生的 归档体系完全同源——操作后侧边栏会实时联动,没有 hack。
全部 / 未分类 / 已归档 / 各标签。标签:增删标签,每会话最多 8 个,可用按钮一键复用已有标签;归档:立即从原生侧边栏列表隐藏(不删除数据);恢复:把已归档会话一键放回侧边栏原位置。workspaceRegistry,原生侧边栏同步更新。--dsw-*),明 / 暗主题下都协调。dsh plugin --profile web add dsh-workspace-organizer
dsh plugin --profile web add github:Wang993/DSH_OrganizeFilesInTheSameWorkspace
git clone git@github.com:Wang993/DSH_OrganizeFilesInTheSameWorkspace.git
dsh plugin --profile web add link:<克隆下来的目录绝对路径>
编辑 $DSH_HOME/profiles/web/package.json:
{
"dsh": { "profile": { "bundles": ["...", "dsh-workspace-organizer"] } },
"dependencies": { "dsh-workspace-organizer": "link:./dsh-workspace-organizer" }
}
把插件目录放到 $DSH_HOME/profiles/web/dsh-workspace-organizer,然后在该目录执行 pnpm install。
四种方式安装后都需要重启 dsh web 并刷新页面,即可看到菱形按钮。
数据位置:标签存于 $DSH_HOME/.dsh-organizer-tags.json(纯 JSON,可备份、可手工编辑、可纳入版本管理)。
| 部分 | 说明 |
|---|---|
宿主插件 lib/index.js | 注入 webServer / workspaceRegistry / sessionQuery,注册 /dsh-organizer/* 路由,并用 ctx.webServer.tapIndex() 向页面注入客户端脚本 |
客户端 lib/organizer.js | 纯 DOM(无框架、无构建),负责按钮吸附、面板渲染、交互 |
| 会话列表 | ctx.sessionQuery.listSessions() 取全部会话,readTitleSnapshots() 折叠日志标题 |
| 归档 | ctx.workspaceRegistry.archiveSession(id)(官方接口) |
| 恢复 | 读写内置 archivedSessionIds 状态集(官方未暴露反归档 RPC) |
| 按钮吸附 | 读取侧边栏设置区元素的屏幕位置,MutationObserver + resize + 定时兜底三层跟踪 |
无构建步骤:没有打包器、没有依赖,插件就是几个 ESM / 浏览器脚本文件。
dsh-base + dsh-web-app 的 Web profile(DSH 默认的 web 模板即是)。.hHd-Xa_settingsArea。DSH 升级若改掉该类名,按钮会自动回退到左下角固定位置,功能不受影响。$DSH_HOME/sessions 下。node --check lib/index.js # 宿主插件语法校验
node --check lib/organizer.js # 客户端脚本语法校验
lib/organizer.js:刷新页面即生效(脚本每次请求都从磁盘实时读取,无需重启)。lib/index.js:需要重启 dsh web(宿主插件只在启动时加载)。本仓库自带 .github/workflows/publish.yml:推送 v* 标签即自动发布到 npm。
改 package.json 的 version(例如 1.0.1);
commit 并 push 到 main;
打标签并推送(标签必须与版本号一致,workflow 会强校验):
git tag v1.0.1
git push origin v1.0.1
GitHub Actions 会依次执行:语法闸门 → 标签/版本一致性校验 → 同版本重复发布检测 → npm publish。
本包已在 npm 侧配置 Trusted Publisher(包页面 → Settings → Publishing access → Trusted Publisher):
| 字段 | 值 |
|---|---|
| Provider | GitHub Actions |
| Organization or user | Wang993 |
| Repository | DSH_OrganizeFilesInTheSameWorkspace |
| Workflow filename | publish.yml |
| Environment name | (留空) |
workflow 在有 id-token: write 且未设置 NPM_TOKEN 时自动走 OIDC,因此 CI 里不需要任何长期密钥。
从公开仓库经 OIDC 发布时,npm 还会自动生成 provenance 证明(无需 --provenance 参数)。
npm 自 2026-07-31 起收紧了两类凭据,配置时务必避开:
npm publish 会报
E403 ... E_STAGE_REQUIRED;CI 里用它会失败。npm login --registry https://registry.npmjs.org 后发布,或走 npm stage publish + npm stage approve
(后者需要维护者用 2FA 审批)。NPM_TOKEN,
否则 workflow 会退回 token 路径从而继续撞上 E_STAGE_REQUIRED。据此,本仓库的推荐配置是:只保留 Trusted Publisher + 在包设置里勾选 “Require two-factor authentication and disallow tokens”,不需要任何 token secret。
profiles/web/package.json 的 dsh.profile.bundles 与 dependencies 移除本包;pnpm install;dsh web;$DSH_HOME/.dsh-organizer-tags.json。MIT