dsh-deepseek-site:在 Harness 中央面板内嵌 DeepSeek 官网对话

前言

在 DeepSeek Harness 里做智能体或日常对话时,常见做法是用系统浏览器打开 chat.deepseek.com,或在多个窗口之间切换。页面不在应用内,切走容易丢上下文;Electron 内嵌站点又常遇到 UA 被识别为异常环境、登录态无法跨重启等问题。下面介绍社区插件 dsh-deepseek-site(维护者 WJMACTD,分类:客户端):在 Harness 左侧栏增加一个入口,在中央面板内嵌官方站点,切面板不重载,并尽量在本机跨重启保留登录。

这是什么

dsh-deepseek-site 是 DeepSeek Harness 的客户端 bundle 插件(当前资料中的版本为 1.6.2,许可证 MIT,依赖 dsh >=0.2.1-rc.2 <0.3.0)。它不做服务端逻辑:index.js 的 apply() 为空,实际能力在 client.js 里注册左侧 sidebar.panellist 入口与 main 面板,用一处 guest 实例加载 https://chat.deepseek.com/。

  • 目录页:https://www.skillhub.cn/plugins/WJMACTD/dsh-deepseek-site
  • 源码:https://github.com/WJMACTD/dsh-deepseek-site

社区插件目录由 SkillHub 等站点维护,与 DeepSeek / 幻方无官方从属关系;安装前请自行阅读源码与许可证。

核心功能

内嵌与保活

点左侧入口后,站点显示在应用窗口内部的中央面板,不跳转系统浏览器(除非用户主动选择兜底打开)。

  • 切走不卸载:页面挂在 document.body 上,切换到其他面板再回来,对话、滚动位置、正在生成的回答仍保留,页面不重载。
  • 面板顶部有紧凑工具栏:标题、登录态、重新加载、在系统浏览器打开、以及(有快照时)「忘记本机登录」。
  • 顶部留白按平台区分:Windows 由外层框架预留标题栏,页面只留 16px;macOS 才叠加 --dsh-frame-top-clearance。
  • 固定 WORKSPACE_KEY 为 dsh-deepseek-site,所有工作区共用同一个 guest 分区,登录与站点偏好不随工作区切换重置;代价是工作区之间不隔离该浏览容器。

导航与白名单

chat.deepseek.com 站内跳转留在内嵌页;站外 https 链接交给系统浏览器,且 2 秒内同一地址只开一次。

User-Agent

仅从 UA 中去掉 Electron/<版本> 这一个产品标记,平台与内核版本原样保留。站点若检测 UA 中是否含 electron 字样,需在页面脚本运行前写入 useragent 属性,并在 dom-ready 时再调用一次 setUserAgent。

无桌面浏览器 API 时的行为

运行环境没有 window.dshDesktop.browser(例如在普通浏览器里打开 Web UI)时,面板显示说明卡片并提供兜底按钮,不会静默跳转。

登录记忆(快照 + 回放)

guest 分区名为 dsh-sidebar-browser-<uuid>,无 persist: 前缀,进程内有效;应用重启后 guest 的 localStorage 会空。插件用快照绕开:

  1. 在站点文档每次 did-finish-load、站内路由变化、以及窗口可见时每 15 秒执行 CAPTURE_SCRIPT,只读 userToken 与 __appKit_userInfo。
  2. 有 token 则写入应用文档 dsh-app://app/ 的 localStorage(键 deepseek-site:sign-in:v1);该 scheme 默认 session 持久化,快照可跨重启。
  3. 下次打开面板,在 did-finish-load 时用 restoreScript 写回 guest 的 localStorage,写过则 reload() 一次;回填期间有遮罩,避免登录页闪烁。
  4. 同一次运行内 guest 已有有效 token 时不覆盖,避免把新登录写回旧快照。

工具栏「已记住登录」表示快照已保存;状态文字含义如下:

状态 含义
已回填登录 快照写进内嵌页并重新加载了一次
登录有效 内嵌页本来就有 token,没有覆盖
无登录快照 本机还没记录过登录,或回填被拒

「忘记本机登录」会同时删除应用文档里的快照和 guest 内两份凭据后重载;只删一侧会被捕获逻辑再次写回。

诊断信息写入应用文档 localStorage 的 deepseek-site:diag:v1(环形缓冲最近 20 条,仅在结论/次数/token 长度变化时追加),字段为 at、note、attempts、tokenLen,不含 token 或完整 URL。

安装与启用

已抓取资料中的 README 与 package.json 未给出 Harness CLI 的一行安装命令;请从 SkillHub 目录页或仓库说明中确认当前推荐安装方式,不要凭仓库名自行拼接未在文档中出现的命令。

bundle 通过 cordis.patch.yml 将 deepseek-site 插入 profile;客户端在 package.json 中声明为 dsh.client.platform: web、immediately: true。启用后重启或按你使用的 DSH 版本要求 reload 插件即可在左侧看到入口。

典型用法

  1. 在 Harness 桌面版(具备 window.dshDesktop.browser)中安装并启用插件。
  2. 点击左侧栏 DeepSeek 入口,在中央面板完成官网登录(首次无快照时会走正常登录页)。
  3. 日常在 Harness 内与其他面板切换,内嵌对话保持不 reload。
  4. 需要站外链接或排查问题时,用工具栏「在系统浏览器打开」或「重新加载」。
  5. 换机或不再信任本机存储时,点「忘记本机登录」,或移除插件后清理 Electron 用户数据目录下相关 Local Storage/leveldb 数据。

更细的时序与容器结构见仓库内 docs/architecture.md;本机环境坑见 docs/pitfalls.md。

适用场景与注意

适合:希望在 DSH 单窗口内长期使用官方 chat.deepseek.com、减少浏览器来回切换,并愿意在本机保存登录快照的用户。

务必知晓:

  • 快照为明文 JSON,存于 Harness 桌面版 Electron 用户数据目录(含 Local Storage/leveldb),敏感程度与 Harness 自身登录相当;同源的其它插件理论上可读,勿安装来路不明的 bundle。
  • 插件以当前 DSH 进程权限运行,安装前应通读 client.js 与 MIT 许可证。
  • 仅复制 userToken 与 __appKit_userInfo,不复制其它 __appKit_* 特性键,以控制暴露面。
  • 非桌面 Web UI 环境只能看到说明与兜底,无法完整内嵌。

结尾

dsh-deepseek-site 把官方对话页收进 Harness 左栏 + 中央面板,用保活与 UA 处理改善内嵌体验,用应用文档 localStorage 快照解决 guest 分区不持久的问题。细节与测试见 GitHub 仓库(含 test-signin.cjs)。

  • 插件目录:https://www.skillhub.cn/plugins/WJMACTD/dsh-deepseek-site
  • 源码:https://github.com/WJMACTD/dsh-deepseek-site
羽毛球分组比赛记分
小程序二维码

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

小夜