DeepSeek Harness 插件

dsh-session-pins

Persistent pinned-session menu for DeepSeek Harness(英文原文)

跳到安装方式

来源信息

GitHub 仓库
alooshxl/dsh-session-pins
最近更新
2026年8月13日
分类
记忆
GitHub stars
3
载体类型
plugin
目录证据
上游声明已找到 dsh.bundle
证据路径
package.json#dsh.bundle
核对版本
0.1.0-rc.8
上游核对日期
2026-08-20

该证据由上游目录提供。本站没有安装、运行或安全审核这个插件。

安装

默认先复制一段 Prompt,让 Agent 读 GitHub 仓库和源码;需要自己装时再切到命令。

复制这段 Prompt,发给 DSH、Codex 或其他 Agent,让它先读 GitHub 仓库和源码。

请先不要安装或执行任何命令。阅读这个插件的 GitHub 仓库、README 和关键源码,然后用清楚、直接的方式回答以下问题,帮助我判断它是否适合我的需求:

1. 这个插件是什么,解决什么问题;
2. 适合哪些用户和典型使用场景;
3. 安装后如何使用,并给出一个最小使用示例;
4. 有哪些已知限制,以及隐私、安全、兼容性或维护风险;
5. 给出“推荐 / 有条件推荐 / 不推荐”的明确建议和理由。

请区分仓库明确说明、根据源码推断和未知信息。证据不足时请明确说明,不要猜测或照抄 README。

GitHub:https://github.com/alooshxl/dsh-session-pins
插件名:dsh-session-pins
作者:alooshxl

检查来源文件

安装前先看这个插件目录里的 README 和其他文件。

文件资源管理器4 个文件
README.zh.md来源说明 · 只读预览
README 语言

DSH 会话置顶

English

@dsh-external/dsh-session-pins 为 DeepSeek Harness Web 侧边栏提供可持久化的 会话置顶菜单。

本插件回应了 DeepSeek Harness Discussion #63 中“让高价值会话保持易于访问”的请求。Harness 目前没有公开的会话行操作插槽;替换 内置会话浏览器又会依赖私有 UI 源码。因此,Session Pins 只通过公开、根作用域的 sidebar.footer.action 插槽贡献一个操作,不补丁或替换宿主。

兼容性状态

源码、自动化契约和包产物以 @deepseek-ai/dsh@0.1.0-rc.6 为目标。DeepSeek Harness 仍处于开发者预览(developer preview)阶段,新的候选版本可能破坏兼容性, 需要重新审核后才能支持。

自动化测试包含隔离、无凭据的 rc.6 profile 冒烟测试:它通过已发布的 CLI 安装本仓库、 组合插件行、在临时回环端口启动、读取根页面启动清单,并获取以包名标识的浏览器模块 路由。Task 7 的展开/收起布局人工视觉验收仍待完成,本 README 不声称它已经通过。

使用体验

  • 展开(wide)侧边栏:底部操作显示图钉图标、固定会话文字和当前数量。
  • 收起(rail)侧边栏:只显示同一个图标,同时保留无障碍名称和延迟提示。
  • 激活后,菜单在底部操作上方打开。选择根列表中的会话后,会在同一菜单内进入详情,

按情况提供打开取消固定返回。没有置顶项时会显示明确的空状态。

  • 当前普通会话只有在“非空白且来源不是子代理”时才能置顶。最新置顶位于最前;

再次置顶已有 id 会把它移到最前而不会重复。当前会话已置顶时会显示 取消固定当前会话

  • 当前空白(blank)会话不能新建置顶。如果存储中已经有空白会话 id,它仍可被移除;

只有其非子代理摘要仍能解析且工作区可用性可操作时才可打开。

  • 当前子代理(subagent)会话不能被新置顶,也不能由本插件打开。已经存储的子代理 id

仍可移除;被拒绝的打开操作会被安全处理,并保留恢复操作。

  • 只有在 baselinesReady === truephase === 'ready'

state === 'idle' 时,工作区归档状态才可操作。在此之前,所有可解析置顶项的详情都 不显示打开,说明会话可用性尚未就绪,并保留取消固定返回

  • DeepSeek Harness 0.1.0-rc.6 会立即清除通过 sessions.open() 选择的归档 id,

且没有公开的取消归档操作。因此,可操作的已归档置顶项会保留实时标题、不显示 打开、说明此版本限制,并且仍可移除。

  • 对于已归档置顶项,Session Pins 不会调用 sessions.open(),也不会报告虚假成功。

插件不使用延迟选择变通方案、私有 API、宿主补丁或定时器。

  • 无法再解析的失效(stale)id 会显示为 不可用:_id_。详情中不显示打开

但保留取消固定返回

  • 如果会话在操作前消失或 Harness 拒绝打开,菜单会保持可用、播报本地化错误,并保留

取消固定这一恢复路径。

浏览器本地持久化

置顶列表以有版本、保序的 id 列表存入 localStorage,键名为 dsh.session-pins.v1。输入会被校验:格式错误的数据回退为空列表;非字符串和空 id 会被移除;重复 id 保留第一次出现的位置;最多保留 100 个置顶项。

持久化仅限当前浏览器,不会跨设备、浏览器 profile、不同浏览器或不同源同步。同源 (same-origin)标签页会在插件启用期间通过浏览器 storage 事件协调;写入数据的标签页 会直接更新自身,因为浏览器不会把该 storage 事件回发给写入文档。如果 localStorage 被禁用或抛错,当前页面仍可在内存中使用置顶功能,但刷新后不会保留。

发布后安装

GitHub 仓库和标签会在发布步骤中创建。只有在对应版本已经发布后,才能运行以下命令。

v0.1.0 Git 标签安装到内置 Web profile:

dsh plugin --profile web add github:alooshxl/dsh-session-pins#v0.1.0

升级到另一个 Git 标签时,用新标签再次执行 add;不要声称 update 能选择 Git 引用。例如:

dsh plugin --profile web add github:alooshxl/dsh-session-pins#v0.1.1

如需不可变安装,把占位符替换为完整的 40 字符提交 SHA:

dsh plugin --profile web add github:alooshxl/dsh-session-pins#<40-character-commit-sha>

移除插件:

dsh plugin --profile web remove @dsh-external/dsh-session-pins

启动内置 Web profile:

dsh web

等价的显式启动命令是:

dsh --profile web

包内跟踪了已审核的 lib/ 产物。因此,从 Git 安装时既不需要安装构建 allowlist,也 没有安装阶段的 prepareinstallpostinstall 生命周期。

安全与宿主边界

  • 置顶、取消置顶、持久化和打开会话都不需要 API key 或其他凭据。
  • 包不会读取凭据文件,不会携带临时浏览器 profile,也不包含 Harness 私有源码。
  • 产品行为只存在于浏览器客户端入口;Node 入口仅用于包注册和浏览器模块发现。
  • 集成只使用已发布的 Harness 客户端服务和公开的 sidebar.footer.action 插槽,不包含

宿主补丁、monkey patch 或兼容层。

本地开发

使用 Node 22 和 pnpm 11.7.0:

git clone https://github.com/alooshxl/dsh-session-pins.git
cd dsh-session-pins
pnpm install --frozen-lockfile

冻结的开发依赖图只允许精确版本的 @deepseek-ai/dsh-subprocess-local@0.1.0-rc.6node-pty@1.1.0 这两个传递宿主依赖运行生命周期脚本;Linux 上启动已发布的 rc.6 Web profile 需要它们。其余检测到的脚本全部拒绝。这些仅用于开发验证的宿主包不属于打包插件, 也不属于插件的安装契约。

GNU Make 检查点为:

make fmt && make test && make lint

没有 GNU Make 时,运行完全等价的命令:

pnpm run format && pnpm run test && pnpm run lint
pnpm run typecheck

运行完整的发布检查:

pnpm run build
pnpm run format:check
pnpm run typecheck
pnpm run verify:self-contained
pnpm run verify:package
git diff --check
git status --short --untracked-files=all -- lib

pnpm run verify:package 会通过兼容的包管理器调用完成本地 dry-run 包清单校验。

最后一条 git status 命令必须没有输出:已跟踪或未跟踪的生成产物漂移都会阻断发布。

贡献、讨论与许可证

请通过 GitHub issues 报告缺陷或兼容性结果,并通过 pull requests 提交聚焦的改动。功能背景见 Discussion #63

本项目采用 [MIT License](LICENSE)。