← 返回列表
未验证
DSH WebUI 深链插件:?session=/?workspace= 直接打开指定项目对话
尚未跑自动兼容性验证,可查看页面内的依赖与入口分析。 · 最近上游提交 2026/9/13 · 已提供中文文档
综合分
31.6
GitHub 分
31.6
用户评分
—
★ Stars
3
周下载量
—
安装插件(需先安装 dsh CLI 引擎:npm install -g @deepseek-ai/dsh)
dsh plugin --profile web add qyw233/dsh-deeplink该插件未发布到 npm,走 GitHub 源安装(pnpm 若拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑)
数据截至 2026/9/19(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动
README
dsh-deeplink — WebUI 深度链接插件 一个 DeepSeek Harness Web UI 插件,可通过 URL 查询参数直接打开特定的项目对话,而不是始终返回上一个会话。 - ?session= → 打开该对话 - ?workspace= → 打开该项目的最新/空白对话 - 持久链接:地址栏会跟随当前对话,因此你可以随时复制/收藏/分享该链接 - 设置开关,可分别启用/禁用跳转和地址栏跟随 - 附带一个模型提示词片段,使模型在回复涉及其他对话或项目时展示可点击的深度链接 许可证:MIT 功能特性 - 从页面 URL 读取 ?session= / ?workspace=,并在会话/工作区列表基线就绪后切换一次 - 当两个参数同时存在时,session 优先 - 当目标会话/工作区不存在(或已归档/隐藏)时,会静默回退到默认行为(恢复上一个会话)——不报错,不影响页面 - 持久链接:每当当前会话发生变化(深度链接切换或 UI 中手动切换)时,地址栏都会通过 history.replaceState 重写为 ?session=;当没有当前会话时,参数会被清除。不污染历史记录,不重新加载 - 设置开关:两个独立开关(设置 → 插件 → 插件配置,通过官方 settings.plugin.item 插槽以卡片形式显示,以 dsh-deeplink 设置命名空间为键)——jump(加载时处理 ?session=/?workspace=,默认开启)和 follow(地址栏跟随,默认开启),两者都持久化在 localStorage 中 - node 半部分注册了一个全局提示词片段,使模型知道深度链接的存在,并能在回复涉及其他对话/项目时附加链接 - 纯浏览器半部分 + 轻量级 node 半部分;不导入 cordis,无 peerDependencies 安装 该插件通过标准的 dsh plugin 机制安装到配置文件中——无需修改 DSH 源码。 官方配置文件(自带 dsh-base + dsh-web-app,提供 systemPrompt/webServer 服务): dsh plugin --profile web add github:qyw233/dsh-deeplink 或本地检出: dsh plugin --profile web add /path/to/dsh-deeplink 仓库自带构建产物(lib/ 已提交),因此安装后无需额外的构建步骤。 安装后,重启 Web UI 并刷新浏览器页面。该插件会出现在浏览器启动图(__DSH_BOOT__)中。 用法 在 WebUI URL 后附加查询参数: | 参数 | 含义 | 示例 | |---|---|---| | ?session= | 打开该对话 | http://127.0.0.1:3080/?session=session-304ae36e-1e66-453a-a946-2b0a9a2b173d | | ?workspace= | 打开该项目的最新/空白对话 | http://127.0.0.1:3080/?workspace=fc8b75ae-107c-4b6c-978c-276270b03b8b | 新窗口/标签页行为: - 在对话中点击深链接:GUI 的 markdown 渲染器会为所有 http(s) 链接添加 target="_blank",因此会打开一个新标签页,插件会将那个标签页切换到目标对话。 - 将 ?session=... 粘贴到当前标签页的地址栏并按回车:当前页面会切换。 持久链接: - 深链接打开后,地址栏会更新为 ?session=(workspace 参数会被消费并移除)。 - 在 UI 中手动切换对话会以相同方式更新地址栏。 - 切换到“无会话 / 新建”状态会清除参数,并将地址栏恢复为 /。 - 更新使用 history.replaceState,因此每个对话不会留在浏览器的后退/前进历史中。 设置 插件在插件配置标签页(设置 → 插件 → 插件配置,通过官方 settings.plugin.item 插槽,以在宿主上注册的 dsh-deeplink 设置命名空间为键)中注册一张 深链 卡片,包含两个独立的开关(默认均开启,持久化在 localStorage 中): | 开关 | 键 | 效果 | |---|---|---| | 跳转到指定对话 | dsh-deeplink.jump | 在页面加载时处理 ?session= / ?workspace= 深链接。每次加载只读取一次——请在打开深链接前切换它。 | | 地址栏跟随 | dsh-deeplink.follow | 保持地址栏跟随当前会话。每次同步时都会读取,因此切换会立即生效。 | 模型提示词 Node 半部分注册一个全局提示词区段(plugin:dsh-deeplink,顺序为 −97,位于 web-surface 之后、persona 之前),用于告知模型: - 此 GUI 支持 ?session= / ?workspace= 深链接(点击会在新标签页中打开它们); - 当回复涉及另一个对话或项目(先前的讨论、不同的工作区、另一个会话的后续)时,附上相应的链接,以便用户一键跳转过去; - 如何发现真实 id:读取 $DSH_HOME/storages/workspace.json(tables.workspaces 的键是工作区 id;每条记录的 sessionIds 列出其会话 id),或列出 $DSH_HOME/sessions// 目录(每个目录名是一个会话 id); - 只输出实际存在的 id;绝不编造。 如何查找 id - 会话 id:~/.dsh/sessions/----// 下的目录名;或 ~/.dsh/storages/workspace.json 中的 tables.workspaces[].sessionIds。 - 工作区 id:~/.dsh/storages/workspace.json 中 tables.workspaces 的键(UUID)。 开发 - 浏览器半部分 lib/client.js:更改会被运行中服务器的 HMR 捕获(stat-poll,约 0.5 秒);刷新页面即可看到。 - Node 半部分 lib/index.js:更改需要重启 dsh web。 - 此插件没有构建步骤;lib/ 是直接编写的。 版本兼容性 浏览器端是纯客户端:不导入 cordis,没有 peerDependencies,仅依赖运行时提供的 sessions / workspaces 服务及其 list 快照。Node 端依赖 systemPrompt / webServer 服务(二者均由 dsh-base 和 web 组合提供),并通过稳定的 ctx.settings.register() API 注册其可选设置命名空间。它已适配 httpServer → webServer 的服务重命名,并为较新的 dsh plugin bundle 机制提供了 dsh.bundle 声明(cordis.patch.yml)。 License MIT · Copyright (c) 2026 DSH Community Contributors Changelog 2026-09-13 · v0.6.1 — 兼容当前 DSH 设置 - 将已移除的 settingsNamespace / installSettingsSection 具名导入替换为通过 ctx.settings.register() 直接进行可选服务注册。 - 在保留可配置插件卡片和浏览器本地开关行为的同时,恢复了对当前 DSH 版本的启动兼容性。 2026-08-29 · v0.6.0 — 设置移至可配置插件卡片 - 深链设置(两个开关)现在显示在 设置 → 插件 → 插件配置 中,作为一个可折叠卡片,位于终端 / Agent 循环 / 网页搜索旁边,通过官方 settings.plugin.item 插槽渲染,并以 dsh-deeplink 设置命名空间为键(结构与内置 PluginCard 相同,使用相同的 YyYd_a_* 类)。 - Node 端通过 installSettingsSection 和 schemastery schema 注册命名空间;卡片开关仍持久化在 localStorage 中。 - 依赖链接(schemastery、dsh-settings)已被 git 忽略——通过 dsh plugin --profile web add github:qyw233/dsh-deeplink 安装,它会在运行时链接它们。 2026-08-13 · v0.5.0 — 设置开关 - 在设置中新增 深链 部分,包含两个独立开关:jump(深链跳转,默认开启)和 follow(地址栏跟随,默认开启),二者均持久化在 localStorage 中。 2026-08-13 · v0.4.0 — 持久链接 + 较新版本兼容性 - 地址栏跟随当前会话:在深链切换或手动切换后,URL 会通过 history.replaceState 重写为 ?session=;当没有当前会话时清除。不污染历史记录,不重新加载。 - 适配了 httpServer → webServer 的服务重命名。 - 为较新的 dsh plugin bundle 机制添加了 dsh.bundle 声明和 cordis.patch.yml。 2026-08-12 · v0.3.0 — 移除新窗口参数,统一新标签页打开 - 回退了 &new=1 的 window.open 逻辑(渲染器已对 http 链接强制使用 _blank,因此 new 会打开两个窗口)。 - 提示词和 README 已对齐:点击深链会打开新标签页。 2026-08-12 · v0.2.0 — 新窗口模式 + 模型提示词(已回退) - (已回退)&new=1 新窗口模式。 - Node 端注册 plugin:dsh-deeplink 提示词部分,使模型知道深链的存在,并能在引用其他对话/项目时附加链接。 2026-08-12 · v0.1.0 — 初始版本 - 支持 ?session= / ?workspace= 深度链接;未知目标会静默回退;只读,绝不重写 URL。
扫码进群