core/v1.7.8
ekzhang/borecore/v1.7.8Aug 10, 2026by akshaydeo
AI Summary
This core library release focuses on fixing reasoning handling across multiple AI providers (Anthropic, Bedrock, Cohere, Gemini). It addresses critical issues with replayed reasoning, encrypted content, and signature handling to ensure data integrity during conversion between different provider formats.
Key Highlights
- Fixed replayed reasoning dropping when ContentBlocks is non-nil but empty.
- Fixed Bedrock reasoning blocks losing the text key or signature.
- Fixed Cohere encrypted reasoning markers being visible to clients.
- Fixed Gemini thoughtSignature double-encoding issues.
- Fixed standalone Gemini reasoning messages being skipped 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`_