All Versions
174
Latest Version
Avg Release Cycle
8 days
Latest Release
8 days ago
Changelog History
Page 1
Changelog History
Page 1
-
v2.60.0 Changes
May 13, 2026Adds a new
stream_gen_ai_spansoption that controls howgen_aispans are
sent to Sentry. When set, the SDK extracts allgen_aispans out of a
transaction and sends them as v2 envelope items.🛰 Enable this option if
gen_aispans are being dropped because the transaction payload exceeds size limits.importsentry\_sdksentry\_sdk.init(dsn='https://[email protected]/0',stream\_gen\_ai\_spans=True, )🆕 New Features ✨
- 👍 (asyncpg) Add cursor span support via BaseCursor method patching by @ericapisani in #6252
- (integrations) Pass along the conversation ID for openai
responsescalls by @constantinius in #6199 - (wsgi,asgi) Introduce substitute values for filtered fields in span-streaming mode by @ericapisani in #6178
- Remove truncation when
stream_gen_ai_spansis enabled by @alexander-alderman-webb in #6260 - ➕ Add option to send GenAI spans in the new span format by @alexander-alderman-webb in #6079
🐛 Bug Fixes 🐛
Openai
- Guard against
choices=Noneby @cla7aye15I4nd in #6216 - Stop setting transaction status when child span fails by @alexander-alderman-webb in #6192
- Only finish relevant spans in Responses patches by @alexander-alderman-webb in #6191
- Only finish relevant spans in Chat Completions patches by @alexander-alderman-webb in #6190
Other
- (stdlib) Instrument response body read for chunked HTTP responses by @sentrivana in #6202
- (typing) Add
@sentry_sdk.traces.traceoverloads to fix typing by @sentrivana in #6236 - 👉 Use proto version 2 to fix backfilled user agent and IP by @sentrivana in #6256
- 👉 Make sure
http.serverspans are segments by @sentrivana in #6230 - 🖐 Handle mypy 2.0 related failures by @alexander-alderman-webb in #6218
Internal Changes 🔧
Django
- Check transaction annotations on transaction events by @alexander-alderman-webb in #6251
- ✅ Reload middleware on test teardown by @alexander-alderman-webb in #6249
Openai
- 🔀 Separate sync and async embeddings patches by @alexander-alderman-webb in #6189
- 🔀 Separate sync and async Responses patches by @alexander-alderman-webb in #6188
- 🔀 Separate sync and async Chat Completions patches by @alexander-alderman-webb in #6187
Other
- (langchain) Inline global state by @alexander-alderman-webb in #6261
- (stdlib) Only capture relevant telemetry with
capture_items()by @alexander-alderman-webb in #6214 - (tests) Replace custom
envelopes_to_xhelpers withcapture_itemsby @sentrivana in #6233 - (traces) Cache valid span statuses in a module-level frozenset by @ericapisani in #6208
- Assert presence of profile chunks after session shutdown by @alexander-alderman-webb in #6213
- 🚀 🤖 Update test matrix with new releases (05/11) by @github-actions in #6247
- Make
set_custom_sampling_context()a classmethod by @alexander-alderman-webb in #6238 - Rename
_timestampto_end_timestampby @sentrivana in #6235 - 🚚 Move batcher fork safety test to batcher tests by @sentrivana in #6225
- Introduce inline type check for whether a span is StreamedSpan by @ericapisani in #6180
- ➕ Add
botocore-stubsby @alexander-alderman-webb in #6203 - ➕ Add option to drop scrubbed user IP addresses by @juliosuas in #6241
- ➕ Add .warden to .gitignore by @ericapisani in #6210
- ✂ removed universal bdist_wheel option by @Muskaan436 in #6197
- 🖨 (transport) Add EnvelopePrinterTransport for debug logging by @ericapisani in #6181
-
v2.59.0 Changes
May 04, 2026🆕 New Features ✨
Langchain
- Record
run_nameasgen_ai.function_idon Invoke Agent Spans by @alexander-alderman-webb in #5926 - Record
run_nameinon_tool_startby @alexander-alderman-webb in #5925 - Record
run_nameinon_chat_model_startby @alexander-alderman-webb in #5924
Other
- (ci) Cancel in-progress PR workflows on new commit push by @joshuarli in #5994
- ⚡️ (consts) Add updated span convention constants to SPANDATA by @ericapisani in #6093
- 👍 (fastapi) Support span streaming in active thread tracking by @ericapisani in #6118
- (httpx) Migrate to span first by @ericapisani in #6084
- (huggingface_hub) Migrate to span first by @ericapisani in #6124
- (mcp) Migrate to span first by @ericapisani in #6131
- ➕ Add
db.driver.namespans to database integrations by @ericapisani in #6082
🐛 Bug Fixes 🐛
0️⃣ We've put additional data that might contain sensitive information, like GraphQL documents, behind the
send_default_piioption.Httpx
- Consistently early-exit when adding request source by @alexander-alderman-webb in #6151
- Set
code.namespaceandcode.functioninstead ofcode.function.namein span streaming by @alexander-alderman-webb in #6150
Langchain
- Record
run_nameasgen_ai.function_idfor text completions by @alexander-alderman-webb in #6073 - Set agent name as
gen_ai.agent.namefor chat and tool spans by @alexander-alderman-webb in #5877
Other
- (asgi) Use
inspect.iscoroutinefunctionon Python 3.14+ by @alexander-alderman-webb in #6135 - 🔒 (batcher) Reset lock and flusher in child after fork by @ericapisani in #6163
- (google_genai) Redact binary data in inline_data and fix multi-part message extraction by @ericapisani in #5977
- (grpc) Add isolation_scope to async server interceptor by @robinvd in #5940
- 🔊 (metrics,logs) Don't attach
span_idif no active span by @sentrivana in #6162 - (monitor) Release
Monitor._thread_lockafter fork (#6148) by @vokracko in #6159 - (openai-agents) Resolve agent from
bindingsfor openai-agents >= 0.14 by @ericapisani in #6102 - (profiler) Stop nulling buffer on teardown by @ericapisani in #6075
- (quart) Use
inspect.iscoroutinefunctionwhen Quart does by @alexander-alderman-webb in #6133 - ⚡️ (security) Prevent GitHub script injection in update-tox workflow by @fix-it-felix-sentry in #6171
- (starlette/fastapi) Use
inspect.iscoroutinefunctionwhen Starlette does by @alexander-alderman-webb in #6134 - (tornado) Make sure context manager doesn't double yield by @sentrivana in #6152
- Introduce
_get_current_streamed_span()to keep types backwards compatible by @alexander-alderman-webb in #6177
Internal Changes 🔧
Stdlib
- Pin timestamps in
add_http_request_source()patch by @alexander-alderman-webb in #6160 - ✅ Stop mocking
HTTPSConnection.sendin trace header tests by @alexander-alderman-webb in #6156
Other
- (batcher) Only flush the bucket that triggered the flush event by @sentrivana in #6168
- 🚚 (celery) Remove unused
NoOpMgrfrom utils by @sentrivana in #6078 - ⚡️ (ci) Update outdated pinned action version comments by @JoshuaMoelans in #6088
- ✅ (fastmcp) Span streaming tests by @alexander-alderman-webb in #6167
- ⚡️ (graphql) Update document setting by @sentrivana in #6153
- 🔀 (grpc) Mirror sync interceptor by @sentrivana in #6158
- 🚚 (langchain) Separate test to remove conditional by @alexander-alderman-webb in #6076
- 🚚 (pydantic-ai) Remove dead
Model.requestpatch by @alexander-alderman-webb in #5956 - ⚡️ (queues) Update integrations by @sentrivana in #6157
- (tests) Replace deprecated
enable_tracingwithtraces_sample_rateby @sentrivana in #6077 - 🚚 (transport) Remove redundant checks for dsn by @psh9508 in #6104
- 📇 Rename file by @sentrivana in #6194
- 🚀 🤖 Update test matrix with new releases (05/04) by @github-actions in #6186
- Assert presence of profile chunks after shutdown by @alexander-alderman-webb in #6174
- 🚀 🤖 Update test matrix with new releases (04/29) by @github-actions in #6173
- ⚡️ Limit
update-toxaction to master branch by @alexander-alderman-webb in #6172 - Expand scrubbing by @sentrivana in #6161
- Remove Python 2 compat from qualname_from_function by @ericapisani in #6137
- 🚀 Update test matrix with new releases (04/27) by @alexander-alderman-webb in #6146
- ✅ Raise shutdown timeout in aws lambda tests by @sentrivana in #6129
- ✅ Join thread in continuous profiler test by @alexander-alderman-webb in #6125
- 🚀 🤖 Update test matrix with new releases (04/20) by @github-actions in #6100
- Set explicit base-branch for codecov action by @ericapisani in #5992
- Record
-
v2.59.0.a2 Changes
May 08, 2026🆕 New Features ✨
- 👍 (aiohttp) Add span streaming support by @ericapisani in #6179
- 👍 (argv) Support span streaming by @sentrivana in #6227
- 👍 (boto3) Support span streaming by @alexander-alderman-webb in #6193
- (integrations) Pass along the conversation ID for openai
responsescalls by @constantinius in #6199 - (wsgi,asgi) Introduce substitute values for filtered fields in span-streaming mode by @ericapisani in #6178
🐛 Bug Fixes 🐛
Openai
- Stop setting transaction status when child span fails by @alexander-alderman-webb in #6192
- Only finish relevant spans in Responses patches by @alexander-alderman-webb in #6191
- Only finish relevant spans in Chat Completions patches by @alexander-alderman-webb in #6190
Other
- (stdlib) Instrument response body read for chunked HTTP responses by @sentrivana in #6202
- (typing) Add
@sentry_sdk.traces.traceoverloads to fix typing by @sentrivana in #6236 - 👉 Make sure
http.serverspans are segments by @sentrivana in #6230 - 🖐 Handle mypy 2.0 related failures by @alexander-alderman-webb in #6218
Internal Changes 🔧
Openai
- 🔀 Separate sync and async embeddings patches by @alexander-alderman-webb in #6189
- 🔀 Separate sync and async Responses patches by @alexander-alderman-webb in #6188
- 🔀 Separate sync and async Chat Completions patches by @alexander-alderman-webb in #6187
Other
- (asyncio) Migrate integration to span-first by @ericapisani in #6198
- (tests) Replace custom
envelopes_to_xhelpers withcapture_itemsby @sentrivana in #6233 - (traces) Cache valid span statuses in a module-level frozenset by @ericapisani in #6208
- Rename
_timestampto_end_timestampby @sentrivana in #6235 - 🚚 Move batcher fork safety test to batcher tests by @sentrivana in #6225
- Introduce inline type check for whether a span is StreamedSpan by @ericapisani in #6180
- ➕ Add
botocore-stubsby @alexander-alderman-webb in #6203
Other
- ➕ Add .warden to .gitignore by @ericapisani in #6210
- ✂ removed universal bdist_wheel option by @Muskaan436 in #6197
-
v2.59.0.a1 Changes
May 05, 2026🆕 New Features ✨
Langchain
- Record
run_nameasgen_ai.function_idon Invoke Agent Spans by @alexander-alderman-webb in #5926 - Record
run_nameinon_tool_startby @alexander-alderman-webb in #5925 - Record
run_nameinon_chat_model_startby @alexander-alderman-webb in #5924
Other
- ⚡️ (consts) Add updated span convention constants to SPANDATA by @ericapisani in #6093
- 👍 (fastapi) Support span streaming in active thread tracking by @ericapisani in #6118
- (httpx) Migrate to span first by @ericapisani in #6084
- (huggingface_hub) Migrate to span first by @ericapisani in #6124
- (mcp) Migrate to span first by @ericapisani in #6131
- ➕ Add
db.driver.namespans to database integrations by @ericapisani in #6082
🐛 Bug Fixes 🐛
Httpx
- Consistently early-exit when adding request source by @alexander-alderman-webb in #6151
- Set
code.namespaceandcode.functioninstead ofcode.function.namein span streaming by @alexander-alderman-webb in #6150
Langchain
- Record
run_nameasgen_ai.function_idfor text completions by @alexander-alderman-webb in #6073 - Set agent name as
gen_ai.agent.namefor chat and tool spans by @alexander-alderman-webb in #5877
Other
- (asgi) Use
inspect.iscoroutinefunctionon Python 3.14+ by @alexander-alderman-webb in #6135 - 🔒 (batcher) Reset lock and flusher in child after fork by @ericapisani in #6163
- (grpc) Add isolation_scope to async server interceptor by @robinvd in #5940
- 🔊 (metrics,logs) Don't attach
span_idif no active span by @sentrivana in #6162 - (monitor) Release
Monitor._thread_lockafter fork (#6148) by @vokracko in #6159 - (openai-agents) Resolve agent from
bindingsfor openai-agents >= 0.14 by @ericapisani in #6102 - (quart) Use
inspect.iscoroutinefunctionwhen Quart does by @alexander-alderman-webb in #6133 - ⚡️ (security) Prevent GitHub script injection in update-tox workflow by @fix-it-felix-sentry in #6171
- (starlette/fastapi) Use
inspect.iscoroutinefunctionwhen Starlette does by @alexander-alderman-webb in #6134 - (tornado) Make sure context manager doesn't double yield by @sentrivana in #6152
- Introduce
_get_current_streamed_span()to keep types backwards compatible by @alexander-alderman-webb in #6177
Internal Changes 🔧
Stdlib
- Pin timestamps in
add_http_request_source()patch by @alexander-alderman-webb in #6160 - ✅ Stop mocking
HTTPSConnection.sendin trace header tests by @alexander-alderman-webb in #6156
Other
- (batcher) Only flush the bucket that triggered the flush event by @sentrivana in #6168
- 🚚 (celery) Remove unused
NoOpMgrfrom utils by @sentrivana in #6078 - ⚡️ (ci) Update outdated pinned action version comments by @JoshuaMoelans in #6088
- ✅ (fastmcp) Span streaming tests by @alexander-alderman-webb in #6167
- ⚡️ (graphql) Update document setting by @sentrivana in #6153
- 🔀 (grpc) Mirror sync interceptor by @sentrivana in #6158
- 🚚 (langchain) Separate test to remove conditional by @alexander-alderman-webb in #6076
- ⏪ (openai) Revert input truncation by @alexander-alderman-webb in #6117
- ⚡️ (queues) Update integrations by @sentrivana in #6157
- (tests) Replace deprecated
enable_tracingwithtraces_sample_rateby @sentrivana in #6077 - 🚚 (transport) Remove redundant checks for dsn by @psh9508 in #6104
- 📇 Rename file by @sentrivana in #6194
- 🚀 🤖 Update test matrix with new releases (05/04) by @github-actions in #6186
- Assert presence of profile chunks after shutdown by @alexander-alderman-webb in #6174
- 🚀 🤖 Update test matrix with new releases (04/29) by @github-actions in #6173
- ⚡️ Limit
update-toxaction to master branch by @alexander-alderman-webb in #6172 - Expand scrubbing by @sentrivana in #6161
- Remove Python 2 compat from qualname_from_function by @ericapisani in #6137
- 🚀 Update test matrix with new releases (04/27) by @alexander-alderman-webb in #6146
- ✅ Raise shutdown timeout in aws lambda tests by @sentrivana in #6129
- ✅ Join thread in continuous profiler test by @alexander-alderman-webb in #6125
- 🚀 🤖 Update test matrix with new releases (04/20) by @github-actions in #6100
Other
- ✂ removed universal bdist_wheel option by @Muskaan436 in #6197
- ⚡️ Update CHANGELOG.md by @sentrivana in 689cb97e
- 🚀 release: 2.59.0 by @sentrivana in 397dda91
- Record
-
v2.58.0 Changes
April 13, 2026🆕 New Features ✨
- (ai) Redact base64 data URLs in image_url content blocks by @ericapisani in #5953
- (integrations) Instrument pyreqwest tracing by @servusdei2018 in #5682
- (litellm) Add async callbacks by @alexander-alderman-webb in #5969
🐛 Bug Fixes 🐛
Anthropic
- Capture exceptions for
stream()calls by @alexander-alderman-webb in #5950 - Stop setting transaction status when child span fails by @alexander-alderman-webb in #5717
- Only finish relevant spans in .create() patches by @alexander-alderman-webb in #5716
Pydantic Ai
- Adapt import for new library versions by @alexander-alderman-webb in #5984
- 👉 Use first-class hooks when available by @alexander-alderman-webb in #5947
Other
- (huggingface_hub) Stop setting transaction status when a child span fails by @Zenithatic in #5952
- (litellm) Avoid double span exits when streaming by @alexander-alderman-webb in #5933
- (wsgi) Respect HTTP_X_FORWARDED_PROTO in request.url construction by @sl0thentr0py in #5963
Internal Changes 🔧
Litellm
- ✅ Replace mocks with
httpxtypes in rate-limit test by @alexander-alderman-webb in #5975 - ✅ Replace mocks with
httpxtypes in embedding tests by @alexander-alderman-webb in #5970 - ✅ Replace mocks with
httpxtypes in nonstreamingcompletion()tests by @alexander-alderman-webb in #5937 - ✂ Remove dead attributes by @alexander-alderman-webb in #5985
Other
- 🚚 (ai) Remove
gen_ai.tool.typespan attribute by @ericapisani in #5964 - 🔀 (anthropic) Separate sync and async .create() patches by @alexander-alderman-webb in #5715
- 🗄 (openai) Split token counting by API for easier deprecation by @ericapisani in #5930
- 🚚 (openai-agents) Remove error attributes by @alexander-alderman-webb in #5986
- (opentelemetry) Ignore mypy error by @alexander-alderman-webb in #5927
- 🚀 🤖 Update test matrix with new releases (04/13) by @github-actions in #5983
- 🛠 Fix license metadata in setup.py by @sl0thentr0py in #5934
- ⚡️ Update validate-pr workflow by @stephanie-anderson in #5931
Other
- ✅ Handle
Nonespan context in the span processor and pin tokenizers version for anthropic tests on Python 3.8 by @alexander-alderman-webb in #5967
-
v2.58.0.a1 Changes
April 21, 2026🆕 New Features ✨
- (ci) Cancel in-progress PR workflows on new commit push by @joshuarli in #5994
- Send GenAI spans as V2 envelope items by @alexander-alderman-webb in #6079
🐛 Bug Fixes 🐛
- (google_genai) Redact binary data in inline_data and fix multi-part message extraction by @ericapisani in #5977
- (profiler) Stop nulling buffer on teardown by @ericapisani in #6075
Internal Changes 🔧
Anthropic
- ⏪ Revert input truncation by @alexander-alderman-webb in #6113
- ⏪ Revert input transformation by @alexander-alderman-webb in #6108
Google Genai
- ⏪ Revert input truncation by @alexander-alderman-webb in #6111
- ⏪ Revert input transformation by @alexander-alderman-webb in #6105
Langchain
- ⏪ Revert input truncation by @alexander-alderman-webb in #6115
- ⏪ Revert input transformation by @alexander-alderman-webb in #6109
Litellm
- ⏪ Revert input truncation by @alexander-alderman-webb in #6112
- ⏪ Revert input transformation by @alexander-alderman-webb in #6107
Pydantic Ai
- ⏪ Revert input truncation by @alexander-alderman-webb in #6106
- ✂ Remove dead
Model.requestpatch by @alexander-alderman-webb in #5956
Other
- ⏪ (ai) Revert binary blob truncation by @alexander-alderman-webb in #6110
- ⏪ (langgraph) Revert input truncation by @alexander-alderman-webb in #6114
- ⏪ (openai) Revert input truncation by @alexander-alderman-webb in #6117
- ⏪ (openai-agents) Revert input truncation by @alexander-alderman-webb in #6116
- Set explicit base-branch for codecov action by @ericapisani in #5992
-
v2.57.0 Changes
March 31, 2026🆕 New Features ✨
Langchain
- Set
gen_ai.operation.nameandgen_ai.pipeline.nameon LLM spans by @ericapisani in #5849 - Broaden AI provider detection beyond OpenAI and Anthropic by @ericapisani in #5707
- Update LLM span operation to
gen_ai.generate_textby @ericapisani in #5796
Other
🐛 Bug Fixes 🐛
Openai
- Only wrap types with
_iteratorfor streamed responses by @alexander-alderman-webb in #5917 - Always set
gen_ai.response.streamingfor Responses by @alexander-alderman-webb in #5697 - Simplify Responses input handling by @alexander-alderman-webb in #5695
- Use
max_output_tokensfor Responses API by @alexander-alderman-webb in #5693 - Always set
gen_ai.response.streamingfor Completions by @alexander-alderman-webb in #5692 - Simplify Completions input handling by @alexander-alderman-webb in #5690
- Simplify embeddings input handling by @alexander-alderman-webb in #5688
Other
- (google-genai) Guard response extraction by @alexander-alderman-webb in #5869
- Add cycle detection to exceptions_from_error by @ericapisani in #5880
Internal Changes 🔧
Ai
- Remove unused GEN_AI_PIPELINE operation constant by @ericapisani in #5886
- Rename generate_text to text_completion by @ericapisani in #5885
Langchain
- ➕ Add text completion test by @alexander-alderman-webb in #5740
- ➕ Add tool execution test by @alexander-alderman-webb in #5739
- ➕ Add basic agent test with Responses call by @alexander-alderman-webb in #5726
- 🤡 Replace mocks with
httpxtypes by @alexander-alderman-webb in #5724 - Consolidate span origin assertion by @alexander-alderman-webb in #5723
- Consolidate available tools assertion by @alexander-alderman-webb in #5721
Openai
- 🤡 Replace mocks with httpx types for streaming Responses by @alexander-alderman-webb in #5882
- 🤡 Replace mocks with httpx types for streaming Completions by @alexander-alderman-webb in #5879
- 🚚 Move input handling code into API-specific functions by @alexander-alderman-webb in #5687
Other
- (asyncpg) Normalize query whitespace in integration by @ericapisani in #5855
- Exclude compromised litellm versions by @alexander-alderman-webb in #5876
- Set
-
v2.56.0 Changes
March 24, 2026🆕 New Features ✨
- (asgi) Add option to disable suppressing chained exceptions by @alexander-alderman-webb in #5714
- 🔊 (logging) Separate ignore lists for events/breadcrumbs and sentry logs by @sl0thentr0py in #5698
🐛 Bug Fixes 🐛
Anthropic
- 👻 Set exception info on streaming span when applicable by @alexander-alderman-webb in #5683
- Patch
AsyncStream.close()andAsyncMessageStream.close()to finish spans by @alexander-alderman-webb in #5675 - Patch
Stream.close()andMessageStream.close()to finish spans by @alexander-alderman-webb in #5674
Other
- (starlette) Catch Jinja2Templates ImportError by @alexander-alderman-webb in #5741
📚 Documentation 📚
- ➕ Add note on AI PRs to CONTRIBUTING.md by @sentrivana in #5696
Internal Changes 🔧
- 📌 Pin GitHub Actions to full-length commit SHAs by @joshuarli in #5781
- ➕ Add
-latestalias for each integration test suite by @sentrivana in #5706 - 👉 Use date-based branch names for toxgen PRs by @sentrivana in #5704
- 🚀 🤖 Update test matrix with new releases (03/19) by @github-actions in #5703
- ➕ Add client report tests for span streaming by @sentrivana in #5677
Other
- ⚡️ Update CHANGELOG.md by @sentrivana in #5685
-
v2.55.0 Changes
March 17, 2026🆕 New Features ✨
Anthropic
- Record finish reasons in AI monitoring spans by @ericapisani in #5678
- Emit
gen_ai.chatspans for asynchronousmessages.stream()by @alexander-alderman-webb in #5572 - 🔀 Emit AI Client Spans for synchronous
messages.stream()by @alexander-alderman-webb in #5565 - Set gen_ai.response.id span attribute by @ericapisani in #5662
- ➕ Add
gen_ai.systemattribute to spans by @ericapisani in #5661
Pydantic Ai
- 👌 Support ImageUrl content type in span instrumentation by @ericapisani in #5629
- ➕ Add tool description to execute_tool spans by @ericapisani in #5596
Other
- (crons) Add owner field to MonitorConfig by @julwhitney13 in #5610
- (otlp) Add collector_url option to OTLPIntegration by @sl0thentr0py in #5603
🐛 Bug Fixes 🐛
- (ai) Truncate list-based message content in AI monitoring by @ericapisani in #5631
- (anthropic) Close span on
GeneratorExitby @alexander-alderman-webb in #5643 - (celery) Propagate user-set headers by @sentrivana in #5581
- (langchain) Wrap finish_reason in array for gen_ai span attribute by @ericapisani in #5666
- 🌲 (logging) Fix deadlock in log batcher by @sentrivana in #5684
- (profiler) Prevent buffer race condition during rapid start/stop cycles by @ericapisani in #5622
- (utils) Avoid double serialization of strings in safe_serialize by @ericapisani in #5587
- Enable unused import ruff check and fix unused imports by @sentrivana in #5652
📚 Documentation 📚
- 🚚 (openai-agents) Remove inapplicable comment by @alexander-alderman-webb in #5495
- ➕ Add AGENTS.md by @sentrivana in #5579
- ➕ Add
set_attributeexample to changelog by @sentrivana in #5578
Internal Changes 🔧
Anthropic
- Check system and response ID attributes on spans created by
stream()by @alexander-alderman-webb in #5665 - Skip accumulation logic for unexpected types in streamed response by @alexander-alderman-webb in #5564
- Factor out streamed result handling by @alexander-alderman-webb in #5563
- Stream valid JSON by @alexander-alderman-webb in #5641
- 🤡 Stop mocking response iterator by @alexander-alderman-webb in #5573
Openai Agents
- Do not fail on new tool fields by @alexander-alderman-webb in #5625
- Stop expecting a specific function name by @alexander-alderman-webb in #5623
- Set streaming header when library uses
with_streaming_response()by @alexander-alderman-webb in #5583 - 🤡 Replace mocks with
httpxfor streamed responses by @alexander-alderman-webb in #5580 - ✅ Replace mocks with
httpxin non-MCP tool tests by @alexander-alderman-webb in #5602 - ✅ Replace mocks with
httpxin MCP tool tests by @alexander-alderman-webb in #5605 - ✅ Replace mocks with
httpxin handoff tests by @alexander-alderman-webb in #5604 - ✅ Replace mocks with
httpxin API error test by @alexander-alderman-webb in #5601 - ✅ Replace mocks with
httpxin non-error single-response tests by @alexander-alderman-webb in #5600 - ✂ Remove test for unreachable state by @alexander-alderman-webb in #5584
- Expect
namespacetool field for newopenaiversions by @alexander-alderman-webb in #5599
Other
- (graphene) Simplify span creation by @sentrivana in #5648
- (httpx) Resolve type checking failures by @alexander-alderman-webb in #5626
- 📜 (pyramid) Support alpha suffixes in version parsing by @alexander-alderman-webb in #5618
- (rust) Don't implement separate scope management by @sentrivana in #5639
- (strawberry) Simplify span creation by @sentrivana in #5647
- 🚀 🤖 Update test matrix with new releases (03/16) by @github-actions in #5671
- ✂ Remove custom warden action by @sentrivana in #5653
- ➕ Add
httpxto linting requirements by @alexander-alderman-webb in #5644 - ✂ Remove CodeQL action by @sentrivana in #5616
- 📦 Normalize dots in package names in
populate_tox.pyby @alexander-alderman-webb in #5574 - Do not run actions on
potel-baseby @sentrivana in #5614
-
v2.54.0 Changes
March 02, 2026🆕 New Features ✨
- 🚚 Add
set_attribute,remove_attributeto global API by @sentrivana in #5555
🐛 Bug Fixes 🐛
Openai
- Attach response model with streamed Completions API by @alexander-alderman-webb in #5557
- Attach response model with streamed Responses API by @alexander-alderman-webb in #5554
- Avoid consuming iterables passed to the Completions API by @alexander-alderman-webb in #5489
- Avoid consuming iterables passed to the Embeddings API by @alexander-alderman-webb in #5491
Other
- (anthropic) Fix token accounting by @shellmayr in #5490
- 🚚 (google-genai) Remove agent spans for simple requests by @alexander-alderman-webb in #5443
- (grpc) Read method from handler_call_details for grpcio >= 1.76 compat by @yeung108 in #5521
- (httpx) Correctly append baggage in async client by @sentrivana in #5530
- (pydantic-ai) Adapt to missing
ToolManager._call_toolby @sentrivana in #5522 - 🏗 (utils) Use HEROKU_BUILD_COMMIT env var for default release by @ericapisani in #5499
- (wsgi) Do not wrap file responses when uWSGI offload-threads is enabled by @ericapisani in #5556
📚 Documentation 📚
- ➕ Add troubleshooting note for editable installs with uWSGI by @ericapisani in #5552
- ➕ Add debugging advice by @alexander-alderman-webb in #5517
- 🆕 New integration guide by @alexander-alderman-webb in #5476
Internal Changes 🔧
Agents
- ➕ Add security-review skill to agent configuration by @ericapisani in #5498
- ➕ Add sentry skills to be used by warden in CI reviews by @ericapisani in #5485
Openai
- Only handle streamed results when applicable by @alexander-alderman-webb in #5553
- Extract input in API-specific functions by @alexander-alderman-webb in #5546
- Separate output handling by @alexander-alderman-webb in #5543
Openai Agents
- Remove
set_data_normalizedfor primitive attributes by @alexander-alderman-webb in #5509 - Expect new tool fields by @alexander-alderman-webb in #5471
Other
- 🔧 (ai) Add configuration for dotagents by @ericapisani in #5480
- (anthropic) Remove
set_data_normalizedfor primitive attributes by @alexander-alderman-webb in #5504 - 🔧 (github) Add warden configuration by @ericapisani in #5484
- (pydantic-ai) Remove
set_data_normalizedfor thegen_ai.response.modelattribute by @alexander-alderman-webb in #5512 - (repo) Add .serena to .gitignore by @ericapisani in #5464
- ⚡️ Updated codecov.yml by @MathurAditya724 in #5571
- 🚀 🤖 Update test matrix with new releases (02/24) by @github-actions in #5524
- 🚀 🤖 Update test matrix with new releases (02/23) by @github-actions in #5503
- 🚀 🤖 Update test matrix with new releases (02/19) by @github-actions in #5483
- 🚀 🤖 Update test matrix with new releases (02/18) by @github-actions in #5475
- 🚚 Add