Skip to content

πŸ¦‹ New version release#220

Merged
brentrager merged 1 commit into
mainfrom
changeset-release/main
Jul 9, 2026
Merged

πŸ¦‹ New version release#220
brentrager merged 1 commit into
mainfrom
changeset-release/main

Conversation

@brentrager

Copy link
Copy Markdown
Contributor

This PR was opened by the Changesets release GitHub action. When you're ready to do a release, you can merge this and the packages will be published to npm automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated.

Releases

@smooai/smooth-operator@1.22.10

Patch Changes

  • 22b193e: Fix eventual_response still shipping an empty reply (blank responseParts + empty suggestedNextActions) on gpt-oss-120b via the LiteLLM/groq gateway, which 1.22.1 did not cover.

    Confirmed empirically against the real SSE parser: this gateway/model emits the WHOLE answer on the reasoning channel (delta.reasoning_content) with delta.content never populated. The engine accumulates reasoning into a separate buffer and drops it from response.content, so BOTH last_assistant_content() and the 1.22.1 streamed_reply (content tokens) come back empty β€” even though the answer streams to the client as stream_reasoning and persists. The "streamed tokens" observed in prod were stream_reasoning frames (protocol-identical to stream_token), not content.

    rust/smooth-operator-server/src/runner.rs: accumulate the turn's reasoning stream and use it as a LAST-RESORT fallback for the final reply β€” after last_assistant_content() and streamed_reply, only when no answer content exists anywhere. A normal reasoning model always populates content, so it never surfaces its thinking as the answer; this rung fires solely for the degenerate answer-in-reasoning case where the alternative is an empty response. The suggested-replies trailer is preserved through the fallback so suggestions are recovered.

    Adds tests/gateway_wire_empty_reply.rs, a regression that drives the real LlmClient against a local mock speaking the gateway SSE wire format (answer-in-content and answer-in-reasoning shapes) β€” it fails if the reply goes empty again.

@smooai/smooth-operator-web-chat-example@0.0.3

Patch Changes

  • Updated dependencies [22b193e]
    • @smooai/smooth-operator@1.22.10

@brentrager brentrager force-pushed the changeset-release/main branch from 29a1f82 to d204451 Compare July 9, 2026 20:24
@brentrager brentrager merged commit 086750e into main Jul 9, 2026
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