Releases: getsentry/sentry-python
2.61.0
New Features ✨
-
Add
server.addressto transformed spans whenstream_gen_ai_spans=Trueby @alexander-alderman-webb in #6307 -
Allow integrations to define control flow exceptions by @sentrivana in #6425
-
Disable string truncation for events by default by @alexander-alderman-webb in #6290
Following a previous significant increase of the string truncation limit, we've now completely removed the limit by default.
In case you have large strings in your events, you should now be able to see them.In rare cases, if you have really long strings (or a lot of them), you might see envelopes being dropped because of their size.
If that happens, you can set themax_value_lengthinitoption to the previous value of100_000:sentry_sdk.init( ..., max_value_length=100_000, )
Bug Fixes 🐛
Langchain
- Stop setting transaction status when child span fails by @alexander-alderman-webb in #6301
- Catch
TypeErroronlangchain.agentsimport by @alexander-alderman-webb in #6268
Openai Agents
- Handle
starting_agentkeyword argument in runner patches by @ericapisani in #6428 - Remove hosted MCP tool spans by @alexander-alderman-webb in #6391
- Use
name, notdescriptioninstart_spanby @sentrivana in #6323 - Stop setting transaction status when child span fails by @alexander-alderman-webb in #6303
Pydantic AI
- Stop setting tokens on Invoke Agent spans by @alexander-alderman-webb in #6320
- Stop setting transaction status when child span fails by @alexander-alderman-webb in #6302
- Remove
Agent.run_stream_events()patch by @alexander-alderman-webb in #6281
Strawberry
- Wrap yields in try-except to ensure span cleanup by @ericapisani in #6381
- Fix
AttributeErrorongraphql_spaninresolveby @sentrivana in #6289
Other
-
(anthropic) Do not set
gen_ai.response.modeltoNoneby @alexander-alderman-webb in #6312 -
(asyncpg) Use Sentry span attribute name conventions by @ericapisani in #6306
-
(boto3) Guard setting method by @sentrivana in #6288
-
(cohere) Stop setting transaction status when child span fails by @alexander-alderman-webb in #6300
-
(google-genai) Guard against
Noneresponse ID and response model by @alexander-alderman-webb in #6314 -
(huey) Fix group and chord handling in enqueue by @ericapisani in #6392
-
(integrations) Auto-wrap root gen_ai spans for openai, cohere, langgraph, huggingface_hub by @constantinius in #6285
-
(serializer) Don't call
__iter__on arbitrary sequences by @sentrivana in #6304Previously, we'd attempt to serialize any
Sequenceby walking through it by calling its__iter__function.
We've now changed the serializer to only serialize built-in sequences (like lists, tuples, and sets) to avoid
triggering side-effects from custom__iter__implementations.This might mean some objects might be serialized differently. If you want to continue serializing a specific
custom sequence class the old way, you can register it viasentry_sdk.serializer.add_repr_sequence_type(see
here). -
Memory leak in SentrySpanProcessor by @volodkindv in #6271
Documentation 📚
- (celery) Remove duplicated "is" in
beat.pydocstring by @quyentonndbs in #6266
Internal Changes 🔧
Langchain
- Deduplicate by removing
node.callspec.idmatching by @alexander-alderman-webb in #6426 - Remove
WatchedSpanclass by @alexander-alderman-webb in #6407
Openai Agents
- Deduplicate by removing
node.callspec.idmatching by @alexander-alderman-webb in #6424 - Fix asyncio loop missing for sync tests by @sl0thentr0py in #6412
Pydantic Ai
- Support
Agent.run_stream_events()returning a context manager by @alexander-alderman-webb in #6322 - Remove test without assertions by @alexander-alderman-webb in #6321
Other
- (openai) Deduplicate by removing
node.callspec.idmatching by @alexander-alderman-webb in #6427 - Respect context manager lifecycles in
fake_record_sql_queriesby @alexander-alderman-webb in #6295
2.60.0
Adds a new stream_gen_ai_spans option that controls how gen_ai spans are
sent to Sentry. When set, the SDK extracts all gen_ai spans out of a
transaction and sends them as v2 envelope items.
Enable this option if gen_ai spans are being dropped because the transaction payload exceeds size limits.
import sentry_sdk
sentry_sdk.init(
dsn='https://examplePublicKey@o0.ingest.sentry.io/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
2.59.0a2
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
2.59.0a1
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
2.59.0
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 🐛
We've put additional data that might contain sensitive information, like GraphQL documents, behind the send_default_pii option.
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
2.58.0a1
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
2.58.0
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
2.57.0
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
-
Add experimental async transport by @BYK in #5646
See https://github.com/getsentry/sentry-python/discussions/5919 for details.
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
2.52.0a9
This is an alpha release for internal testing.
2.56.0
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