|
1 | 1 | # Changelog |
2 | 2 |
|
| 3 | +## 2.67.0 |
| 4 | + |
| 5 | +### New Features ✨ |
| 6 | + |
| 7 | +#### Batcher |
| 8 | + |
| 9 | +- Add global flush trigger based on summed size estimates by @alexander-alderman-webb in [#7144](https://github.com/getsentry/sentry-python/pull/7144) |
| 10 | +- Add hard span limit by @alexander-alderman-webb in [#7143](https://github.com/getsentry/sentry-python/pull/7143) |
| 11 | + |
| 12 | +#### Integrations |
| 13 | + |
| 14 | +- Add span for DRF authentication by @mgaligniana in [#6984](https://github.com/getsentry/sentry-python/pull/6984) |
| 15 | + |
| 16 | +#### Langchain |
| 17 | + |
| 18 | +- Record reasoning token usage attribute by @alexander-alderman-webb in [#7136](https://github.com/getsentry/sentry-python/pull/7136) |
| 19 | +- Record cached token usage attributes by @alexander-alderman-webb in [#7132](https://github.com/getsentry/sentry-python/pull/7132) |
| 20 | + |
| 21 | +#### Openai |
| 22 | + |
| 23 | +- Set `gen_ai.tool.definitions` for the Responses API by @alexander-alderman-webb in [#6951](https://github.com/getsentry/sentry-python/pull/6951) |
| 24 | +- Set `gen_ai.tool.definitions` for the Chat Completions API by @alexander-alderman-webb in [#6950](https://github.com/getsentry/sentry-python/pull/6950) |
| 25 | +- Add `gen_ai.request.reasoning.level` to OpenAI spans by @pabloDeputter in [#6892](https://github.com/getsentry/sentry-python/pull/6892) |
| 26 | + |
| 27 | +#### Streaming |
| 28 | + |
| 29 | +- Support ai_track decorator by @sentrivana in [#6895](https://github.com/getsentry/sentry-python/pull/6895) |
| 30 | +- Promote `before_send_span` to top-level option by @sentrivana in [#6885](https://github.com/getsentry/sentry-python/pull/6885) |
| 31 | +- Make `set_conversation_id` API work by @sentrivana in [#6866](https://github.com/getsentry/sentry-python/pull/6866) |
| 32 | + |
| 33 | +#### Other |
| 34 | + |
| 35 | +- (api) Add top-level `set_attributes` API by @sentrivana in [#6897](https://github.com/getsentry/sentry-python/pull/6897) |
| 36 | +- (aws-lambda) Enable Python 3.14 support to the Lambda layer by @pabloDeputter in [#6916](https://github.com/getsentry/sentry-python/pull/6916) |
| 37 | +- (openai-agents) Set the `gen_ai.tool.definitions` attribute by @alexander-alderman-webb in [#6956](https://github.com/getsentry/sentry-python/pull/6956) |
| 38 | +- (pydantic-ai) Record `gen_ai.output.messages` including `ThinkingPart` by @alexander-alderman-webb in [#7037](https://github.com/getsentry/sentry-python/pull/7037) |
| 39 | +- Add possibility to allowlist integrations in toxgen by @sentrivana in [#6996](https://github.com/getsentry/sentry-python/pull/6996) |
| 40 | + |
| 41 | +### Bug Fixes 🐛 |
| 42 | + |
| 43 | +#### Openai Agents |
| 44 | + |
| 45 | +- Patch correct `run_single_turn_streamed` reference by @alexander-alderman-webb in [#7032](https://github.com/getsentry/sentry-python/pull/7032) |
| 46 | +- Stop destructively wrapping tools by @alexander-alderman-webb in [#6961](https://github.com/getsentry/sentry-python/pull/6961) |
| 47 | + |
| 48 | +#### Tests |
| 49 | + |
| 50 | +- Adapt to new exception propagation behavior in Quart by @sentrivana in [#6995](https://github.com/getsentry/sentry-python/pull/6995) |
| 51 | +- Remove redundant type filters after `capture_items` with args by @sentrivana in [#6867](https://github.com/getsentry/sentry-python/pull/6867) |
| 52 | + |
| 53 | +#### Other |
| 54 | + |
| 55 | +- (aws-lambda) Fix flake in aws lambda tests by @pabloDeputter in [#6937](https://github.com/getsentry/sentry-python/pull/6937) |
| 56 | +- (langchain) Stop double-counting usage in multi-candidate responses by @alexander-alderman-webb in [#7064](https://github.com/getsentry/sentry-python/pull/7064) |
| 57 | +- (mcp) Stop adding the prompt name to arguments by @alexander-alderman-webb in [#6765](https://github.com/getsentry/sentry-python/pull/6765) |
| 58 | +- (pydantic-ai) Stop recording duplicate spans by @alexander-alderman-webb in [#7056](https://github.com/getsentry/sentry-python/pull/7056) |
| 59 | +- (sampling) `sentry-trace` should take precedence over baggage by @sentrivana in [#6863](https://github.com/getsentry/sentry-python/pull/6863) |
| 60 | +- (streaming) Set segment source if unset by @sentrivana in [#6791](https://github.com/getsentry/sentry-python/pull/6791) |
| 61 | +- Do not let exceptions in before_breadcrumb bubble up by @sentrivana in [#7133](https://github.com/getsentry/sentry-python/pull/7133) |
| 62 | +- Correct typo in test function name by @TheGreatApollyon in [#6967](https://github.com/getsentry/sentry-python/pull/6967) |
| 63 | +- Include query string and fragment in `url.full` span attribute by @sentrivana in [#6861](https://github.com/getsentry/sentry-python/pull/6861) |
| 64 | + |
| 65 | +### Documentation 📚 |
| 66 | + |
| 67 | +- Remove AI commit attribution requirement from AGENTS.md by @ericapisani in [#6828](https://github.com/getsentry/sentry-python/pull/6828) |
| 68 | + |
| 69 | +### Internal Changes 🔧 |
| 70 | + |
| 71 | +#### Fastmcp |
| 72 | + |
| 73 | +- Skip SSE test for `fastmcp>=4` by @alexander-alderman-webb in [#6923](https://github.com/getsentry/sentry-python/pull/6923) |
| 74 | +- Remove assertions on `RootModel` instances by @alexander-alderman-webb in [#6909](https://github.com/getsentry/sentry-python/pull/6909) |
| 75 | +- Replace broad `try...except` with `skipif` by @alexander-alderman-webb in [#6922](https://github.com/getsentry/sentry-python/pull/6922) |
| 76 | + |
| 77 | +#### Mcp |
| 78 | + |
| 79 | +- Replace instance patches with middleware by @alexander-alderman-webb in [#6764](https://github.com/getsentry/sentry-python/pull/6764) |
| 80 | +- Remove redundant `mcp.tool.result.is_error` by @alexander-alderman-webb in [#6915](https://github.com/getsentry/sentry-python/pull/6915) |
| 81 | +- Use `mcp_types` package by @alexander-alderman-webb in [#6763](https://github.com/getsentry/sentry-python/pull/6763) |
| 82 | +- Inline `_set_span_output_data()` by @alexander-alderman-webb in [#6762](https://github.com/getsentry/sentry-python/pull/6762) |
| 83 | +- Inline `_get_span_config()` by @alexander-alderman-webb in [#6761](https://github.com/getsentry/sentry-python/pull/6761) |
| 84 | +- Inline `_prepare_handler_data()` by @alexander-alderman-webb in [#6758](https://github.com/getsentry/sentry-python/pull/6758) |
| 85 | +- Separate tool, prompt and resource patches by @alexander-alderman-webb in [#6726](https://github.com/getsentry/sentry-python/pull/6726) |
| 86 | + |
| 87 | +#### Openai Agents |
| 88 | + |
| 89 | +- Stop setting `gen_ai.response.model` on Invoke Agent spans by @alexander-alderman-webb in [#7028](https://github.com/getsentry/sentry-python/pull/7028) |
| 90 | +- Use first class tool hooks when available by @alexander-alderman-webb in [#6994](https://github.com/getsentry/sentry-python/pull/6994) |
| 91 | +- Assert subset of expected dictionary is in `gen_ai.response.tool_calls` by @alexander-alderman-webb in [#6973](https://github.com/getsentry/sentry-python/pull/6973) |
| 92 | +- Stop setting `gen_ai.request.available_tools` on Invoke Agent spans by @alexander-alderman-webb in [#6955](https://github.com/getsentry/sentry-python/pull/6955) |
| 93 | +- Stop setting `gen_ai.request.available_tools` on Execute Tool spans by @alexander-alderman-webb in [#6954](https://github.com/getsentry/sentry-python/pull/6954) |
| 94 | + |
| 95 | +#### Other |
| 96 | + |
| 97 | +- (ai) Route AI integration tests through OpenRouter by @sentry-junior in [#6979](https://github.com/getsentry/sentry-python/pull/6979) |
| 98 | +- (arq) Avoid race between the exception and transaction events by @alexander-alderman-webb in [#7052](https://github.com/getsentry/sentry-python/pull/7052) |
| 99 | +- (aws_lambda) Add ARM64 architecture support for local Lambda testing by @ericapisani in [#7053](https://github.com/getsentry/sentry-python/pull/7053) |
| 100 | +- (deps) Lock file maintenance by @renovate in [#6734](https://github.com/getsentry/sentry-python/pull/6734) |
| 101 | +- (django) Use `iscoroutinefunction` shim in `patch_views()` by @alexander-alderman-webb in [#7024](https://github.com/getsentry/sentry-python/pull/7024) |
| 102 | +- (httpx) Replace deprecated `asyncio.iscoroutinefunction` by @alexander-alderman-webb in [#7023](https://github.com/getsentry/sentry-python/pull/7023) |
| 103 | +- (huggingface-hub) Fix chat completion stream type by @alexander-alderman-webb in [#7070](https://github.com/getsentry/sentry-python/pull/7070) |
| 104 | +- (langchain) Remove `on_agent_finish()` hook by @alexander-alderman-webb in [#7059](https://github.com/getsentry/sentry-python/pull/7059) |
| 105 | +- (pydantic-ai) Use `FunctionModel` for testing output data transformations by @alexander-alderman-webb in [#7036](https://github.com/getsentry/sentry-python/pull/7036) |
| 106 | +- (serializer) Avoid copying the whole Mapping before trimming to `MAX_DATABAG_BREADTH` by @Malkiz223 in [#6783](https://github.com/getsentry/sentry-python/pull/6783) |
| 107 | +- (tests) Replace \_transport_works_cases loop with explicit case list by @ericapisani in [#6978](https://github.com/getsentry/sentry-python/pull/6978) |
| 108 | +- 🤖 Update test matrix with new releases (08/10) by @github-actions in [#7142](https://github.com/getsentry/sentry-python/pull/7142) |
| 109 | +- Pin `litellm<=1.96` for generating test suites by @alexander-alderman-webb in [#7147](https://github.com/getsentry/sentry-python/pull/7147) |
| 110 | +- Unpin Django version for generating test suites by @alexander-alderman-webb in [#7146](https://github.com/getsentry/sentry-python/pull/7146) |
| 111 | +- Move Redis breadcrumbs to integration by @sentrivana in [#7129](https://github.com/getsentry/sentry-python/pull/7129) |
| 112 | +- Move subprocess breadcrumbs to integration by @sentrivana in [#7128](https://github.com/getsentry/sentry-python/pull/7128) |
| 113 | +- Avoid scanning installed packages when MCP SDK is not installed by @mangodxd in [#6865](https://github.com/getsentry/sentry-python/pull/6865) |
| 114 | +- Remove `test-lambda-locally` by @alexander-alderman-webb in [#7069](https://github.com/getsentry/sentry-python/pull/7069) |
| 115 | +- Add `pydantic-ai-slim` to uv typing group by @alexander-alderman-webb in [#7025](https://github.com/getsentry/sentry-python/pull/7025) |
| 116 | +- Add `langchain-base` to uv typing group by @alexander-alderman-webb in [#7016](https://github.com/getsentry/sentry-python/pull/7016) |
| 117 | +- 🤖 Update test matrix with new releases (08/03) by @github-actions in [#6985](https://github.com/getsentry/sentry-python/pull/6985) |
| 118 | +- Mock attributes in redis cluster tests by @sentrivana in [#7022](https://github.com/getsentry/sentry-python/pull/7022) |
| 119 | +- Deprecate `ai_track()` by @alexander-alderman-webb in [#7005](https://github.com/getsentry/sentry-python/pull/7005) |
| 120 | +- Reduce common test suite while not reducing coverage by @ericapisani in [#6972](https://github.com/getsentry/sentry-python/pull/6972) |
| 121 | +- Use top-level options if available by @sentrivana in [#6959](https://github.com/getsentry/sentry-python/pull/6959) |
| 122 | +- Restore wrapped functions in `functions_to_trace` tests by @alexander-alderman-webb in [#6933](https://github.com/getsentry/sentry-python/pull/6933) |
| 123 | +- Pin `mcp<2` for `fastmcp<0.3` by @alexander-alderman-webb in [#6925](https://github.com/getsentry/sentry-python/pull/6925) |
| 124 | +- Pin Python > 3.7 for `huey>=3.3.0` by @alexander-alderman-webb in [#6913](https://github.com/getsentry/sentry-python/pull/6913) |
| 125 | +- Add `httpx` dependency to `mcp` and `fastmcp` tests by @alexander-alderman-webb in [#6905](https://github.com/getsentry/sentry-python/pull/6905) |
| 126 | +- Remove flaky circular references tests by @alexander-alderman-webb in [#6903](https://github.com/getsentry/sentry-python/pull/6903) |
| 127 | +- Remove old Python compat code by @sentrivana in [#6902](https://github.com/getsentry/sentry-python/pull/6902) |
| 128 | +- Add span streaming DSC tests by @sentrivana in [#6884](https://github.com/getsentry/sentry-python/pull/6884) |
| 129 | +- Add streaming logs tests by @sentrivana in [#6880](https://github.com/getsentry/sentry-python/pull/6880) |
| 130 | +- Add streaming API tests by @sentrivana in [#6883](https://github.com/getsentry/sentry-python/pull/6883) |
| 131 | +- Add streaming continous profiler tests by @sentrivana in [#6879](https://github.com/getsentry/sentry-python/pull/6879) |
| 132 | +- Add streaming monitor test by @sentrivana in [#6882](https://github.com/getsentry/sentry-python/pull/6882) |
| 133 | +- Add streaming metrics test by @sentrivana in [#6881](https://github.com/getsentry/sentry-python/pull/6881) |
| 134 | +- Add sample_rand span streaming tests by @sentrivana in [#6781](https://github.com/getsentry/sentry-python/pull/6781) |
| 135 | + |
3 | 136 | ## 2.66.1 |
4 | 137 |
|
5 | 138 | ### Bug Fixes 🐛 |
|
0 commit comments