Skip to content

deps: bump go-llm-sdk to v0.3.3 and drop the local workspace overlay - #239

Merged
jkyberneees merged 2 commits into
mainfrom
fix/llm-sdk-v0.3.3
Sep 14, 2026
Merged

jkyberneees merged 2 commits into
mainfrom
fix/llm-sdk-v0.3.3

Conversation

@jkyberneees

Copy link
Copy Markdown
Contributor

Summary

Bumps go-llm-sdk to v0.3.3 and removes the local go.work overlay, so every build — local, CI and release — resolves the same published code.

Why

v0.3.3 fixes DeepSeek thinking-mode tool loops. DeepSeek requires reasoning_content to be replayed on every assistant turn of a request carrying tools, including turns where the provider returned no reasoning of its own. The field was omitempty, so such a turn serialized with no key and the API answered 400 on every later request in the loop. v0.3.3 echoes the key on tool-carrying requests.

On v0.3.2 a long DeepSeek tool loop dies mid-run and then fails permanently.

Changes

  • go.mod: go-llm-sdk v0.3.2 → v0.3.3 (go.sum: two lines, no other dependency movement).
  • go.work removed. The overlay existed to develop the SDK fix in place. Now that it is released it is pure drift risk: it made local builds run unreleased code while CI and releases ran the pinned tag.
  • docs/PROVIDERS.md: documents the DeepSeek replay requirement next to the existing GPT-5.6 note.
  • docs/MIGRATION.md: the recommended pin moves from v0.3.2+ to v0.3.3+ with the DeepSeek reason added.

Verification

With no workspace present (GOWORK empty):

check result
go list -m github.com/BackendStack21/go-llm-sdk v0.3.3
go build ./... ok
internal suites (excluding cmd/odek) ok
llmclient / loop / session ok
llmclient -race ok
golangci-lint run ./... 0 issues

Note on CI

A re-run may be needed: TestToolHeartbeat_LongRunningToolEmitsSignals (internal/loop/signal_test.go) is a pre-existing timing flake — it has tripped once in the last 15 runs on main, passes 5/5 locally under -race, and the commit that triggered it was docs-only. Unrelated to this change.

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.
….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.
@cloudflare-workers-and-pages

Copy link
Copy Markdown

Deploying with  Cloudflare Workers  Cloudflare Workers

The latest updates on your project. Learn more about integrating Git with Workers.

Status Name Latest Commit Preview URL Updated (UTC)
✅ Deployment successful!
View logs
odek 7f236fe Commit Preview URL

Branch Preview URL
Sep 14 2026, 12:05 PM

@jkyberneees
jkyberneees merged commit e09b359 into main Sep 14, 2026
10 checks passed
@jkyberneees
jkyberneees deleted the fix/llm-sdk-v0.3.3 branch September 14, 2026 12:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant