🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

opencode 会话标识 gausszhou/dsh-opencode-session-id

DeepSeek Harnessv0.1.1
gausszhou50 天前有提交已提供中文文档扫描:未发现敏感能力

给 opencode 用的 dsh 会话 ID,零配置。

41.5/100
综合分
15
GitHub 星标
98
npm 周下载
—/5
用户评分

数据截至 2026/9/19 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add @gausszhou/dsh-opencode-session-id
npm 源 · @gausszhou/dsh-opencode-session-id 的发布者账号已校验与本仓库一致

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:已验证
是什么
dsh 原生插件 · other
装得上吗
本站已在 dsh 0.2.1-rc.5 下真实安装成功
非静态推断
L5 · 运行时冒烟等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 50 天前
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查✓ 自动检查通过
展开查看检查明细 ↓

以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。

✓npm 包@gausszhou/dsh-opencode-session-id @ 0.1.1
✓Node 引擎要求 >=20.3 · 基线 Node 22.19 满足
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明

验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/31 22:58:03

安全扫描自动 · 静态分析源码
v2.7.0
🟢 扫描:未发现敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描未发现敏感能力:最多只发网络请求、读取自身元数据或只读文件,未发现执行命令、文件写入或敏感信息读取。

扫描于 2026/11/3(0 天前) · 范围 入口闭包 + 全包扫描 · 来源 npm 发布包

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

功能亮点

  • 提供dsh会话ID
  • 零配置

opencode 的 dsh 会话 ID,零配置。

README

由 DeepSeek 最新模型翻译生成
dsh-opencode-session-id 给 opencode 用的 dsh 会话 ID,零配置。 一个 DeepSeek Harness(dsh)插件:当你使用 opencode 模型(opencode / opencode-go 这类服务商,指向 opencode.ai 网关)时,它让实际发出的 HTTP 请求带上会话 ID —— 和 opencode 客户端自己的做法一样。 用法 把插件加到 dsh 配置档里(发布到 npm 后按包名安装): dsh plugin --profile web add "@gausszhou/dsh-opencode-session-id" 安装后重启 dsh web(systemctl --user restart dsh-web),bundle 才会生效。默认配置开箱即用:发往 opencode.ai 的请求会自动带上 x-opencode-session(opencode 网关使用的会话请求头),外加 x-session-affinity / x-client-request-id / x-session-id。请求头的值默认是从会话 ID 的 uuid 部分算出的纯字母数字 nanoid(8)(例如 0RpJJnxJ —— session- 前缀不参与哈希;token 由 uuid 经 SHA-256 确定性推导)。
展开完整文档(README 剩余 1 节)
dsh-opencode-session-id

给 opencode 用的 dsh 会话 ID,零配置。

一个 DeepSeek Harness(dsh)插件:当你使用 opencode 模型(opencode / opencode-go 这类服务商,指向 opencode.ai 网关)时,它让实际发出的 HTTP 请求带上会话 ID —— 和 opencode 客户端自己的做法一样。

用法

把插件加到 dsh 配置档里(发布到 npm 后按包名安装):

dsh plugin --profile web add "@gausszhou/dsh-opencode-session-id"

安装后重启 dsh web(systemctl --user restart dsh-web),bundle 才会生效。默认配置开箱即用:发往 opencode.ai 的请求会自动带上 x-opencode-session(opencode 网关使用的会话请求头),外加 x-session-affinity / x-client-request-id / x-session-id。请求头的值默认是从会话 ID 的 uuid 部分算出的纯字母数字 nanoid(8)(例如 0RpJJnxJ —— session- 前缀不参与哈希;token 由 uuid 经 SHA-256 确定性推导)。开启 verbose: true 后,journal 会记录原始 ID 与线上 token 的对应关系:

journalctl --user -u dsh-web -f | grep opencode-session-id

工作原理

opencode 网关分支用 x-opencode-session 携带会话 ID;本插件监听 llm/stream 作用域,包装 fetch,在传输层加上这个请求头。默认情况下,它把 session-<uuid> 的 uuid 部分(不含 session- 前缀)哈希成字母数字的 nanoid(8),再发到线上。只动请求头 —— 请求体、URL、方法以及其他一切原样透传。完整设计思路见 docs/design.md。

配置

默认零配置(上面那条安装命令就够了)。想通过补丁层开启注入日志:

- id: opencode-session-id
config:
verbose: true

全部选项(均可选,默认值如下):

| 键 | 默认值 | 说明 |
| providers | [opencode, opencode-go] | 需要标记 sessionId 的 llm-pi-ai 路由名 |
| hosts | [opencode.ai] | 会带上会话请求头的 URL 主机后缀(含子域名) |
| baseURLs | [] | 额外匹配的精确 URL 前缀(自定义网关) |
| headers | [x-opencode-session, x-session-affinity, x-client-request-id, x-session-id] | 要注入的请求头名称 |
| extraHeaders | {} | 可选的静态额外请求头(例如 opencode 指纹系列 x-opencode-client: native / x-opencode-request: dsh) |
| userAgent | 空 | 覆盖 User-Agent(opencode 自己发送 opencode/<version>;默认不改动) |
| sessionIdEnv | 空 | 会话 id 回退时读取的环境变量名 |
| verbose | false | 记录每次注入(包括原始 id → 线上 token 的映射) |
| seedSessionId | false | 为 opencode 路由预置 options.sessionId |
| nanoidSessionId | true | 发送前把 session-<uuid> 哈希成 nanoid(8);设为 false 则发送原始 id |
| nanoidLength | 8 | token 长度(4–32) |
| nanoidAlphabet | alphanumeric | alphanumeric(纯 A-Za-z0-9,不含 _/-)或 urlsafe(经典 64 字符集) |
| disableFetchInjection | false | 设为 true 时,只保留 waterfall 的会话作用域 |

验证

node test/verify.mjs # 10 checks: unit tests + real pi-ai wire request + concurrent isolation + headers-only guarantee
node test/smoke-apply.mjs # apply() wiring: listener registration, scoped fetch, mount/dispose lifecycle

verify.mjs 会通过 dsh CLI 自带的 pi-ai 发出真实 opencode-go 请求,断言线上请求头确实携带会话 id;它还会验证并发会话隔离,以及非 opencode 端点不受影响。

说明与限制

- 会话 id 来自 options.sessionId(agent-loop 会按会话填入);没有会话上下文时,回退顺序是 sessionIdEnv > DSH_SESSION_ID(web 部署中进程的启动会话)> 进程内随机 id。
- 覆盖走 fetch 的协议,例如 openai-completions / openai-responses / anthropic-messages;transport: websocket 不走 fetch,不在范围内。
- 全局 fetch 包装只在匹配到 opencode 端点时追加请求头,其他什么都不改。线上 token 是 session-<uuid> 中 uuid 部分的单向 SHA-256 哈希(不含 session- 前缀,例如 0RpJJnxJ),所以后端无法反推出原始 id;改动 nanoidAlphabet / nanoidLength 会让每个 token 都变,与旧记录的关联随之失效。
预览分享卡片长什么样 ↓gausszhou/dsh-opencode-session-id
分享 · DeepSeek Harness Hub
gausszhou/dsh-opencode-session-id

给 opencode 用的 dsh 会话 ID,零配置。

回到顶部