dsh-opencode-session-header

DSH PLUGIN开发与运行时

仓库 beihzb/dsh-opencode-session-header · npm dsh-opencode-session-header

开发与运行时 L5 · 运行验证通过 安全审查:低风险 可信度:金 可安装插件
安装这个插件

为 DeepSeek Harness 注入按会话区分的 x-opencode-session 请求头,修复 OpenCode Go 的 400 MissingSessionID 报错,仅作用于 opencode.ai 且无需重启即可开关。

验证等级 L5 L5 · 运行验证通过
GitHub 星标 14 复刻 0 · 未关闭 issue 1
最近更新 2026-09-07 创建于 2026-09-07
README 4.9 KB 正文体量,越大说明说明书写得越细

安装

可安装插件
在 DSH 里执行,装完用 dsh plugin list 确认已挂上;标了 L4 / L5 的命令已在沙盒里真实跑通
dsh plugin --profile web add [email protected]
兼容 DSH 版本0.2.0-rc.2 等 7 个版本版本不匹配时安装会报错
Node.js 要求>=20来自仓库 package.json 的 engines 字段
前置依赖无需要同时安装的同级依赖
npm 包名dsh-opencode-session-header可用 npm view 查看包信息

能做什么

5 项功能
字段来自项目仓库与公开索引,中文说明由本站标注

dsh-opencode-session-header:为 DeepSeek Harness 补齐 OpenCode Go 会话请求头

  • 修复 400 MissingSessionID
  • 按会话注入请求头
  • 仅限 opencode.ai 域名
  • JSON 文件即时开关
  • 零依赖,兼容其他插件

上游标签

coding-agentdeepseekdeepseek-harnessdshdsh-pluginheader-injectionllmopencodeopencode-goopencode-zenprompt-cachingx-opencode-session

验证等级与安全审查

L5 · 运行验证通过
自动化流程结论,不是人工审核
验证等级L5 · 运行验证通过在 dsh 沙盒中完成安装与运行冒烟——装得上、跑得起来
安全审查低风险静态分析结论,未标注不代表已通过审查
仓库健康度稳定按仓库活跃度与最近更新时间给出
可信度金综合仓库活跃度与验证结果

上面的结论来自上游最近一次自动化验证(2026-10-08): 同一套检查会在插件发新版后重跑,页面显示的是最新一次的逐项结果。

逐项检查结果

L1 · 已找到 ✓ 通过
  • L1.0_DEFAULTED_FROM_L3 由 L3 推定 默认通过——L3 安装规范已通过(全库 L3 扫描策略)
L2 · 结构化 ✓ 通过
  • L2.0_DEFAULTED_FROM_L3 由 L3 推定 默认通过——L3 安装规范已通过(全库 L3 扫描策略)
L3 · 安装规范 ✓ 通过
  • L3.1_INSTALL_COMMAND_PARSED 安装命令已解析 方式:安装规范解析
  • L3.2_DSH_VERSION_DECLARED DSH 版本已声明 方式:DSH 版本声明
L4 · 安装已测 ✓ 通过
  • L4.1_INSTALL_EXECUTED_CONFINED 受限沙盒内执行安装 方式:沙盒安装执行
  • L4.2_INSTALL_SUCCESS 沙盒安装成功 方式:沙盒安装执行
  • L4.3_ARTIFACT_CONFIRMED 安装产物已确认 方式:沙盒安装执行
L5 · 运行已测 ✓ 通过
  • L5.1_INSTALL_PASSED_SANDBOXED 沙盒安装通过 方式:沙盒安装执行
  • L5.2_WEB_BOOT_READY Web 启动就绪 方式:Web 启动
  • L5.3_HTTP_SERVED HTTP 服务响应 方式:HTTP 请求
  • L5.4_PLUGIN_INVENTORY_ACTIVE 插件清单中已激活 方式:插件清单查询

风险详情

  • 审查结论 通过
  • 结论说明 vet 静态分析未发现可疑行为,判定为干净(clean)。
  • 风险计数 严重 0 / 高 0 / 中 0
  • 风险详情 未发现严重或警告级问题。

仓库档案

开发与运行时
字段来自项目仓库与公开索引,中文说明由本站标注
作者 / 维护方beihzb仓库 dsh-opencode-session-header · 默认分支 main
分类开发与运行时dev
收录类型可安装插件声明了 dsh.bundle、可用 dsh plugin add 安装的条目
开发语言JavaScript仓库主语言
许可证MIT商用或二次分发前请确认条款原文
星标 / 复刻 / issue14 / 0 / 1收录时的数值,非实时
创建 / 更新2026-09-07 · 2026-09-07最后推送 2026-09-07
本站收录2026-09-08首次进入本站目录的时间

README 全文

4.9 KB
作者原文,中文版优先;只做安全转义,不改内容

dsh-opencode-session-header



面向 DeepSeek Harness (DSH) → OpenCode Go 的按会话 x-opencode-session 头注入插件。

既修复 400 MissingSessionID 报错,又保留 OpenCode 官方按会话路由/提示词缓存的优化——只作用于 opencode.ai,运行时可开关(无需重启),零依赖。

English

问题背景

自 2026-09-05 起,OpenCode Go 强制要求每个推理请求携带稳定的 x-opencode-session 头(用于路由与提示词缓存)。DeepSeek Harness ≤ 0.1.2-rc.1 在所有适配器路径上都不发送该头,导致 opencode-go 下所有模型调用失败:

400: {"type":"MissingSessionID","message":"Error from provider (Console Go): Request is missing x-opencode-session ..."}

上游修复在 deepseek-harness discussion #5495 跟踪,但尚未发布。本插件在本地补上这个缺口。

为什么不用常见的绕过方案?

settings.yaml 静态 headers 全局 opencode_zen profile(dsh-custom-header) 本插件
修复 400 ✅ ✅ ✅
每会话独立 id(缓存/路由最优) ❌ 所有会话共用一个 id → 缓存落空、变慢变贵 ✅ ✅ 直接用 DSH 真实会话 id
不影响其他 provider ✅ ❌ 对所有主机改写 UA + x-opencode-* ✅ 仅 opencode.ai
免重启开关 — — ✅ 改 JSON 立即生效
额外依赖 — 第三方插件 + 客户端 bundle 无

安装

dsh plugin --profile web add dsh-opencode-session-header

或从本地目录安装:

dsh plugin --profile web add "file:C:\path\to\dsh-opencode-session-header"

安装后手动重启一次 dsh web(插件随启动加载)。启动日志应出现:

[dsh-opencode-session-header] loaded: header=x-opencode-session hosts=opencode.ai fallback=dsh-default
[dsh-opencode-session-header] runtime switch: \plugins\dsh-opencode-session-header.json ({"enabled":false} disables; missing file = enabled)

运行时开关(无需重启)

状态文件:/plugins/dsh-opencode-session-header.json(DSH_HOME 未设置时为 ~/.dsh):

{ "enabled": false }
  • false → 关闭注入(所有请求原样放行);
  • true 或文件不存在 → 开启注入;
  • 插件每次 LLM 请求实时读取该文件,改动立即生效。

工作原理

两个挂载点,均已在 DSH 0.1.2-rc.1 内实测可行:

  1. llm/stream waterfall 观察者——把每次适配器流式迭代的执行包进 AsyncLocalStorage,携带 GenerateOptions.sessionId(每会话唯一,跨轮次/压缩/重试稳定;新会话/fork/子代理各自全新)。
  2. fetch 传输层中间件——仅当请求主机匹配白名单(默认 opencode.ai 及其子域)时注入 x-opencode-session;值为当前会话 id,无 LLM 上下文时(如模型探测)用兜底值 dsh-default。其他任何主机原样放行,一个字节不改。

fetch 管线挂在本插件自己的 Symbol.for 键下(机制取自 @aizigao/pi-fetch-pipeline,MIT),与其他同样包装 fetch 的插件互不覆盖。头合并遵循 fetch 规范:以实际会到达网线的那份头(init.headers 或 Request.headers)为合并基底。

测试

npm test        # 13 项断言:注入 / 兜底 id / 主机白名单 / 运行时开关 /
# 并发会话隔离 / llm/stream 上下文传播 / 子域匹配

兼容性与退役

  • 针对已针对 DSH 0.1.2-rc.1(发布时的 npm 最新版)构建并验证。
  • 依赖"DSH 出站 LLM 请求走 Node 全局 fetch"这一现状;若未来版本更换网络栈,插件会静默停止注入——症状就是 400 复现,届时卸载即可。
  • 待上游内置按会话会话头后(discussion #5495),即可退役:
dsh plugin --profile web remove dsh-opencode-session-header

重启 dsh web 生效(可顺带删除开关文件)。

致谢

许可证

MIT

常见问题

8 问
答案由本站依据条目字段整理,不引用上游原文
dsh-opencode-session-header 怎么安装?

在 DSH 里执行 `dsh plugin --profile web add [email protected]` 即可。对应的 npm 包名是 `dsh-opencode-session-header`。

dsh-opencode-session-header 的验证等级是什么意思?

L5 · 运行验证通过。在 dsh 沙盒中完成安装与运行冒烟——装得上、跑得起来

dsh-opencode-session-header 安全吗?

低风险。vet 静态分析未发现可疑行为,判定为干净(clean)。

dsh-opencode-session-header 支持哪些 DSH 版本?

上游记录的兼容版本包括 0.2.0-rc.2、0.2.0-rc.1、0.1.7-rc.2、0.1.6-alpha.2、0.1.6-alpha.1、0.1.5-rc.2、0.1.3-alpha.2。

dsh-opencode-session-header 需要什么运行环境?

Node.js >=20。环境不满足时安装会失败,建议先确认本机版本。

dsh-opencode-session-header 用的是什么许可证?

上游标注为 MIT。商用或二次分发前请到仓库确认许可证原文。

dsh-opencode-session-header 有哪些功能?

修复 400 MissingSessionID、按会话注入请求头、仅限 opencode.ai 域名、JSON 文件即时开关、零依赖,兼容其他插件。

这条记录的数据可靠吗?

本站按仓库名去重后合并整理,字段以作者仓库与 npm 元数据为准;安装命令、仓库地址与 README 保持原文,带 L4 / L5 标记的安装命令已在隔离沙盒里真实跑通。

开发与运行时
按星标排序,可作替代方案

rea

rea

L4 · 沙盒安装通过 2.6 万 星

dsh-TUI

dsh-TUI

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

L4 · 沙盒安装通过 4,292 星

mirage

mirage

把文件系统与 bash 提供者换成 mirage 虚拟工作区:文件工具与 shell 命令作用于挂载的资源(RAM、S3、Redis、Sla

L3 · 安装规范通过 3,681 星

dashi-taskboard

dashi-taskboard

把当前已安装并运行中的 Codex Taskboard 嵌入 DeepSeek Harness 侧边栏,并通过 Launcher 运行时描述

L4 · 沙盒安装通过 3,311 星

beihzb 的其它插件

2 个

插件的元信息来自作者仓库;分类、验证等级与安全结论的中文说明为中文整理,最近核验 2026-10-08。