What's Changed
- feat: add server-wide MCP tool guardrails by @seratch in #1754
- feat: allow custom output guardrail blocked messages by @seratch in #1745
- feat(sandbox): allow labels on Docker sandbox containers by @seratch in #1740
- feat: support image results in web search tools by @seratch in #1843
- fix: enforce selected callable type alias contracts by @seratch in #1749
- fix: preserve serialized approval resume ownership by @seratch in #1750
- fix: recover failed resumed Session writes before continuing runs by @seratch in #1757
- fix: preserve Chat Completions tool turns during replay by @seratch in #1766
- fix: preserve approvals before handoffs and recover resumed writes by @seratch in #1768
- fix: prevent sandbox Git repository argument injection by @seratch in #1840
- fix: preserve tool-search attribution across agent handoffs by @seratch in #1841
- fix(core): honor EOF hunks for newline-terminated files by @seratch in #1769
- fix(core): wait for in-flight trace exports in forceFlush by @sylvesterkaczmarek in #1813
- fix(core): handle span processor rejections by @sylvesterkaczmarek in #1796
- fix(core): preserve CRLF line endings in applyDiff by @sylvesterkaczmarek in #1806
- fix(core): reject unsuccessful OpenAI Responses terminal states by @seratch in #1720
- fix(core): detach aggregated usage records by @seratch in #1729
- fix(core): preserve handoff callback errors by @sylvesterkaczmarek in #1733
- fix(core): isolate cached MCP tool definitions by @seratch in #1727
- fix(core): deduplicate MCP server lifecycle ownership by @seratch in #1743
- fix(core): strip created_by from RunItem replay by @seratch in #1744
- fix(openai): reject truncated empty Chat Completions by @seratch in #1741
- fix(openai): honor provider client options over defaults by @seratch in #1728
- fix(openai): preserve empty hosted MCP outputs by @Excelius-Wang in #1747
- fix(openai): restrict redacted response IDs to official endpoints by @seratch in #1756
- fix(openai): preserve response span data on early stream close by @seratch in #1767
- fix(openai): reset compaction state on clear by @sylvesterkaczmarek in #1822
- fix(openai): keep Conversations history limits local by @sylvesterkaczmarek in #1791
- fix(realtime): safely serialize guardrail feedback details by @sylvesterkaczmarek in #1722
- fix(extensions): decode PTY output incrementally by @pacocartones in #1752
- fix(openai): reset compaction state after pop by @sylvesterkaczmarek in #1824
- fix: preserve deferred tool identity across approval checkpoints by @seratch in #1839
- fix(sessions): preserve concurrent writes during automatic compaction by @seratch in #1842
- fix(sandbox): settle PTY output before cleanup by @seratch in #1844
- fix(sandbox): await PTY startup cleanup by @seratch in #1845
- fix(realtime): warn instead of silently dropping MCP items in resetHistory by @shoemoney in #1748
- refactor: share core Zod description lookup by @seratch in #1834
- refactor: isolate historical RunState compaction restoration by @seratch in #1833
- refactor: separate Responses item conversion from transport by @seratch in #1836
Documentation & Other Changes
- docs: document output guardrail replay safety by @seratch in #1719
- docs: clarify capability visibility and authorization by @seratch in #1755
- docs: explain Realtime WebRTC server-side controls by @seratch in #1762
- docs: correct typo in comments for agent tools description by @morozow in #1774
- docs: preserve canonical localized heading anchors by @seratch in #1746
- fix: route executable docs and contract changes to existing checks by @seratch in #1828
- fix: pin LF line endings so Windows clones keep fixture hashes by @Hashim1999164 in #1721
- fix: make test scripts work on Windows by @mikemikimike in #1710
- fix: enforce selected object property API contracts by @seratch in #1847
- perf: reduce Vitest global setup dependency loading by @seratch in #1829
- refactor: organize AI SDK message conversion and tests by @seratch in #1830
- refactor: separate public API contract checker responsibilities by @seratch in #1838
- test: split Realtime session tests by responsibility by @seratch in #1831
- chore: upgrade pnpm toolchain by @seratch in #1765
- chore: run repository skill tests in a dedicated CI lane by @seratch in #1835
- chore: update versions by @github-actions[bot] in #1726
New Contributors
- @Hashim1999164 made their first contribution in #1721
- @mikemikimike made their first contribution in #1710
- @Excelius-Wang made their first contribution in #1747
- @pacocartones made their first contribution in #1752
- @shoemoney made their first contribution in #1748
- @morozow made their first contribution in #1774
Full Changelog: v0.17.0...v0.17.1