harness-typescript/v0.3.0
Auto-drafted from commits in harness-typescript/v0.2.0..harness-typescript/v0.3.0, grouped by conventional-commit type. Edit on the release page after publish if you want a polished writeup; the canonical release notes live on the website.
🚀 Features
- feat(skills): package Strands for Claude, Codex, and Cursor (#5123) (5e84caf)
- feat(ts): add DecisionModel primitive and LLMDecisionModel (#4942) (8340c42)
- feat(mcp-ts): add progress callbacks for tool calls (#4302) (5eaf888)
- feat(mcp-ts): added mcp v2 prompts, resources methods with paginationToken (#4296) (f1c4a75)
- feat(storage-ts): accept a config object in LocalFileStorage and InMemoryStorage (#5090) (db38e30)
- feat(mcp): support client-level request metadata (_meta) on tool calls (#4660) (ce9b113)
- feat(context)!: share the stash across agents through a caller-scoped… (#5075) (c033969)
- feat(vended-tools): add python_repl vended tool to TS (#5041) (30facf3)
- feat(telemetry): propagate OTel baggage context in Python (#4840) (900ad33)
- feat(mcp/ts): add SEP-2663 task execution on mcp/ext-tasks (#4977) (2c3cfe7)
- feat(bedrock-ts): support strict tool use via strictTools config (#4181) (17a3391)
- feat(py): add python_repl vended tool (#4384) (a2524a5)
- feat(agent): add auxModel for auxiliary model calls (TS port of #4658) (#4783) (eba4e5a)
- feat(context)!: share the stash across agents through a caller-scoped storage view (#4389) (b340edb)
- feat(ts): port vended subagent tool to TypeScript (#4971) (29d006e)
🐛 Fixes
- fix(site): normalize analytics route URLs (#5007) (12170cf)
- fix(mcp): preserve shared connection when creator aborts (#5065) (1250365)
- fix(google): set include_server_side_tool_invocations when mixing function declarations with built-in tools (#4754) (d485c14)
- fix(storage-ts): reject host-filesystem search strategies with a sandbox (#5093) (5600fcc)
- fix(graph): map cancelled agent results to FAILED and stop downstream routing (#4753) (109c15b)
- fix(python): serialize multi-agent snapshot saves (#4673) (1494d5b)
- fix(openai): map a content-filtered Responses API run to content_filtered (#5074) (80ed9a0)
- fix(openai): map content_filter finish reason to content_filtered (#5072) (c75eb15)
- fix(mcp/ts): forward the call signal to connect and fetch task metadata for unlisted tools (#5043) (dde611f)
- fix(mcp-ts): rebuild transport and client when reconnecting url-configured clients (#4378) (bf9f11a)
- fix(python): deduplicate usage nudges via stdlib warnings module (#4983) (38afb96)
- fix(openai): warn about reasoningContent once per request (#5016) (e46b0db)
- fix(harness-py): map Bedrock families to small web_fetch summarizers; enable Nova 2 thinking (#4853) (7583a50)
- fix(openai): read chat usage reported on the finish_reason chunk (#4851) (94df46f)
- fix(models): add context window limit for Haiku 5.5 (py + ts) (#4998) (6d60fdb)
- fix(gemini): format video content blocks as inline data (#4910) (e519d67)
- fix(models): support Anthropic cache writes on older LiteLLM (#4979) (925067c)
- fix(vended-tools): reject non-finite web fetch size limits (#4718) (5b7a2ac)
- fix(injection): drop the leading blank line on tool-result turns (py) (#4828) (d8f4b7f)
- fix(gemini): classify every 429 as throttling regardless of body format (#4524) (1db454f)
- fix(cli): handle sandbox clipboard failures (#4959) (c1ca227)
- fix(harness-py): require SDK 1.57.2 for session restore (#4974) (6f23cba)
♻️ Refactoring
📚 Documentation
- docs(storage): add search strategies page and storage section (#5078) (e6f6725)
- docs(catalog): add LoopGrid Strands integration (#4629) (9779f57)
- docs(blog): set harness benchmark post date to 2026-10-13 (#5124) (041a47f)
- docs(blog): add harness cost benchmark post (#5116) (12e67c4)
- docs: list every monorepo directory in CONTRIBUTING and AGENTS (#5120) (7b0569d)
- docs(changelog): sync strands-agents/harness-sdk python/v1.60.0 (#5092) (7d7f1fe)
- docs(site): highlight interactive harness benchmark chart (#5082) (dc03b1c)
- docs(changelog): sync strands-agents/harness-sdk typescript/v1.20.0 (#5006) (58158f7)
- docs(site): move Conversation management to the bottom of Components (#5086) (ff45036)
- docs: link every directory in the README monorepo table (#5050) (5050753)
- docs(sdk): document aux_model / auxModel for auxiliary model calls (#4784) (54775ee)
- docs(multi-agent): set callback_handler=None on Python agents used as tools (#4790) (35c8f73)
- docs(designs): decision model primitive (TS-first rework of 0020) (#4891) (13e02c8)
- docs(mcp): drop removed streamablehttp_client from Streamable HTTP examples (#4938) (9a6e25a)
✅ Tests
👷 CI
- ci(docs): bump jsdom from 30.0.1 to 30.1.2 in /site (#4994) (229a008)
- ci: bump codecov/codecov-action from 7.0.0 to 7.1.1 (#4430) (19d3be2)
- ci(python): update ruff requirement from <0.17.0,>=0.16.0 to >=0.16.0,<0.18.0 in /strands-py (#5100) (1a47163)
- ci(docs): bump the npm_and_yarn group across 1 directory with 2 updates (#5109) (26b4d68)
- ci(docs): bump satori from 0.33.5 to 0.47.1 in /site (#5102) (929e5f8)
- ci(docs): bump vite from 8.3.0 to 8.3.4 in /site (#5104) (685a42a)
- ci(typescript): bump @modelcontextprotocol/client from 2.0.0 to 2.3.1 (#4931) (1647c60)
- ci(typescript): bump source-map-js from 1.2.1 to 1.2.2 (#4928) (44e5d56)
- ci(docs): bump pino from 10.3.1 to 10.4.0 in /site (#4911) (4167e3b)