Skip to content

Commit e09b359

Browse files
authored
deps: bump go-llm-sdk to v0.3.3 and drop the local workspace overlay (#239)
* deps: bump go-llm-sdk to v0.3.3 and drop the local workspace overlay v0.3.3 carries the DeepSeek thinking-mode fix: an empty reasoning_content is echoed on requests that carry tools, so a turn whose reasoning the provider elided no longer serializes without the key and no longer kills the rest of the tool loop with a 400. Bumping to the released module lets the local go.work overlay go away entirely, so every build resolves the same code: local dev, CI and release. The overlay existed only to develop the fix in place; now that it is released it is pure drift risk, because it made local binaries run unreleased code while CI and releases ran the pinned tag. Verified with no workspace present (GOWORK unset): go list -m github.com/BackendStack21/go-llm-sdk -> v0.3.3 go build ./... ok go test ./internal/llmclient/... ./internal/loop/... ./internal/session/... ok go test -race ./internal/llmclient/... ok go.mod: one line. go.sum: two. No other dependency movement. * docs: document the DeepSeek reasoning-replay requirement and the v0.3.3 floor The dependency bump alone leaves the contract undocumented: PROVIDERS.md described the GPT-5.6 tools+reasoning route but said nothing about DeepSeek's reasoning_content replay rule, which is what breaks long tool loops on the older SDK. MIGRATION.md pinned "go-llm-sdk v0.3.2+" as the recommended floor. - PROVIDERS.md: a DeepSeek paragraph next to the GPT-5.6 one, stating that reasoning_content is required on every assistant turn of a tool-carrying request (including turns where the provider returned no reasoning), that v0.3.3+ echoes the key, and that v0.3.2 and older die mid-loop with the reported 400. - MIGRATION.md: the recommended pin moves to v0.3.3+ with the DeepSeek reason added alongside the existing GPT-5.6 and cache reasons. Docs only, no behaviour change.
1 parent 3c25124 commit e09b359

4 files changed

Lines changed: 13 additions & 2 deletions

File tree

‎docs/MIGRATION.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -149,4 +149,4 @@ agent, err := odek.New(odek.Config{
149149

150150
## Cache / cost budgets
151151

152-
Cache usage fields come from the SDK (`Usage.Cache*`). Pin **go-llm-sdk v0.3.2+** so GPT-5.6 tools+reasoning stays on (`POST /v1/responses`) and cache-token parsing remains honest.
152+
Cache usage fields come from the SDK (`Usage.Cache*`). Pin **go-llm-sdk v0.3.3+** so GPT-5.6 tools+reasoning stays on (`POST /v1/responses`), cache-token parsing remains honest, and DeepSeek thinking-mode tool loops replay `reasoning_content` instead of dropping it (v0.3.2 and older lose the key on turns where the provider elided reasoning, and the loop 400s from then on).

‎docs/PROVIDERS.md‎

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,15 @@ actually reasons, and a reasoning summary is streamed back. `thinking=disabled`
4747
stays on Chat Completions with `reasoning_effort: none`. The same Responses
4848
route is used for GPT-5.4/5.5 when an explicit thinking level is set.
4949

50+
**DeepSeek (`deepseek`, the default id):** thinking mode requires
51+
`reasoning_content` to be replayed on every assistant turn of a request that
52+
carries tools, including turns where the provider returned no reasoning of
53+
its own, which happens on some turns. With go-llm-sdk v0.3.3+ odek echoes the
54+
key on tool-carrying requests, so such a turn no longer serializes without it.
55+
On v0.3.2 and older the key is dropped when empty and a long tool loop dies
56+
mid-run with `400 ... The reasoning_content in the thinking mode must be
57+
passed back to the API`, then fails on every later request in that loop.
58+
5059
## odek knobs (not in the SDK)
5160

5261
| Knob | Where |

‎go.mod‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,4 +11,4 @@ require (
1111

1212
require golang.org/x/sys v0.47.0
1313

14-
require github.com/BackendStack21/go-llm-sdk v0.3.2
14+
require github.com/BackendStack21/go-llm-sdk v0.3.3

‎go.sum‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
github.com/BackendStack21/go-llm-sdk v0.3.2 h1:aUXa450t+eOtLmuNX6gOMSD4zZsGCKtaIaG1YDHmNxY=
22
github.com/BackendStack21/go-llm-sdk v0.3.2/go.mod h1:Nhro6plQaVIIFajPhzp2dzz4rv4DFU/yXNEudChllyE=
3+
github.com/BackendStack21/go-llm-sdk v0.3.3 h1:JlMQL8K7W+BVe7zjhP7MMYK5VNqmK38QlDrFjA7Pp2c=
4+
github.com/BackendStack21/go-llm-sdk v0.3.3/go.mod h1:Nhro6plQaVIIFajPhzp2dzz4rv4DFU/yXNEudChllyE=
35
github.com/BackendStack21/go-mcp v1.3.0 h1:55iJgiAgcptv+mQwWEHNaFqPJksPR6zn4beYjHk/Ea4=
46
github.com/BackendStack21/go-mcp v1.3.0/go.mod h1:RKFw6nrl6ySQqqrR8KtG7HYZ/heyyjT8SjiEtlbTMY8=
57
github.com/BackendStack21/go-vector v1.4.0 h1:Ssu5RDEt4Cr9A17/ogdfjeuaLFFNHASJBIEGpqKzAV0=

0 commit comments

Comments
 (0)