DSH 接入 OpenCode Go 报 400 MissingSessionID:从 LLM 语义层退到 fetch 传输层的完整排障从「请求报错」到「根因」再到「插件方案」,完整记录一次模型接入的排障过程。 结论先行:OpenCode Go 要求每个请求带一个按会话稳定的 x-opencode-session 头, DSH 的 LLM 层没有任何地方能加这个头,但传输层可以——于是有了一个 llm/stream 观察者 + AsyncLocalStorage + fetch 中间件的零依赖插件。 完整源码:https://github.com/priatewang/dsh-ocg-session