dsh-session-pins
by alooshxl
DeepSeek Harness 的持久置顶会话菜单
Persistent pinned-session menu for DeepSeek Harness
安装
dsh plugin --profile web add github:alooshxl/dsh-session-pinsGitHub 源码安装:首次需按提示配置 allowBuilds 构建授权后重试
安装与环境配置指引、插件开发教程见 DSH 中文社区文档 ↗
安装即在你的机器上以你的权限运行第三方代码——它可读写文件、使用凭据、访问网络,DSH 的工具审批不会为插件代码加沙箱。「检测到 manifest」仅代表发现 dsh.bundle / dsh.plugin 清单,不构成兼容性或安全审查;安装前请审阅源码,不熟悉的插件先在不含密钥的环境试用。
README
@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 === true、phase === '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,也
没有安装阶段的 prepare、install 或 postinstall 生命周期。
安全与宿主边界
- 置顶、取消置顶、持久化和打开会话都不需要 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.6 和 node-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。
原始 README: https://github.com/alooshxl/dsh-session-pins/blob/main/README.zh.md ↗
同类插件
查看全部 →
dsh-web-ui-all
DSH Web UI 插件与皮肤合集:任务看板、git 图、右侧面板、远程移动端 UI、桌宠、实时 token 统计与皮肤中心。

dsh-web-ui
DSH Web UI 插件与皮肤合集:任务看板、git 图、右侧面板、远程移动端 UI、桌宠、实时 token 统计与皮肤中心。

dsh-TUI
Claude Code 风格全屏终端 UI:像素鲸鱼顶栏、实时工作状态行、思考流式展开。

DSH-better-sidebar
侧边栏完整工作台:内置文件渲染编辑、终端、Git 与子代理,支持三方插件注册新 Tab。

working-activity
让 agent 的"工作状态行"活过来——实时工具动态与进度、俏皮文案、模型自述、上下文预警。同一套想法,适配两个平台: pi CLI 与 DeepSeek Harness(DSH) 。

deepseek-idesign
可视化设计工作室,支持网站、App 原型、海报、信息卡、报告和杂志的模板创建、元素编辑、选区级 AI 草稿衔接与导出。