core/v1.7.8

nats-io/nats-servercore/v1.7.8Aug 10, 2026by akshaydeo

AI Summary

A core release addressing reasoning block handling across multiple LLM providers (Anthropic, Bedrock, Cohere, Gemini) to prevent data loss and ensure correct streaming behavior.

Key Highlights

  • Fixed replayed reasoning content for Anthropic, Bedrock, Cohere, and Gemini providers.
  • Corrected Bedrock `stopReason` reporting for tool-use turns.
  • Fixed Cohere encrypted reasoning parsing and Gemini thoughtSignature handling.
  • Resolved issues with empty reasoning blocks being dropped or malformed.

Full Release Notes

## Core Release v1.7.8

- fix: stop dropping replayed reasoning when a message carries a non-nil but empty `ContentBlocks` list - the Anthropic, Bedrock and Cohere converters now fall through to `ResponsesReasoning` instead of letting an `else if` shadow it (#5982)
- fix: never send Bedrock a reasoning block with an absent `text` key - it is `omitempty`, so a nil pointer dropped the field entirely and Converse rejected the turn with "Member must not be null", on both the Responses and chat conversion paths (#5982)
- fix: attach the replayed signature to the first Bedrock reasoning summary block instead of discarding it, routed through `reasoningSignatureForBedrock` so the empty-string guard matches every other signature site (#5982)
- fix: force the `thinking` key onto Bedrock invoke thinking blocks even when the text is empty, so a signature-only replay block no longer serializes to a shape Bifrost's own decoder drops (#5982)
- fix: emit Cohere encrypted reasoning alongside the summary rather than instead of it, and parse the `[ENCRYPTED_REASONING: ...]` marker back into `EncryptedContent` on ingress so it no longer reaches clients as visible reasoning text (#5982)
- fix: base64-decode `encrypted_content` before assigning it to a Gemini `thoughtSignature` on the streaming path, which previously shipped a double-encoded signature Gemini could not verify (#5982)
- fix: carry Gemini `thoughtSignature` off thought parts into `encrypted_content` and the reasoning block signature, and emit signature-only thought parts, so clients can replay them (#5982)
- fix: stop skipping standalone Gemini reasoning messages when converting Responses history to Gemini contents - thought text is now resent as the thinking guide requires, and the signature is emitted when no preceding function call consumed it (#5984)
- fix: carry a consumed reasoning item's thought text alongside the signature the preceding Gemini function call took from it, so the thought block reaches Gemini unmodified (#5984)

### Installation

```bash
go get github.com/maximhq/bifrost/core@v1.7.8
```

---
_This release was automatically created from version file: `core/version`_