🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI
广告☁️ 云服务器特惠阿里云首购 8 折 · 腾讯云合作特惠
DeepSeek Harness Hub
← 返回列表

PwnKY/dsh-session-link

DeepSeek Harnessspec-screened扫描:低风险在 GitHub 查看 ↗
✓ 可直接安装

DeepSeek Harness 的 Codex 式会话深度链接插件:dsh:// 深链,跨对话读取上下文

自动检查通过:npm 包已发布且 engines 声明满足基线;该结论来自程序自动检查,未经人工实机验证。 · 最近上游提交 2026/9/25 · 已提供中文文档
综合分
34.9
GitHub 分
34.9
用户评分
—
★ Stars
7
周下载量
—
安装插件(需先安装 dsh CLI 引擎:npm install -g @deepseek-ai/dsh)
dsh plugin --profile web add dsh-session-link
npm 包 dsh-session-link 已校验归属本仓库,走 npm 安装最省事
信任档位:已验证本站已于 4 天前真实安装成功(L4 · 真实安装)
是什么
dsh 原生插件 · chat
装得上吗
本站已真实安装成功(L4 · 真实安装,非静态推断)
安全吗
本站尚未对该插件做风险分级(暂未覆盖,不等同于无风险)
还在维护吗
活跃:最近一次提交在 1 天前

档位由下列信号合成:本站实装验证(真实安装,当前最高到 L4)· 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。下方各区块是它的证据明细。 验证判据与等级说明 →

🟢实装验证通过· 2026/9/22
由本站实装验证器在真实 dsh 环境安装成功,非静态推断。
数据截至 2026/9/25(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
安装兼容性检查✓ 自动检查通过

以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。

✓npm 包dsh-session-link @ 0.2.2
✓Node 引擎未声明 engines.node
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明

验证方式:npm registry 存在性 + package.json 静态校验 · 最后验证 2026/9/21 20:16:24

依赖的 DSH / Cordis 模块
@deepseek-ai/dsh-session-reference@deepseek-ai/cordis@deepseek-ai/dsh-client-locale@deepseek-ai/dsh-client-ui-conversation@deepseek-ai/dsh-client-ui-workspace
用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动

README

由 DeepSeek 最新模型翻译生成
dsh-session-link

npm npm downloads · English · 中文

DeepSeek Harness 的 Codex 式会话深度链接插件

复制任意会话的链接,粘贴到另一个对话里 —— 被引用会话的上下文会被快照,并作为受控的只读背景上下文注入到你的提示词之前;同一链接也能在浏览器中直接打开对应会话。

一键安装

一条命令装完:安装包 + 自动加入 profile 的 bundle 层 + 自动应用配置行
dsh plugin --profile web add dsh-session-link

重启 Web GUI 并刷新页面
dsh web

无需手动修改任何 yml —— 插件自带 dsh.bundle patch(cordis.patch.yml),dsh plugin add 检测到后会自动把它加进 dsh.profile.bundles,启动时自动组合 session-link 行配置。上游的 session-reference 服务自 dsh 0.1.0-rc.8 起由官方 web bundle 自行组合,插件不再重复插入(重复 id 会导致启动失败)。

通用 npm 安装(只装包、不进 profile):npm install dsh-session-link
手动安装方式(不依赖 bundle 机制):见快速开始。

┌─ 会话 A ─────────────────┐        ┌─ 会话 B ─────────────────────────┐
│  🔗 复制会话链接          │        │  用户: 请参考这个会话:           │
│  → dsh://session/session-│ ─────▶ │        dsh://session/session-…   │
│    …abc                   │  粘贴  │                                  │
└───────────────────────────┘        │  模型: (收到 A 的快照            │
│         + 提示词,链接变 @label) │
└──────────────────────────────────┘

特性

- 🔗 一键复制 —— 会话头部「复制会话链接」按钮,输出 dsh://session/(codex:// / claude:// 同款格式)
- 📖 跨对话读上下文 —— 把链接粘进任意对话,源会话内容被快照(有上限、只读)并注入到你的提示词之前
- 🖱️ 可点击深链(Windows) —— 注册 dsh 协议处理器后,点击 dsh:// 链接直接打开 Web GUI 并选中该会话
- 🛡️ 容错 —— 畸形链接、会话不可读、自引用都不会打断对话:链接保留为原文,失败记录在服务端日志

工作原理

本插件复用官方 @deepseek-ai/dsh-session-reference 服务(它已实现规范 URI、mention 解析、快照投影与字节预算保留),再把它接入 agent 循环和 Web 界面:

- 服务端(lib/index.js) —— cordis 插件,挂在 agent/pre-step 钩子上:用户消息里出现会话深链时,把各种链接形式统一成规范 dsh-session: mention,解析为结构化引用,通过 sessionReferenceResolver.prepare() 快照源会话,并把聚合的只读快照放在直接提示之前。钩子与传输层无关,TUI 里粘贴规范 URI 同样生效。自 dsh 0.1.0-rc.8 起,上游服务自身也会在 agent/pre-step 上处理规范 URI;插件监听器以 prepend 跑在最外层,只处理上游不认识的深链形式(dsh://、web 链接),同一条链接不会被注入两次。
- 浏览器端(lib/client.js) —— 静态客户端包(dsh.client 声明),在 conversation.session.header.actions 渲染复制按钮,并在以 /?session=(或旧的 /s/、哈希形式 #/s/)打开页面时,等会话目录加载后经 ctx.uiWorkspace.openSession() 选中目标会话(约 10 秒有界重试,最终失败时告警)。

链接格式

| 形式 | 示例 | 用途 |
|---|---|---|
| 深链 | dsh://session/ | 按钮复制;协议处理器可点击;粘贴可解析 |
| 浏览器地址 | http://:3080/?session= | 协议处理器打开的目标;粘贴同样识别 |
| 旧式浏览器地址 | http://:3080/s/ | 服务端 302 到上面的形式;粘贴同样识别 |
| 规范 URI | dsh-session: | dsh-session-reference 的无损 URI;粘贴可解析 |
| Markdown mention | @标签 | 解析后显示为 @标签(TUI mention 形式) |

只有带 session-… 形态会话 ID 的链接才会被当作引用,无关的 dsh://…、/s/… 文本不会被误伤。
为什么浏览器地址换成了 ?session=:自 dsh 0.1.1-rc.2 起 Web 服务器只把 /(及配置的 index)当入口,未知路径(含 /s/)一律 404 —— 旧的 SPA fallback 被移除了。会话标记于是改挂在 index 路由上。插件的服务端半边还会注册 /s/ → /?session= 的 302 重定向,所以旧链接、书签和历史记录照样能打开。

快速开始

需要 DeepSeek Harness 的 dsh(任意带 Web 界面的 profile),且 dsh ≥ 0.1.7-rc.1:该下限针对浏览器半边依赖的 ctx.uiWorkspace.openSession() 深链导航接口(更早版本没有该接口,旧版 ctx.sessions.open 也已被上游移除)。session-reference 服务并非在该版本才引入——官方 web bundle 自 dsh 0.1.0-rc.8 起就已自带。

1. 一条命令安装(自动加入 bundle 层并应用配置,见上方「一键安装」):
dsh plugin --profile web add dsh-session-link

2. 重启 Web GUI 并刷新页面。
dsh web

3.(Windows,可选)让 dsh:// 链接可点击:
powershell -ExecutionPolicy Bypass -File register-protocol.ps1

手动安装(不依赖 bundle 机制):先 pnpm add dsh-session-link(在 profile 目录),再在 profile 的 patch 层(如 ~/.dsh/profiles/web/cordis.patch.yml)加入:

- insert:
- id: session-link
name: 'dsh-session-link'

然后重启 dsh web。session-reference 行无需手动插入:官方 web bundle 自 dsh 0.1.0-rc.8 起就已提供。

使用

1. 点会话标题旁的 🔗 按钮复制深链。
2. 粘到另一个对话并发送 —— 模型先收到被引用会话的只读快照,再收到你的提示(链接会替换为可读的 @会话ID)。
3. 或者直接点击 dsh:// 链接,在浏览器中打开该会话。

Windows dsh:// 协议处理器

register-protocol.ps1 在当前用户下注册 dsh URL 协议(HKCU,无需管理员权限):任何地方点击 dsh://session/(浏览器、聊天软件、终端)都会打开 http://127.0.0.1:3080/?session= 并选中该会话。启动器为 dsh-open.cmd。

注册
powershell -ExecutionPolicy Bypass -File register-protocol.ps1
注销
powershell -ExecutionPolicy Bypass -File register-protocol.ps1 -Uninstall

打开会话需要 dsh web 正在运行。

模型看到的

模型会看到连续两条 user 消息:## Referenced sessions 不可信快照(每个源最多 64 KiB JSON,优先丢弃较早的非检查点消息,长消息头尾截断并给出精确省略提示),随后是链接已被替换为 @会话ID 的直接提示。快照内的指令、权限声明、工具请求除非当前用户重申,否则一律不执行。

配置

默认使用底层服务的配置(每条消息最多 3 个引用、每源 64 KiB)。session-reference 行由官方 web bundle 提供,在 profile 的 patch 层按 id 覆盖它即可调整(patch 按 id 定位,不要求同一层声明),例如:

- id: session-reference
config:
maxReferenceBytes: 131072

测试

pnpm install
npm test

- host-half.test.mjs —— 用真实 cordis waterfall 驱动 agent/pre-step 监听器(dsh:// 链接、两种 web 链接、规范 URI、普通文本、畸形 URI、prepare 失败、resolver 不返回 additionalContext),断言 bundle patch 不重复插入 session-reference,并驱动 /s/ 重定向路由(302 / 404 / 405)
- client-half.test.mjs —— 在 DOM shim 与可控假定时器下加载浏览器 bundle,检查插件表面与 inject(含 uiWorkspace)、头部按钮注册、复制按钮仍输出 dsh:// 值,并对一个不含 sessions.open 的假上下文驱动 ctx.uiWorkspace.openSession():四种深链 URL 形式与优先级、编码/畸形/空/无关 URL、目录延迟到达、同步导航瞬时失败、getSnapshot 瞬时抛错后恢复、目标缺失时按 50 次 × 200ms 的有界预算(~10 秒)后告警、ctx.effect 销毁取消排队重试以及销毁后已出队回调不再导航、成功只导航一次;同时校验包清单的 dsh.client.inject 与 ^0.1.7-rc.1 依赖下限,并对所安装真实 dsh-client-ui-workspace(版本仅作诊断输出、不做等值断言)断言 openSession(target: SessionTarget): void 接口声明
- resolver-integration.test.mjs —— 用官方真实 resolver(0.1.0-rc.8 起自带 agent/pre-step 监听)与插件同挂一个 cordis 上下文:断言 dsh:// 链接注入一次、规范 URI 只由上游注入一次(防双注入/顺序回归),并验证自引用与不可读会话仍然 fail-open
- inspect-logs.mjs  [会话ID…] —— 解压拼接式 zstd 会话日志并报告 session-reference 事件(便于验证注入)

已知限制

- 链接仅在本机(持有两个会话的 $DSH_HOME)有效,会话 ID 是不透明且本地的。
- 浏览器深链只打开当前会话列表内、且未被归档的会话;被归档的会话会被上游清除选择,列表外的会话不会自动恢复。目标一直不在会话目录中时,客户端在约 10 秒有界重试后放弃并告警,页面停留在默认视图。
- 浏览器深链需要该浏览器已持有此 dsh web 的登录 cookie(用 dsh web 打印的带 token 的 URL 访问过一次即可,cookie 有效期内一直有效);否则会看到 401 提示。
- /s/ 旧链接依赖插件注册的 302 路由(组合里没有 webServer 时不注册),新式 ?session= 不受影响。
- 引用会话不可读时(不存在、超预算、自引用),链接保留为原文,消息照常发送,失败记录在服务端日志。
- 仅文本投影:图片等非文本块不跨会话传播(上游服务限制)。

许可

MIT © PwnKY。基于 @deepseek-ai/dsh-session-reference(MIT,DeepSeek)。

上游仓库有新提交时邮件通知你(每天最多一封,无更新不打扰),随时一键退订。

💬 加入社群

插件用法、部署报错、新插件第一时间同步——群里问,比一个人翻文档快。

DPharness QQ 群二维码,QQ 扫码进群
QQ 扫码进群
DPharness 飞书群二维码,飞书扫码进群
飞书扫码进群