core/v1.7.8

maximhq/bifrostcore/v1.7.8Aug 10, 2026by akshaydeo

AI Summary

This core release focuses on fixing reasoning replay logic across multiple AI providers (Anthropic, Bedrock, Cohere, Gemini) by correcting how empty content blocks and signatures are handled during message conversion.

Key Highlights

  • Fix reasoning replay dropping non-nil empty ContentBlocks in converters.
  • Fix Bedrock reasoning block serialization to ensure text key presence.
  • Fix Cohere encrypted reasoning parsing to prevent visible text leakage.
  • Fix Gemini thoughtSignature base64 decoding on the streaming path.

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`_