Repository navigation
Replies: 1 comment
|
Confirmed independently on Windows 11 / DSH Desktop 0.2.0-rc.2. Adding concrete log evidence and an isolated request-capture check to this report. Observed failuresOn 2026-10-03, two local sessions recorded 21 tool/result failures with
Both used the Representative tool result (arguments and private identifiers omitted): Installed bundle inspectionVerified the running Desktop executable and its app.asar, rather than relying on a separate globally installed CLI version:
This confirms the missing field in the auxiliary reviewer request, even with the newer pi-ai header helper present. Isolated verificationExtracted the shipped
Both assertions passed. This checks request construction only; no live installation/configuration was patched and no paid model request was made for this check. A real end-to-end regression test is still needed. Workaround observed in existing logsSession B switched to Suggested regression coverage: reviewer requests preserve the owning session ID; different sessions stay distinct; the OpenCode adapter emits the corresponding header; and reviewer transport errors still prevent execution of the pending tool body. Related reports: #5495, #6467 (older main-request header path), and #8512 (web-search auxiliary path). All evidence above is sanitized; no credentials, local project paths, actual session identifiers, or user content are included. |
Uh oh!
There was an error while loading. Please reload this page.
Summary
When the Auto permission preset is active and the LLM route points at a provider that requires a per-conversation routing header, every tool call is rejected with a reviewer error, making the Auto preset unusable. The cause is that
auto-reviewdoes not passsessionIdtoctx.llm.stream(), so the required request header is never injected.Affected package
@deepseek-ai/dsh-experimental-auto-review@0.2.0-rc.2Observed behavior
With the Auto preset selected, tool calls fail with:
This affects all tool calls, including trivial ones, because the reviewer runs before every call.
Switching away from the Auto preset (e.g. to
workspace-writeordanger-full-access) makes the problem disappear immediately — confirming the fault is in the reviewer's own LLM request rather than in tool execution.Root cause
The chain is fully deterministic:
1.
auto-reviewcalls the LLM service withoutsessionId(
packages/experimental/auto-review/lib/index.js,classifyRisk):2.
dsh-llm-pi-aiforwards the field only when present(
packages/llm/pi-ai/lib/index.js):3.
@earendil-works/pi-aiinjects the header only whensessionIdis set(
dist/providers/opencode-headers.js):4. The gateway rejects the request with HTTP 400
MissingSessionID.For comparison, the normal agent loop does pass it
(
packages/agent/agent-loop/lib/index.js):Suggested fix
classifyRisk(ctx, agent, exec, signal)already receivesagent, andauto-reviewalready destructuresagent.sessionelsewhere in the same file. Adding the field appears to be a one-line change:Notes
auto-review's own README documents that Auto must be enabled explicitly and is experimental; this report concerns the case where a user has enabled it.x-opencode-sessionis used by OpenCode's gateway for session affinity / cache routing. Providers that do not require such a header are unaffected, which is likely why this went unnoticed.Environment
dsh0.2.0-rc.2@deepseek-ai/dsh-experimental-auto-review0.2.0-rc.2All reactions