# Harness Python v1.45.0

Released 2026-06-25
Release: https://github.com/strands-agents/harness-sdk/releases/tag/python/v1.45.0 · Package: https://pypi.org/project/strands-agents/1.45.0/

## Features
- support mistralai 2.x in Mistral provider [model] (https://github.com/strands-agents/harness-sdk/pull/2917)
- add pre-push skill mirroring the CI merge gate locally [devx] (https://github.com/strands-agents/harness-sdk/pull/2856)
- support image input via BidiImageInputEvent [model, bidirectional-streaming] (https://github.com/strands-agents/harness-sdk/pull/2327)
- make BedrockModel.\_format\_request and \_convert\_non\_streaming\_to… [model] (https://github.com/strands-agents/harness-sdk/pull/2315)
- add search/grep support to Python retrieval tool [context, tool] (https://github.com/strands-agents/harness-sdk/pull/2878)
- added per-invocation idempotency support via idempotency\_token [async, agent] (https://github.com/strands-agents/harness-sdk/pull/1937)
- support managed Bedrock knowledge bases in retrieve and ACL [model, tool] (https://github.com/strands-agents/harness-sdk/pull/2909)
- implement MCP progress notifications in MCPClient [mcp] (https://github.com/strands-agents/harness-sdk/pull/2290)

## Fixes
- bound tool schema normalization recursion depth [mcp, tool] (https://github.com/strands-agents/harness-sdk/pull/2853)
- make gemini thinking-model tool-call integ test robust [model] (https://github.com/strands-agents/harness-sdk/pull/2861)
- retry flaky guardrail output-intervention test [interventions] (https://github.com/strands-agents/harness-sdk/pull/2869)
- raise timeout on multimodal swarm/graph integ tests to reduce flakiness [multiagent] (https://github.com/strands-agents/harness-sdk/pull/2871)
- report OpenAI Responses cached tokens [model] (https://github.com/strands-agents/harness-sdk/pull/2663)
- include reasoning block with empty text and non-empty signature [agent] (https://github.com/strands-agents/harness-sdk/pull/2150)
- handle empty Bedrock content blocks [model] (https://github.com/strands-agents/harness-sdk/pull/2656)
- support non-streaming OpenAI chat completions [model] (https://github.com/strands-agents/harness-sdk/pull/2400)
- preserve non-ASCII tool result text [tool] (https://github.com/strands-agents/harness-sdk/pull/2653)
- fix on-demand throughput doc URL to preserve anchor fragment [model] (https://github.com/strands-agents/harness-sdk/pull/2228)
- pass structured output request params [model, structured-output] (https://github.com/strands-agents/harness-sdk/pull/2396)
- preserve non-ASCII text in provider tool-result and tool-call serialization [model] (https://github.com/strands-agents/harness-sdk/pull/2661)
- consume orphaned task exception on stream cancellation [async, model] (https://github.com/strands-agents/harness-sdk/pull/2916)
- avoid UnboundLocalError on empty model stream [model] (https://github.com/strands-agents/harness-sdk/pull/2823)
- surface cache read tokens in metadata chunk [context, model] (https://github.com/strands-agents/harness-sdk/pull/2555)
- prevent tool list mutation across API calls [model] (https://github.com/strands-agents/harness-sdk/pull/2551)
- stop idempotency waiters from blocking thread-pool workers [async, agent] (https://github.com/strands-agents/harness-sdk/pull/2932)
- clarify MaxTokensReachedException message [context, devx] (https://github.com/strands-agents/harness-sdk/pull/2201)
- forward structured output request params for OpenAI Chat Completions [model, structured-output] (https://github.com/strands-agents/harness-sdk/pull/2944)
- release invocation lock only in throw mode [async, agent] (https://github.com/strands-agents/harness-sdk/pull/2954)
- generate toolUseId when missing from provider [model, tool] (https://github.com/strands-agents/harness-sdk/pull/2949)
- prevent false-positive test failures when output is piped [agent] (https://github.com/strands-agents/harness-sdk/pull/2963)
- respect role from BidiTextInputEvent [bidirectional-streaming] (https://github.com/strands-agents/harness-sdk/pull/2952)
- sha-pin third-party GitHub Actions (https://github.com/strands-agents/harness-sdk/pull/2964)
- unwrap FieldInfo default to avoid pydantic warning [devx, tool] (https://github.com/strands-agents/harness-sdk/pull/2955)
- bypass model\_dump on content\_block\_stop [model] (https://github.com/strands-agents/harness-sdk/pull/2953)
- update GeminiModel to handle empty tools in Vertex AI mode [model] (https://github.com/strands-agents/harness-sdk/pull/1040)

## Other
- type the Bedrock KB store's S3 client via boto3-stubs [model, persistence] (https://github.com/strands-agents/harness-sdk/pull/2847)
- add memory manager docs (https://github.com/strands-agents/harness-sdk/pull/2758)
- add sandbox docs [server] (https://github.com/strands-agents/harness-sdk/pull/2854)
- require 2 maintainer reviews on bot/agent PRs (https://github.com/strands-agents/harness-sdk/pull/2755)
- add SSH sandbox integration tests for Py and TS [server] (https://github.com/strands-agents/harness-sdk/pull/2863)
- bump codecov/codecov-action from 6 to 7 (https://github.com/strands-agents/harness-sdk/pull/2657)
- bump cedarpy from 4.8.0 to 4.8.4 in /strands-py (https://github.com/strands-agents/harness-sdk/pull/2852)
- update pytest-asyncio requirement from \<1.4.0,\>=1.0.0 to \>=1.0.0,\<1.5.0 in /strands-py (https://github.com/strands-agents/harness-sdk/pull/2337)
- add timeouts and apt retries to test-lint workflow (https://github.com/strands-agents/harness-sdk/pull/2874)
- bump actions/checkout from 6 to 7 (https://github.com/strands-agents/harness-sdk/pull/2876)
- update dependencies and refactor dev tooling internals (https://github.com/strands-agents/harness-sdk/pull/2870)
- opt back into fork-PR checkout under pull\_request\_target (https://github.com/strands-agents/harness-sdk/pull/2879)
- gate dependency vulns on PR-introduced changes only (https://github.com/strands-agents/harness-sdk/pull/2872)
- bump cedarpy from 4.8.4 to 4.8.5 in /strands-py (https://github.com/strands-agents/harness-sdk/pull/2890)
- update litellm requirement from \<=1.83.13,\>=1.75.9 to \>=1.75.9,\<=1.89.3 in /strands-py (https://github.com/strands-agents/harness-sdk/pull/2889)
- update ruff requirement from \<0.15.0,\>=0.13.0 to \>=0.13.0,\<0.16.0 in /strands-py (https://github.com/strands-agents/harness-sdk/pull/2334)
- update mistralai requirement from \<2.0.0,\>=1.8.2 to \>=1.8.2,\<3.0.0 in /strands-py (https://github.com/strands-agents/harness-sdk/pull/2331)
- update writer-sdk requirement from \<3.0.0,\>=2.2.0 to \>=2.2.0,\<4.0.0 in /strands-py (https://github.com/strands-agents/harness-sdk/pull/2621)
- tighten dependabot versioning strategy (https://github.com/strands-agents/harness-sdk/pull/2899)
- revert mistralai upper bound to \<2.0.0 (https://github.com/strands-agents/harness-sdk/pull/2900)
- bump actions/dependency-review-action from 4 to 5 (https://github.com/strands-agents/harness-sdk/pull/2903)
- add a reasoning bridge to the design doc template (https://github.com/strands-agents/harness-sdk/pull/2907)
- bump actions/checkout from 6 to 7 (https://github.com/strands-agents/harness-sdk/pull/2904)
- unify Dependabot grouping and cooldown across all ecosystems (https://github.com/strands-agents/harness-sdk/pull/2901)
- add TESTING.md for python (https://github.com/strands-agents/harness-sdk/pull/2961)
- improve testing instructions (https://github.com/strands-agents/harness-sdk/pull/2965)
- skip SDK test matrices on markdown-only changes (https://github.com/strands-agents/harness-sdk/pull/2967)
