dsh-copy-session-id:在会话标题栏一键复制会话 ID

前言

在 DeepSeek Harness(DSH)里做多会话协作时,经常要把当前会话的 ID 交给另一个会话:转交上下文、让子代理接着干、写进任务清单,或发给同事。DSH 默认不在界面上展示当前会话 ID,要拿到它往往得翻目录或读存储文件。dsh-copy-session-id 是维护者 zws20070309 发布的客户端类插件,在会话标题栏操作区增加一个「复制会话 ID」按钮,点一下即可把当前会话 ID 的原文写入剪贴板,无额外包装文本。

这是什么

插件仓库:zws20070309/dsh-copy-session-id,分类为客户端,在 SkillHub 目录页 与 GitHub 均可查看。npm 包名为 @zws/dsh-copy-session-id,当前版本 1.0.0,MIT 许可。

它挂在 DSH 官方 UI 槽位 conversation.session.header.actions(会话标题栏右侧,与「智能体团队」等按钮同区),不占常驻 ID 文本位;悬停可查看完整 ID 以便核对。

核心功能

下面介绍插件在界面上与复制行为上的具体能力,均可在仓库 README 中核对。

  1. 纯 ID 进剪贴板:复制结果为会话 ID 本体,无前缀、后缀或换行,粘贴到别处可直接使用。
  2. 轻量反馈:点击后图标变为对勾并显示「已复制」,约 1.5 秒后恢复;复制失败会显式显示「复制失败」,不静默失败。
  3. 复制降级链:依次尝试 navigator.clipboard.writeText、隐藏 textarea 配合 execCommand('copy'),仍失败则提示用户。
  4. 实现约束:客户端 bundle 与官方及其他插件拼成单脚本执行,注册为单条 window.__ModuleLoader__.load({...});槽位 order: 100,在同槽位官方条目(实测 order 为 -30 / -20 / -10 / 20)中靠右排列。源码仅 require('react'),无额外构建;槽位注册失败时按钮不出现,不影响 DSH 主体运行。

安装与启用

安装步骤来自仓库 README。Windows 下可用 PowerShell 脚本建立目录联接并写入 profile 依赖;安装后须完全退出并重启 DSH(插件源码目录默认不在 HMR 监听范围内,改代码后也需重启才生效)。

git clone https://github.com/zws20070309/dsh-copy-session-id.git
cd dsh-copy-session-id
powershell -ExecutionPolicy Bypass -File .\tools\install-link.ps1

脚本会在 <DSH_HOME>\plugins\dsh-copy-session-id 建立指向源码的 junction,并修改 <DSH_HOME>\profiles\desktop\package.json 的 dependencies 与 dsh.profile.bundles,以及在 node_modules\@zws\dsh-copy-session-id 建立联接。默认 <DSH_HOME> 为 %USERPROFILE%\.dsh。

可选:自定义路径或 profile、卸载保留源码目录:

.\tools\install-link.ps1 -DshHome D:\dsh -ProfileName web -Source C:\path\to\this\repo
.\tools\install-link.ps1 -Uninstall

也可在 DSH 界面「插件 → 已安装 → 添加插件」中填写本仓库目录的绝对路径,不走脚本。

注意:不要手改 profiles\<profileName>\cordis.yml 注册插件;应通过 bundle 的 cordis.patch.yml 或上述安装方式。Linux/macOS 可将脚本中的 junction 改为符号链接(ln -s),README 有说明。

兼容性(资料原文):DSH 44.x(在 44.0.0 上开发与验证);peer 依赖 @deepseek-ai/dsh-client-locale、@deepseek-ai/dsh-client-ui-plugin-manager(>=0.2.0-rc.1 <0.3.0);Node >=18。

典型用法

  1. 完成安装并重启 DSH,打开任意已有 sessionId 的会话。
  2. 在会话标题栏右侧找到复制按钮(README 示意为 📋 图标),点击一次。
  3. 确认界面短暂显示「已复制」后,在目标位置粘贴,内容应与会话 ID 完全一致;需要核对时可悬停按钮查看完整 ID。

跨会话协作时:在源会话复制 ID,在目标会话或文档、任务系统中粘贴,用于关联同一会话上下文。若按钮呈灰色不可点,说明当前会话尚未分配 sessionId。

适用场景与注意

适合谁:经常在 DSH 内做多会话编排、子代理 handoff、或需要把会话 ID 记入外部系统的开发者。

安全与审查:插件以当前 DSH 进程权限在客户端运行,安装前应阅读仓库源码与 MIT 许可证,确认行为符合预期。社区目录 SkillHub 为独立站点,与 DeepSeek / 幻方无官方从属关系;DSH 生态强调「一切皆插件」,本插件仅为社区贡献之一。

排错摘要(来自 README):

症状 建议
标题栏无按钮 DevTools Console 搜索 copy-session-id;无任何日志多为未重启 DSH
有 slot register 告警 官方槽位契约可能变化,页面不崩但按钮不出现
显示「复制失败」 非安全上下文且 execCommand 被拒;DSH 在 127.0.0.1 上通常不会遇到

开发者可在仓库根目录运行 node tools\selftest.cjs 做离线自测,无需启动 DSH。

结尾

dsh-copy-session-id 把「拿到当前会话 ID」从翻目录变成标题栏一次点击,复制内容为纯 ID,并带可见的成功与失败反馈。进一步了解或安装请访问 SkillHub 插件页 与 GitHub 仓库。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜