core/v1.7.8

sherlock-project/sherlockcore/v1.7.8Aug 10, 2026by akshaydeo

AI Summary

This release addresses critical bugs in reasoning block handling across multiple AI providers, ensuring that replayed reasoning, signatures, and content are correctly processed without being dropped or corrupted.

Key Highlights

  • Fixed dropping of replayed reasoning when content blocks are empty
  • Corrected Bedrock reasoning block serialization to prevent null member errors
  • Fixed Cohere encrypted reasoning marker parsing to prevent visible reasoning text
  • Corrected Gemini thought signature decoding on the streaming path
  • Ensured standalone Gemini reasoning messages are preserved during history conversion

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