Conversation
…structure - Updated guidelines to ensure test group and test names read as coherent sentences. - Introduced a structured approach for naming by depth, emphasizing the use of subjects, contexts, variants, and behaviors. - Added examples and anti-patterns to illustrate best practices in test organization and naming.
- Added comprehensive guidelines for identifiers, ordering, formatting, comments, and documentation to improve code consistency and readability. - Included best practices for naming conventions, code structure, and documentation styles to align with the Effective Dart guide. - Emphasized the importance of adhering to these guidelines for new and modified tests.
- Streamlined project structure section by removing table format for a more concise list format. - Updated environment section to include specific Flutter and Dart versions. - Enhanced testing guidelines with clearer commands and descriptions for Dart and Flutter packages. - Added new guidelines for modern Dart language features to promote clarity and reduce boilerplate in code.
denrase
requested changes
Jan 5, 2026
AGENTS.md
Outdated
|
|
||
| ### Test File Organization | ||
|
|
||
| When a test file grows large, consider splitting it into sub-files by context: |
Collaborator
There was a problem hiding this comment.
Probably more of a code-smell if single classes have so many responsibilities what we need to split up test files just to keep it understandable, no?
Contributor
Author
There was a problem hiding this comment.
usually yea, but we do have examples of those like Hub, Client where the test file itself is 1k LoC
we can probably remove this, makes more sense to judge individually
Contributor
Author
|
putting this into draft, I saw some blog posts about writing better |
- Updated AGENTS.md to clarify the structure and purpose of the Sentry Dart/Flutter SDK. - Introduced new documentation files for code guidelines and test conventions, emphasizing best practices for Dart/Flutter development. - Added detailed sections on naming conventions, test structure, and the use of modern Dart features to improve code clarity and maintainability. - Ensured that all new and modified code adheres to these updated guidelines for consistency across the project.
Contributor
Author
|
@denrase updated it |
- Renamed section from "Doc Comments" to "Documentation Comments" for clarity. - Added recommendations for when to write comments, emphasizing the importance of self-documenting code. - Included specific guidelines on documenting public APIs and non-obvious reasoning, while advising against commenting on obvious behavior and providing excessive inline commentary.
denrase
approved these changes
Jan 7, 2026
4 tasks
buenaflor
added a commit
that referenced
this pull request
Feb 16, 2026
* build(deps): bump actions/cache from 4 to 5 (#3423) Bumps [actions/cache](https://github.com/actions/cache) from 4 to 5. - [Release notes](https://github.com/actions/cache/releases) - [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md) - [Commits](actions/cache@v4...v5) --- updated-dependencies: - dependency-name: actions/cache dependency-version: '5' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * build(deps): bump actions/upload-artifact from 5 to 6 (#3399) Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 5 to 6. - [Release notes](https://github.com/actions/upload-artifact/releases) - [Commits](actions/upload-artifact@v5...v6) --- updated-dependencies: - dependency-name: actions/upload-artifact dependency-version: '6' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * enh(internal): internal logging api (#3425) * feat(logging): introduce SentryDebugLogger for enhanced diagnostic logging This commit adds a new `SentryDebugLogger` class to provide a lightweight, isolate-compatible logging solution for the Sentry SDK. The logger supports various log levels and can be configured for each isolate. Additionally, it integrates with `SentryOptions` to enable logging based on the debug flag and diagnostic level. The existing `IsolateLogger` has been removed in favor of this new implementation, streamlining the logging process across the SDK. - Added `SentryDebugLogger` for structured logging. - Updated `SentryOptions` to configure the logger based on debug settings. - Replaced instances of `IsolateLogger` with `SentryDebugLogger` in relevant files. - Added unit tests for the new logger functionality. * refactor(sentry): remove debug logger warning from Sentry initialization This commit removes a debug logger warning message from the Sentry class during initialization. The change helps to clean up the logging output and streamline the initialization process without affecting functionality. * docs(debug_logger): update example usage and clarify instance requirements This commit updates the documentation for the `SentryDebugLogger` to reflect the correct variable name in the example and adds a note emphasizing that each package should have at least one top-level instance of the logger. This enhances clarity for users implementing the logger in their applications. * refactor(sentry): remove unused debug logger import and enhance debug logger documentation This commit removes the unused import of the debug logger from the Sentry class and adds an internal annotation to the `SentryDebugLogger` in the debug logger file. Additionally, a comment is added in the isolate worker to suppress a lint warning related to the internal member usage, improving code clarity and maintainability. * refactor(sentry): remove unused debug logger import from sentry_options.dart This commit removes the unused import of the debug logger from the `sentry_options.dart` file, contributing to cleaner code and improved maintainability. * docs(debug_logger): correct example usage in documentation This commit updates the example usage in the `SentryDebugLogger` documentation to reflect the correct variable name, enhancing clarity for users implementing the logger in their applications. * Update * refactor(debug_logger): remove unused category parameter from logging methods This commit simplifies the `SentryDebugLogger` class by removing the unused `category` parameter from the `debug`, `info`, `warning`, `error`, and `fatal` logging methods. This change enhances code clarity and reduces unnecessary complexity in the logging interface. * refactor(debug_logger_test): remove test for category logging This commit removes the test case that checks logging with a category parameter from the `debug_logger_test.dart` file. This change aligns with the recent refactor of the `SentryDebugLogger` class, which eliminated the unused category parameter, thereby enhancing the clarity and relevance of the test suite. * refactor(android_replay_handler): enhance debug logging with context This commit updates the logging statements in the `_AndroidReplayHandler` class to include the debug name from the configuration. This change improves the clarity of log messages by providing context for unexpected messages and payload types, aiding in debugging and monitoring efforts. * refactor(debug_logger_test): enhance test coverage and improve naming conventions This commit refactors the `debug_logger_test.dart` file by renaming test groups for clarity and adding new tests to verify the behavior of `SentryOptions.debug` and `SentryOptions.diagnosticLevel`. The changes improve the organization and comprehensiveness of the test suite, ensuring better validation of the `SentryDebugLogger` configuration and logging functionality. * refactor(sentry_options): improve debug logger configuration and diagnostic level handling This commit refactors the `SentryOptions` class to enhance the configuration of the debug logger. The `diagnosticLevel` setter now updates the logger's minimum level dynamically, ensuring that changes to the diagnostic level are reflected immediately. Additionally, the debug logger configuration is encapsulated in a private method for better organization and clarity. * refactor(logging): replace SentryDebugLogger with SentryInternalLogger and enhance logging functionality This commit refactors the logging mechanism by replacing the `SentryDebugLogger` with the new `SentryInternalLogger` across the codebase. The `SentryInternalLogger` provides improved logging capabilities, including compile-time constants for release, profile, and debug modes, ensuring better tree-shaking and performance. Additionally, the associated tests have been updated to validate the new logger's behavior, enhancing overall logging clarity and maintainability. * refactor(logging): remove SentryDebugLogger and its import from the codebase This commit removes the `SentryDebugLogger` class and its associated import from `sentry_options.dart`, streamlining the logging functionality in the Sentry SDK. This change is part of the ongoing effort to enhance the logging mechanism by transitioning to the `SentryInternalLogger`, which offers improved capabilities and performance. * refactor(sentry_options): update logger configuration methods to use SentryInternalLogger This commit modifies the `SentryOptions` class to replace calls to the deprecated `_configureDebugLogger` method with `_configureInternalLogger`. This change aligns with the recent transition to the `SentryInternalLogger`, ensuring consistent logging configuration and improving overall code clarity. * refactor(logging): rename debugLogger to internalLogger for consistency This commit renames the `debugLogger` to `internalLogger` across the codebase, including tests and various components. This change aligns with the recent transition to the `SentryInternalLogger`, ensuring consistent naming and improving clarity in the logging functionality. * refactor(logging): remove debugLogger test and update logging references to internalLogger This commit removes the test for the `debugLogger` constant in `internal_logger_test.dart` and updates references from `debugLogger` to `internalLogger` in the `_AndroidEnvelopeHandler` and `_AndroidReplayHandler` classes. These changes ensure consistency in the logging implementation and align with the recent transition to the `SentryInternalLogger`. * refactor(logging): move _defaultLogOutput method to SentryInternalLogger This commit relocates the `_defaultLogOutput` method into the `SentryInternalLogger` class, enhancing the organization of the logging functionality. This change improves code clarity and aligns with the ongoing refactor to streamline the logging mechanism within the Sentry SDK. * refactor(logging): improve error logging format in isolate_worker This commit enhances the error logging format in the `isolate_worker.dart` file by improving the readability of the log statement. The changes ensure that the error and stack trace are clearly separated, contributing to better debugging and monitoring of isolate message handling failures. * fix(android): Envelope worker not starting when `autoInitializeNativeSdk` is disabled (#3420) * Update * Update CHANGELOG * Enhance AndroidEnvelopeSender to buffer envelopes when worker is not started and flush them upon starting. Update tests to reflect new buffering behavior and log changes from warning to info level. * Refactor SentryNativeJava tests: Split tests into separate files for VM and web environments. Introduce new test file for SentryNativeJava with ReplaySizeAdjustment and EnvelopeSender initialization tests. Remove redundant web stubs and streamline imports. * Refactor AndroidEnvelopeSender: Remove pending envelopes buffering and streamline envelope capture logic. Ensure envelopes are sent directly when the worker is available, and adjust logging for envelope capture in the main isolate. Update SentryNativeJava to start the envelope sender conditionally. * Enhance AndroidEnvelopeSender to manage closed state and improve envelope capture logic. Introduce a flag to prevent envelope capture after closure and update logging to use a required logger parameter. Adjust tests to reflect changes in behavior when the worker is not started. * Refactor AndroidEnvelopeSender: Adjust captureEnvelope method to ensure client assignment occurs after closed state check. This change improves clarity and maintains the integrity of the envelope sending process. * Fix AndroidEnvelopeSender start method to prevent spawning a worker if already closed. Update tests to reflect the expected spawn count when the sender is closed. * Update Android envelope capture test to assert behavior when the native channel is unavailable. Introduced a matcher for improved error handling in the captureEnvelope method. * Refactor AndroidEnvelopeSender start method to ensure proper closure handling during worker spawning. Introduce a guard clause to close the worker if the sender is already closed, enhancing stability and preventing resource leaks. * Refactor AndroidEnvelopeSender test to clarify logging behavior when sending envelopes in the main isolate. Update test description for improved readability and understanding of the expected functionality. * refactor(AndroidEnvelopeSender): update constructor to use SentryOptions and improve logging This commit refactors the `AndroidEnvelopeSender` class to replace the `_options` parameter with `SentryOptions` in the constructor. It also enhances the logging mechanism by utilizing `internalLogger` for logging messages related to envelope capture. The `_captureEnvelope` method has been updated to streamline error handling and improve clarity in logging, ensuring better maintainability and consistency across the codebase. * refactor(AndroidEnvelopeSender test): enhance logging configuration for envelope sending This commit updates the logging mechanism in the `AndroidEnvelopeSender` test to utilize the new `SentryInternalLogger`. The changes include removing the previous debug options and configuring the logger to capture logs with improved structure and clarity. This refactor aims to enhance the maintainability and consistency of logging behavior during envelope sending in the main isolate. * release: 9.9.2 * chore(agents): Add `AGENTS.md` (#3426) * Update * Refine test naming conventions in AGENTS.md for improved clarity and structure - Updated guidelines to ensure test group and test names read as coherent sentences. - Introduced a structured approach for naming by depth, emphasizing the use of subjects, contexts, variants, and behaviors. - Added examples and anti-patterns to illustrate best practices in test organization and naming. * Enhance Dart code design guidelines in AGENTS.md - Added comprehensive guidelines for identifiers, ordering, formatting, comments, and documentation to improve code consistency and readability. - Included best practices for naming conventions, code structure, and documentation styles to align with the Effective Dart guide. - Emphasized the importance of adhering to these guidelines for new and modified tests. * Refactor AGENTS.md for improved clarity and structure - Streamlined project structure section by removing table format for a more concise list format. - Updated environment section to include specific Flutter and Dart versions. - Enhanced testing guidelines with clearer commands and descriptions for Dart and Flutter packages. - Added new guidelines for modern Dart language features to promote clarity and reduce boilerplate in code. * Enhance agent documentation and testing guidelines - Updated AGENTS.md to clarify the structure and purpose of the Sentry Dart/Flutter SDK. - Introduced new documentation files for code guidelines and test conventions, emphasizing best practices for Dart/Flutter development. - Added detailed sections on naming conventions, test structure, and the use of modern Dart features to improve code clarity and maintainability. - Ensured that all new and modified code adheres to these updated guidelines for consistency across the project. * Update documentation comments guidelines in code-guidelines.md - Renamed section from "Doc Comments" to "Documentation Comments" for clarity. - Added recommendations for when to write comments, emphasizing the importance of self-documenting code. - Included specific guidelines on documenting public APIs and non-obvious reasoning, while advising against commenting on obvious behavior and providing excessive inline commentary. * build(deps): bump aws-sdk-s3 from 1.203.0 to 1.208.0 in /metrics (#3428) Bumps [aws-sdk-s3](https://github.com/aws/aws-sdk-ruby) from 1.203.0 to 1.208.0. - [Release notes](https://github.com/aws/aws-sdk-ruby/releases) - [Changelog](https://github.com/aws/aws-sdk-ruby/blob/version-3/gems/aws-sdk-s3/CHANGELOG.md) - [Commits](https://github.com/aws/aws-sdk-ruby/commits) --- updated-dependencies: - dependency-name: aws-sdk-s3 dependency-version: 1.208.0 dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * build(deps): bump aws-sdk-s3 in /packages/flutter/example/ios (#3417) Bumps [aws-sdk-s3](https://github.com/aws/aws-sdk-ruby) from 1.203.0 to 1.208.0. - [Release notes](https://github.com/aws/aws-sdk-ruby/releases) - [Changelog](https://github.com/aws/aws-sdk-ruby/blob/version-3/gems/aws-sdk-s3/CHANGELOG.md) - [Commits](https://github.com/aws/aws-sdk-ruby/commits) --- updated-dependencies: - dependency-name: aws-sdk-s3 dependency-version: 1.208.0 dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * build(deps): bump ruby/setup-ruby from 1.268.0 to 1.278.0 (#3430) Bumps [ruby/setup-ruby](https://github.com/ruby/setup-ruby) from 1.268.0 to 1.278.0. - [Release notes](https://github.com/ruby/setup-ruby/releases) - [Changelog](https://github.com/ruby/setup-ruby/blob/master/release.rb) - [Commits](ruby/setup-ruby@8aeb6ff...4c24fa5) --- updated-dependencies: - dependency-name: ruby/setup-ruby dependency-version: 1.278.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore: update scripts/update-symbol-collector.sh to 2.3.1 (#3385) Co-authored-by: GitHub <noreply@github.com> * build(deps): bump reactivecircus/android-emulator-runner (#3328) Bumps [reactivecircus/android-emulator-runner](https://github.com/reactivecircus/android-emulator-runner) from 2.34.0 to 2.35.0. - [Release notes](https://github.com/reactivecircus/android-emulator-runner/releases) - [Changelog](https://github.com/ReactiveCircus/android-emulator-runner/blob/main/CHANGELOG.md) - [Commits](ReactiveCircus/android-emulator-runner@1dcd009...b530d96) --- updated-dependencies: - dependency-name: reactivecircus/android-emulator-runner dependency-version: 2.35.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Giancarlo Buenaflor <giancarlo_buenaflor@yahoo.com> * chore: update metrics/flutter.properties to 3.38.5 (#3387) Co-authored-by: GitHub <noreply@github.com> * build(deps): bump actions/checkout from 4 to 6 (#3365) Bumps [actions/checkout](https://github.com/actions/checkout) from 4 to 6. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](actions/checkout@v4...v6) --- updated-dependencies: - dependency-name: actions/checkout dependency-version: '6' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Giancarlo Buenaflor <giancarlo_buenaflor@yahoo.com> * chore: update packages/flutter/scripts/update-native.sh to 0.12.3 (#3438) Co-authored-by: GitHub <noreply@github.com> * Add claude settings (#3445) * Add `CLAUDE.md` symlink to `AGENTS.md` * Move `TelemetryProcessor` from span-first branch and replace `LogBatcher` (#3448) * Add TelemetryProcessor for span and log buffering Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com> * Remove SpanV2 and TraceLifecycle dependencies - Remove addSpan method from TelemetryProcessor interface - Remove span buffer from DefaultTelemetryProcessor - Remove captureSpan method from SentryClient - Remove traceLifecycle property from SentryOptions - Remove span imports and exports - Update mocks to remove span-related code Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com> * Remove span-related tests from sentry_client_test Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com> * Remove span-related processor tests Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com> * Remove span import from Flutter mocks Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com> * Fix wiring up * Update * Update * Update CHANGELOG * Update * Remove logbatcher * Polish --------- Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com> * chore(deps): update Flutter SDK (metrics) to v3.38.7 (#3437) * chore: update metrics/flutter.properties to 3.38.7 * update * update * Update --------- Co-authored-by: GitHub <noreply@github.com> Co-authored-by: Giancarlo Buenaflor <giancarlobuenaflor97@gmail.com> * fix: update kotlin version handling in android (#3436) * update kotlin version handling in android build scripts for CI compatibility * Fix Kotlin version format in workflow file * Update * Update * Update * Remove CI override comment for Kotlin language version Removed comment about allowing CI to override Kotlin language version. * release: 9.10.0 * Update Xcode version to 16.4 in workflow (#3452) * fix(ci): failing package-analysis (#3453) * Fix analyze * Fix analyze * Fix analyze * Fix analyze * Fix analyze * Fix analyze * Fix analyze * Fix analyze * Fix analyze * Fix analyze * Refactor Pana score check logic in analyze.yml * chore: ignore local Claude settings (#3462) Add .claude/settings.local.json to .gitignore to prevent committing local Claude Code configuration. * chore: update packages/flutter/scripts/update-android.sh to 8.30.0 (#3451) Co-authored-by: GitHub <noreply@github.com> * feat: trace connected metrics (#3450) Adds trace connected metrics feature to Dart --------- Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com> * refactor(log): make implementation consistent with metrics and span-first (#3463) Make log implementation consistent with metrics and span-first Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com> * build(deps): bump actions/setup-java from 4 to 5 (#3461) Bumps [actions/setup-java](https://github.com/actions/setup-java) from 4 to 5. - [Release notes](https://github.com/actions/setup-java/releases) - [Commits](actions/setup-java@v4...v5) --- updated-dependencies: - dependency-name: actions/setup-java dependency-version: '5' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * feat(flutter): Add captureNativeFailedRequests option for iOS/macOS (#3472) Add a new `captureNativeFailedRequests` option to control native HTTP failed request capturing independently from `captureFailedRequests`. This separation allows users to: - Keep Dart-side failed request capturing enabled while disabling native - Or vice versa, based on their needs For backwards compatibility, `captureNativeFailedRequests` defaults to `null`, which falls back to the value of `captureFailedRequests`. This ensures existing users who set `captureFailedRequests = false` will still have native capturing disabled as expected. * release: 9.11.0-beta.1 * chore: update GitHub Actions workflows to use updater v3 (#3468) * chore: update GitHub Actions workflows to use new updater version Refactor the update-deps.yml workflow to utilize the latest version of the updater action, improving the structure and permissions for dependency updates across Android, Cocoa, JavaScript, Native, and Symbol Collector jobs. * chore: add pull request trigger for update-deps.yml workflow Include a pull request trigger in the update-deps.yml workflow for testing purposes, while maintaining existing push configurations. * chore: update update-deps.yml to use ssh-key instead of api-token Refactor the update-deps.yml workflow to replace the api-token with ssh-key for Android, Cocoa, JavaScript, Native, and Symbol Collector jobs, enhancing security and access management. * Update * Fix cocoa * Fix formatting in update-deps.yml permissions section * Modify update-deps workflow triggers Removed pull_request trigger from update-deps workflow. * Fix cocoa * Update * Update * Disable wasm runner for now (#3478) * ci(testflight): Update to Xcode 26.2 (#3479) Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com> * ref(dart): Remove unused beforeMetricCallback (#3484) Remove dead code that was never used in the codebase. The BeforeMetricCallback typedef and beforeMetricCallback field in SentryOptions had no references anywhere in the SDK. Co-authored-by: Claude <noreply@anthropic.com> * ref(tracing-instrumentation): Introduce internal instrumentation abstraction for packages (#3488) * feat(tracing): Introduce internal instrumentation API for Sentry - Added `InstrumentationSpan` and `LegacyInstrumentationSpan` classes to provide a backend-agnostic abstraction for tracing. - Implemented `InstrumentationSpanFactory` for creating spans, allowing for future flexibility in span implementations. - Enhanced `SentryOptions` to include a `spanFactory` for custom span creation. - Updated various components to utilize the new instrumentation API, including `SentryInstrumentation` and `TransactionInstrumentation`. - Refactored existing database executor and batch classes to support the new instrumentation spans. This update improves the tracing capabilities and prepares the codebase for future enhancements in span management. * refactor(tracing): Simplify transaction instrumentation documentation - Removed outdated comments and example usage from the `TransactionInstrumentation` class. - Clarified the behavior of transaction methods by streamlining the documentation. - Enhanced code readability and maintainability by focusing on essential information. This update improves the clarity of the transaction instrumentation API, making it easier for developers to understand its usage. * Update * Update * Update * Update * Update * refactor(tracing): Improve transaction stack management in Sentry instrumentation - Ensured that the transaction stack maintains nesting invariants by always pushing a null value when no parent exists. - Simplified the logic for adding and removing spans from the stack, enhancing clarity and reducing potential errors. - Removed redundant comments and streamlined the handling of null spans in transaction methods. This update enhances the robustness of the Sentry tracing implementation, making it more reliable during transaction execution. * Remove unnecessary hint * Fix review issues * Fix review issues * Fix review issues * Fix review issues * Remove unnecessary files * Naming * Naming * Analyzer * Naming * Add test * Update * Change finish call to unawaited in error handling * Add async import to sentry_span_helper.dart * Update * ref(tracing-instrumentation): migrate hive, isar, file, supabase and link (#3489) * feat(hive): add internal logger for sentry_hive package Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * feat(hive): migrate SentrySpanHelper to InstrumentationSpan - Use InstrumentationSpanFactory instead of hub.getSpan()?.startChild() - Add proper null checks with warning logs - Maintain both async and sync wrapper methods Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * feat(hive): update classes to use new SentrySpanHelper constructor - Pass Hub directly to SentrySpanHelper constructor - Remove setHub() method calls - Update tests to use constructor parameter Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * feat(file): migrate to InstrumentationSpan - Use InstrumentationSpanFactory instead of hub.getSpan()?.startChild() - Maintain both async and sync wrapper methods Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * feat(supabase): migrate to InstrumentationSpan - Use InstrumentationSpanFactory instead of hub.getSpan()?.startChild() - Return InstrumentationSpan from _createSpan helper Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * feat(link): migrate SentryTracingLink to InstrumentationSpan - Use InstrumentationSpanFactory for child span creation - Keep legacy API for transaction creation (when shouldStartTransaction=true) - Wrap transactions in LegacyInstrumentationSpan for unified interface Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * feat(link): migrate SentryRequestSerializer to InstrumentationSpan - Use InstrumentationSpanFactory instead of hub.getSpan()?.startChild() Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * feat(link): migrate SentryResponseParser to InstrumentationSpan - Use InstrumentationSpanFactory instead of hub.getSpan()?.startChild() Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * Update * Update * Update * Update * Update * Update * feat(supabase): add internal logger and update dependencies - Introduced an internal logger using Sentry for better tracing. - Added 'meta' package as a dependency in pubspec.yaml. - Updated Sentry tracing logic to utilize the new internal logger for warnings. * Update --------- Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com> * ref(dart): instrumentation span for http dio (#3493) * ref(tracing-instrumentation): migrate http and dio to instrumentation span Migrate TracingClient (http package) and TracingClientAdapter (dio package) to use the new InstrumentationSpanFactory pattern, consistent with the recent migration of hive, isar, file, supabase, and link packages. Changes: - Add InstrumentationSpanFactory field to TracingClient and TracingClientAdapter - Replace hub.getSpan()?.startChild() with spanFactory.getSpan()/createSpan() - Extract underlying ISentrySpan via LegacyInstrumentationSpan.spanReference for tracing headers (sentry-trace, baggage, traceparent) - Add applyToInstrumentationSpan() method to UrlDetails for URL data All existing tests pass without modification, preserving backward compatibility. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * ref(dio): migrate SentryTransformer to instrumentation span Complete the migration of dio package to use InstrumentationSpanFactory by updating SentryTransformer's transformRequest and transformResponse methods. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * ref(tracing): rename applyToInstrumentationSpan to applyToSpan Remove the old ISentrySpan-based applyToSpan method and rename applyToInstrumentationSpan to applyToSpan since all callers now use InstrumentationSpan. Update url_details_test.dart to use MockInstrumentationSpan. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * chore(tests): add mock_span import to lifecycle tests Added the mock_span import to both sentry_client_lifecycle_test.dart and sentry_client_sdk_lifecycle_test.dart to facilitate testing with spans. * feat(tests): add MockSpan class for testing Sentry spans Introduced a new MockSpan class in mock_span.dart to facilitate testing with SentrySpan, providing a mock implementation for use in unit tests. * ref(tracing): remove commented code for extracting ISentrySpan Removed commented-out code related to extracting ISentrySpan for tracing headers in TracingClient and TracingClientAdapter, streamlining the codebase. * ref(tracing): enhance tracing header handling with InstrumentationSpan Updated TracingClient and TracingClientAdapter to utilize the new addTracingHeadersFromInstrumentationSpan method for adding tracing headers. This change simplifies the code by directly passing the InstrumentationSpan, improving clarity and maintainability. Additionally, new methods for converting spans to Sentry trace and baggage headers were added to the InstrumentationSpan interface. * ref(tracing): rename addTracingHeadersFromInstrumentationSpan to addTracingHeadersToHttpHeader Updated the TracingClient and TracingClientAdapter to use the renamed addTracingHeadersToHttpHeader method for adding tracing headers. This change improves code clarity and consistency across the codebase by standardizing the method name. Adjusted related tests to accommodate the new method signature. * ref(baggage): remove logging callback from SentryBaggage Refactored SentryBaggage to eliminate the logging callback, replacing it with an internal logger for improved logging consistency. Updated related methods and tests to reflect this change, enhancing code clarity and maintainability. * Update * ref(baggage): simplify toBaggage method by removing logging callback Refactored the toBaggage method in SentryTraceContextHeader to eliminate the logging callback, enhancing code clarity. Updated the SentryTracer to reflect this change, ensuring consistency across the codebase. * Update --------- Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com> * Update CHANGELOG --------- Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com> * build(deps): bump actions/checkout from 5 to 6 (#3460) Bumps [actions/checkout](https://github.com/actions/checkout) from 5 to 6. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](actions/checkout@v5...v6) --- updated-dependencies: - dependency-name: actions/checkout dependency-version: '6' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * build(deps): bump ruby/setup-ruby from 1.278.0 to 1.286.0 (#3482) Bumps [ruby/setup-ruby](https://github.com/ruby/setup-ruby) from 1.278.0 to 1.286.0. - [Release notes](https://github.com/ruby/setup-ruby/releases) - [Changelog](https://github.com/ruby/setup-ruby/blob/master/release.rb) - [Commits](ruby/setup-ruby@4c24fa5...90be115) --- updated-dependencies: - dependency-name: ruby/setup-ruby dependency-version: 1.286.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * fix(dart): Catch client exceptions in HttpTransport.send (#3490) * fix(dart): Catch client exceptions in HttpTransport.send Prevents unhandled exceptions like `ClientException: Connection closed before full header was received` from crashing the host application. The error is logged via internalLogger and only rethrown in automatedTestMode. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * Update * Update CHANGELOG * Update * Update * Implement lost event recording in HttpTransport for network errors Enhance the HttpTransport class to record lost events when a network error occurs during envelope transmission. This includes logging discarded events for both Sentry transactions and spans. Add corresponding tests to verify the functionality when client exceptions are thrown. * Refactor lost event handling in HttpTransport and TransportUtils Consolidate lost event recording logic into TransportUtils for better reusability. Update HttpTransport to utilize the new method for recording lost events on network errors. Enhance logging for response statuses, including rate limit handling. Remove redundant lost event recording method from HttpTransport. * Update * Update * Rename to recordLostEvents --------- Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com> * release: 9.11.0-beta.2 * chore(release): prepare `9.11.0` changelog (#3498) * Update CHANGELOG * Revise CHANGELOG for enhancements and dependencies Updated CHANGELOG to reflect enhancements and dependency bumps. * release: 9.11.0 * chore: update packages/flutter/scripts/update-native.sh to 0.12.5 (#3481) Co-authored-by: GitHub <noreply@github.com> * chore: update packages/flutter/scripts/update-android.sh to 8.31.0 (#3476) Co-authored-by: GitHub <noreply@github.com> * release: 9.12.0 * chore: update packages/flutter/scripts/update-js.sh to 10.38.0 (#3474) Co-authored-by: GitHub <noreply@github.com> * chore(bugbot): Update `BUGBOT.md` to check the PR description when reviewing dependency updates (#3509) * Update BUGBOT.md * chore(deps): update Android SDK to v8.32.0 (#3506) * chore: update packages/flutter/scripts/update-android.sh to 8.32.0 * Add spotlight as debugImplementation * Update analyze * Updat * Update android example sdk targets * Update --------- Co-authored-by: GitHub <noreply@github.com> Co-authored-by: Giancarlo Buenaflor <giancarlo_buenaflor@yahoo.com> Co-authored-by: Giancarlo Buenaflor <giancarlobuenaflor97@gmail.com> * feat(flutter): Synchronize `traceId` to native SDKs (#3507) * feat: Synchronize PropagationContext to native SDKs (#3406) Native crashes/errors on Android and iOS carry their own independently- generated traceId, disconnecting them from the Dart-side trace. This wires up the existing native setTrace APIs so the Dart PropagationContext is synced to native on init and whenever generateNewTrace() is called. - Add OnTraceReset lifecycle event dispatched from Hub.generateNewTrace() - Add NativeTraceSyncIntegration that subscribes to OnTraceReset and calls the platform-specific native setTrace API - Implement setTrace on all platform bindings (JNI for Android, method channel for Cocoa, no-op for C/Web) - Add supportsTraceSync capability flag to SentryNativeBinding - Disable native auto trace ID generation on Android so Flutter is the single source of truth - Add setTrace handler in iOS SentryFlutterPlugin.swift - Register NativeTraceSyncIntegration in default integrations Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * Fix build * Update CHANGELOG * Update * Update * Update * Update * Fix mocks * Update * Update doc * Fix changelog * Update * Review * Update * Bubble up error from native flutter plugin in swift * Move enableNativeTraceSync from dart to flutter options * Fix duplicate result * Improve documentation --------- Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com> * chore(deps): update Native SDK to v0.12.6 (#3502) * chore: update packages/flutter/scripts/update-native.sh to 0.12.6 * Update gitignore --------- Co-authored-by: GitHub <noreply@github.com> Co-authored-by: Giancarlo Buenaflor <giancarlobuenaflor97@gmail.com> * internal(flutter): Add SDK features metadata for SPM vs CocoaPods tracking (#3508) * feat(dart): Add `features` list to `SdkVersion` metadata Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * feat(flutter): Merge native SDK features into event metadata Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * feat(flutter): Report SPM vs CocoaPods build type as SDK feature on iOS Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * Review * Remove redundant comments --------- Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com> * release: 9.13.0 * Fix jni usage for creating bitmap --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: getsentry-bot <bot@sentry.io> Co-authored-by: getsentry-bot <bot@getsentry.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: GitHub <noreply@github.com> Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com> Co-authored-by: Philipp Hofmann <philipp.hofmann@sentry.io>
buenaflor
added a commit
that referenced
this pull request
Feb 27, 2026
* build(deps): bump actions/cache from 4 to 5 (#3423) Bumps [actions/cache](https://github.com/actions/cache) from 4 to 5. - [Release notes](https://github.com/actions/cache/releases) - [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md) - [Commits](actions/cache@v4...v5) --- updated-dependencies: - dependency-name: actions/cache dependency-version: '5' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * build(deps): bump actions/upload-artifact from 5 to 6 (#3399) Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 5 to 6. - [Release notes](https://github.com/actions/upload-artifact/releases) - [Commits](actions/upload-artifact@v5...v6) --- updated-dependencies: - dependency-name: actions/upload-artifact dependency-version: '6' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * enh(internal): internal logging api (#3425) * feat(logging): introduce SentryDebugLogger for enhanced diagnostic logging This commit adds a new `SentryDebugLogger` class to provide a lightweight, isolate-compatible logging solution for the Sentry SDK. The logger supports various log levels and can be configured for each isolate. Additionally, it integrates with `SentryOptions` to enable logging based on the debug flag and diagnostic level. The existing `IsolateLogger` has been removed in favor of this new implementation, streamlining the logging process across the SDK. - Added `SentryDebugLogger` for structured logging. - Updated `SentryOptions` to configure the logger based on debug settings. - Replaced instances of `IsolateLogger` with `SentryDebugLogger` in relevant files. - Added unit tests for the new logger functionality. * refactor(sentry): remove debug logger warning from Sentry initialization This commit removes a debug logger warning message from the Sentry class during initialization. The change helps to clean up the logging output and streamline the initialization process without affecting functionality. * docs(debug_logger): update example usage and clarify instance requirements This commit updates the documentation for the `SentryDebugLogger` to reflect the correct variable name in the example and adds a note emphasizing that each package should have at least one top-level instance of the logger. This enhances clarity for users implementing the logger in their applications. * refactor(sentry): remove unused debug logger import and enhance debug logger documentation This commit removes the unused import of the debug logger from the Sentry class and adds an internal annotation to the `SentryDebugLogger` in the debug logger file. Additionally, a comment is added in the isolate worker to suppress a lint warning related to the internal member usage, improving code clarity and maintainability. * refactor(sentry): remove unused debug logger import from sentry_options.dart This commit removes the unused import of the debug logger from the `sentry_options.dart` file, contributing to cleaner code and improved maintainability. * docs(debug_logger): correct example usage in documentation This commit updates the example usage in the `SentryDebugLogger` documentation to reflect the correct variable name, enhancing clarity for users implementing the logger in their applications. * Update * refactor(debug_logger): remove unused category parameter from logging methods This commit simplifies the `SentryDebugLogger` class by removing the unused `category` parameter from the `debug`, `info`, `warning`, `error`, and `fatal` logging methods. This change enhances code clarity and reduces unnecessary complexity in the logging interface. * refactor(debug_logger_test): remove test for category logging This commit removes the test case that checks logging with a category parameter from the `debug_logger_test.dart` file. This change aligns with the recent refactor of the `SentryDebugLogger` class, which eliminated the unused category parameter, thereby enhancing the clarity and relevance of the test suite. * refactor(android_replay_handler): enhance debug logging with context This commit updates the logging statements in the `_AndroidReplayHandler` class to include the debug name from the configuration. This change improves the clarity of log messages by providing context for unexpected messages and payload types, aiding in debugging and monitoring efforts. * refactor(debug_logger_test): enhance test coverage and improve naming conventions This commit refactors the `debug_logger_test.dart` file by renaming test groups for clarity and adding new tests to verify the behavior of `SentryOptions.debug` and `SentryOptions.diagnosticLevel`. The changes improve the organization and comprehensiveness of the test suite, ensuring better validation of the `SentryDebugLogger` configuration and logging functionality. * refactor(sentry_options): improve debug logger configuration and diagnostic level handling This commit refactors the `SentryOptions` class to enhance the configuration of the debug logger. The `diagnosticLevel` setter now updates the logger's minimum level dynamically, ensuring that changes to the diagnostic level are reflected immediately. Additionally, the debug logger configuration is encapsulated in a private method for better organization and clarity. * refactor(logging): replace SentryDebugLogger with SentryInternalLogger and enhance logging functionality This commit refactors the logging mechanism by replacing the `SentryDebugLogger` with the new `SentryInternalLogger` across the codebase. The `SentryInternalLogger` provides improved logging capabilities, including compile-time constants for release, profile, and debug modes, ensuring better tree-shaking and performance. Additionally, the associated tests have been updated to validate the new logger's behavior, enhancing overall logging clarity and maintainability. * refactor(logging): remove SentryDebugLogger and its import from the codebase This commit removes the `SentryDebugLogger` class and its associated import from `sentry_options.dart`, streamlining the logging functionality in the Sentry SDK. This change is part of the ongoing effort to enhance the logging mechanism by transitioning to the `SentryInternalLogger`, which offers improved capabilities and performance. * refactor(sentry_options): update logger configuration methods to use SentryInternalLogger This commit modifies the `SentryOptions` class to replace calls to the deprecated `_configureDebugLogger` method with `_configureInternalLogger`. This change aligns with the recent transition to the `SentryInternalLogger`, ensuring consistent logging configuration and improving overall code clarity. * refactor(logging): rename debugLogger to internalLogger for consistency This commit renames the `debugLogger` to `internalLogger` across the codebase, including tests and various components. This change aligns with the recent transition to the `SentryInternalLogger`, ensuring consistent naming and improving clarity in the logging functionality. * refactor(logging): remove debugLogger test and update logging references to internalLogger This commit removes the test for the `debugLogger` constant in `internal_logger_test.dart` and updates references from `debugLogger` to `internalLogger` in the `_AndroidEnvelopeHandler` and `_AndroidReplayHandler` classes. These changes ensure consistency in the logging implementation and align with the recent transition to the `SentryInternalLogger`. * refactor(logging): move _defaultLogOutput method to SentryInternalLogger This commit relocates the `_defaultLogOutput` method into the `SentryInternalLogger` class, enhancing the organization of the logging functionality. This change improves code clarity and aligns with the ongoing refactor to streamline the logging mechanism within the Sentry SDK. * refactor(logging): improve error logging format in isolate_worker This commit enhances the error logging format in the `isolate_worker.dart` file by improving the readability of the log statement. The changes ensure that the error and stack trace are clearly separated, contributing to better debugging and monitoring of isolate message handling failures. * fix(android): Envelope worker not starting when `autoInitializeNativeSdk` is disabled (#3420) * Update * Update CHANGELOG * Enhance AndroidEnvelopeSender to buffer envelopes when worker is not started and flush them upon starting. Update tests to reflect new buffering behavior and log changes from warning to info level. * Refactor SentryNativeJava tests: Split tests into separate files for VM and web environments. Introduce new test file for SentryNativeJava with ReplaySizeAdjustment and EnvelopeSender initialization tests. Remove redundant web stubs and streamline imports. * Refactor AndroidEnvelopeSender: Remove pending envelopes buffering and streamline envelope capture logic. Ensure envelopes are sent directly when the worker is available, and adjust logging for envelope capture in the main isolate. Update SentryNativeJava to start the envelope sender conditionally. * Enhance AndroidEnvelopeSender to manage closed state and improve envelope capture logic. Introduce a flag to prevent envelope capture after closure and update logging to use a required logger parameter. Adjust tests to reflect changes in behavior when the worker is not started. * Refactor AndroidEnvelopeSender: Adjust captureEnvelope method to ensure client assignment occurs after closed state check. This change improves clarity and maintains the integrity of the envelope sending process. * Fix AndroidEnvelopeSender start method to prevent spawning a worker if already closed. Update tests to reflect the expected spawn count when the sender is closed. * Update Android envelope capture test to assert behavior when the native channel is unavailable. Introduced a matcher for improved error handling in the captureEnvelope method. * Refactor AndroidEnvelopeSender start method to ensure proper closure handling during worker spawning. Introduce a guard clause to close the worker if the sender is already closed, enhancing stability and preventing resource leaks. * Refactor AndroidEnvelopeSender test to clarify logging behavior when sending envelopes in the main isolate. Update test description for improved readability and understanding of the expected functionality. * refactor(AndroidEnvelopeSender): update constructor to use SentryOptions and improve logging This commit refactors the `AndroidEnvelopeSender` class to replace the `_options` parameter with `SentryOptions` in the constructor. It also enhances the logging mechanism by utilizing `internalLogger` for logging messages related to envelope capture. The `_captureEnvelope` method has been updated to streamline error handling and improve clarity in logging, ensuring better maintainability and consistency across the codebase. * refactor(AndroidEnvelopeSender test): enhance logging configuration for envelope sending This commit updates the logging mechanism in the `AndroidEnvelopeSender` test to utilize the new `SentryInternalLogger`. The changes include removing the previous debug options and configuring the logger to capture logs with improved structure and clarity. This refactor aims to enhance the maintainability and consistency of logging behavior during envelope sending in the main isolate. * release: 9.9.2 * chore(agents): Add `AGENTS.md` (#3426) * Update * Refine test naming conventions in AGENTS.md for improved clarity and structure - Updated guidelines to ensure test group and test names read as coherent sentences. - Introduced a structured approach for naming by depth, emphasizing the use of subjects, contexts, variants, and behaviors. - Added examples and anti-patterns to illustrate best practices in test organization and naming. * Enhance Dart code design guidelines in AGENTS.md - Added comprehensive guidelines for identifiers, ordering, formatting, comments, and documentation to improve code consistency and readability. - Included best practices for naming conventions, code structure, and documentation styles to align with the Effective Dart guide. - Emphasized the importance of adhering to these guidelines for new and modified tests. * Refactor AGENTS.md for improved clarity and structure - Streamlined project structure section by removing table format for a more concise list format. - Updated environment section to include specific Flutter and Dart versions. - Enhanced testing guidelines with clearer commands and descriptions for Dart and Flutter packages. - Added new guidelines for modern Dart language features to promote clarity and reduce boilerplate in code. * Enhance agent documentation and testing guidelines - Updated AGENTS.md to clarify the structure and purpose of the Sentry Dart/Flutter SDK. - Introduced new documentation files for code guidelines and test conventions, emphasizing best practices for Dart/Flutter development. - Added detailed sections on naming conventions, test structure, and the use of modern Dart features to improve code clarity and maintainability. - Ensured that all new and modified code adheres to these updated guidelines for consistency across the project. * Update documentation comments guidelines in code-guidelines.md - Renamed section from "Doc Comments" to "Documentation Comments" for clarity. - Added recommendations for when to write comments, emphasizing the importance of self-documenting code. - Included specific guidelines on documenting public APIs and non-obvious reasoning, while advising against commenting on obvious behavior and providing excessive inline commentary. * build(deps): bump aws-sdk-s3 from 1.203.0 to 1.208.0 in /metrics (#3428) Bumps [aws-sdk-s3](https://github.com/aws/aws-sdk-ruby) from 1.203.0 to 1.208.0. - [Release notes](https://github.com/aws/aws-sdk-ruby/releases) - [Changelog](https://github.com/aws/aws-sdk-ruby/blob/version-3/gems/aws-sdk-s3/CHANGELOG.md) - [Commits](https://github.com/aws/aws-sdk-ruby/commits) --- updated-dependencies: - dependency-name: aws-sdk-s3 dependency-version: 1.208.0 dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * build(deps): bump aws-sdk-s3 in /packages/flutter/example/ios (#3417) Bumps [aws-sdk-s3](https://github.com/aws/aws-sdk-ruby) from 1.203.0 to 1.208.0. - [Release notes](https://github.com/aws/aws-sdk-ruby/releases) - [Changelog](https://github.com/aws/aws-sdk-ruby/blob/version-3/gems/aws-sdk-s3/CHANGELOG.md) - [Commits](https://github.com/aws/aws-sdk-ruby/commits) --- updated-dependencies: - dependency-name: aws-sdk-s3 dependency-version: 1.208.0 dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * build(deps): bump ruby/setup-ruby from 1.268.0 to 1.278.0 (#3430) Bumps [ruby/setup-ruby](https://github.com/ruby/setup-ruby) from 1.268.0 to 1.278.0. - [Release notes](https://github.com/ruby/setup-ruby/releases) - [Changelog](https://github.com/ruby/setup-ruby/blob/master/release.rb) - [Commits](ruby/setup-ruby@8aeb6ff...4c24fa5) --- updated-dependencies: - dependency-name: ruby/setup-ruby dependency-version: 1.278.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore: update scripts/update-symbol-collector.sh to 2.3.1 (#3385) Co-authored-by: GitHub <noreply@github.com> * build(deps): bump reactivecircus/android-emulator-runner (#3328) Bumps [reactivecircus/android-emulator-runner](https://github.com/reactivecircus/android-emulator-runner) from 2.34.0 to 2.35.0. - [Release notes](https://github.com/reactivecircus/android-emulator-runner/releases) - [Changelog](https://github.com/ReactiveCircus/android-emulator-runner/blob/main/CHANGELOG.md) - [Commits](ReactiveCircus/android-emulator-runner@1dcd009...b530d96) --- updated-dependencies: - dependency-name: reactivecircus/android-emulator-runner dependency-version: 2.35.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Giancarlo Buenaflor <giancarlo_buenaflor@yahoo.com> * chore: update metrics/flutter.properties to 3.38.5 (#3387) Co-authored-by: GitHub <noreply@github.com> * build(deps): bump actions/checkout from 4 to 6 (#3365) Bumps [actions/checkout](https://github.com/actions/checkout) from 4 to 6. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](actions/checkout@v4...v6) --- updated-dependencies: - dependency-name: actions/checkout dependency-version: '6' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Giancarlo Buenaflor <giancarlo_buenaflor@yahoo.com> * chore: update packages/flutter/scripts/update-native.sh to 0.12.3 (#3438) Co-authored-by: GitHub <noreply@github.com> * Add claude settings (#3445) * Add `CLAUDE.md` symlink to `AGENTS.md` * Move `TelemetryProcessor` from span-first branch and replace `LogBatcher` (#3448) * Add TelemetryProcessor for span and log buffering Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com> * Remove SpanV2 and TraceLifecycle dependencies - Remove addSpan method from TelemetryProcessor interface - Remove span buffer from DefaultTelemetryProcessor - Remove captureSpan method from SentryClient - Remove traceLifecycle property from SentryOptions - Remove span imports and exports - Update mocks to remove span-related code Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com> * Remove span-related tests from sentry_client_test Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com> * Remove span-related processor tests Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com> * Remove span import from Flutter mocks Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com> * Fix wiring up * Update * Update * Update CHANGELOG * Update * Remove logbatcher * Polish --------- Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com> * chore(deps): update Flutter SDK (metrics) to v3.38.7 (#3437) * chore: update metrics/flutter.properties to 3.38.7 * update * update * Update --------- Co-authored-by: GitHub <noreply@github.com> Co-authored-by: Giancarlo Buenaflor <giancarlobuenaflor97@gmail.com> * fix: update kotlin version handling in android (#3436) * update kotlin version handling in android build scripts for CI compatibility * Fix Kotlin version format in workflow file * Update * Update * Update * Remove CI override comment for Kotlin language version Removed comment about allowing CI to override Kotlin language version. * release: 9.10.0 * Update Xcode version to 16.4 in workflow (#3452) * fix(ci): failing package-analysis (#3453) * Fix analyze * Fix analyze * Fix analyze * Fix analyze * Fix analyze * Fix analyze * Fix analyze * Fix analyze * Fix analyze * Fix analyze * Refactor Pana score check logic in analyze.yml * chore: ignore local Claude settings (#3462) Add .claude/settings.local.json to .gitignore to prevent committing local Claude Code configuration. * chore: update packages/flutter/scripts/update-android.sh to 8.30.0 (#3451) Co-authored-by: GitHub <noreply@github.com> * feat: trace connected metrics (#3450) Adds trace connected metrics feature to Dart --------- Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com> * refactor(log): make implementation consistent with metrics and span-first (#3463) Make log implementation consistent with metrics and span-first Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com> * build(deps): bump actions/setup-java from 4 to 5 (#3461) Bumps [actions/setup-java](https://github.com/actions/setup-java) from 4 to 5. - [Release notes](https://github.com/actions/setup-java/releases) - [Commits](actions/setup-java@v4...v5) --- updated-dependencies: - dependency-name: actions/setup-java dependency-version: '5' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * feat(flutter): Add captureNativeFailedRequests option for iOS/macOS (#3472) Add a new `captureNativeFailedRequests` option to control native HTTP failed request capturing independently from `captureFailedRequests`. This separation allows users to: - Keep Dart-side failed request capturing enabled while disabling native - Or vice versa, based on their needs For backwards compatibility, `captureNativeFailedRequests` defaults to `null`, which falls back to the value of `captureFailedRequests`. This ensures existing users who set `captureFailedRequests = false` will still have native capturing disabled as expected. * release: 9.11.0-beta.1 * chore: update GitHub Actions workflows to use updater v3 (#3468) * chore: update GitHub Actions workflows to use new updater version Refactor the update-deps.yml workflow to utilize the latest version of the updater action, improving the structure and permissions for dependency updates across Android, Cocoa, JavaScript, Native, and Symbol Collector jobs. * chore: add pull request trigger for update-deps.yml workflow Include a pull request trigger in the update-deps.yml workflow for testing purposes, while maintaining existing push configurations. * chore: update update-deps.yml to use ssh-key instead of api-token Refactor the update-deps.yml workflow to replace the api-token with ssh-key for Android, Cocoa, JavaScript, Native, and Symbol Collector jobs, enhancing security and access management. * Update * Fix cocoa * Fix formatting in update-deps.yml permissions section * Modify update-deps workflow triggers Removed pull_request trigger from update-deps workflow. * Fix cocoa * Update * Update * Disable wasm runner for now (#3478) * ci(testflight): Update to Xcode 26.2 (#3479) Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com> * ref(dart): Remove unused beforeMetricCallback (#3484) Remove dead code that was never used in the codebase. The BeforeMetricCallback typedef and beforeMetricCallback field in SentryOptions had no references anywhere in the SDK. Co-authored-by: Claude <noreply@anthropic.com> * ref(tracing-instrumentation): Introduce internal instrumentation abstraction for packages (#3488) * feat(tracing): Introduce internal instrumentation API for Sentry - Added `InstrumentationSpan` and `LegacyInstrumentationSpan` classes to provide a backend-agnostic abstraction for tracing. - Implemented `InstrumentationSpanFactory` for creating spans, allowing for future flexibility in span implementations. - Enhanced `SentryOptions` to include a `spanFactory` for custom span creation. - Updated various components to utilize the new instrumentation API, including `SentryInstrumentation` and `TransactionInstrumentation`. - Refactored existing database executor and batch classes to support the new instrumentation spans. This update improves the tracing capabilities and prepares the codebase for future enhancements in span management. * refactor(tracing): Simplify transaction instrumentation documentation - Removed outdated comments and example usage from the `TransactionInstrumentation` class. - Clarified the behavior of transaction methods by streamlining the documentation. - Enhanced code readability and maintainability by focusing on essential information. This update improves the clarity of the transaction instrumentation API, making it easier for developers to understand its usage. * Update * Update * Update * Update * Update * refactor(tracing): Improve transaction stack management in Sentry instrumentation - Ensured that the transaction stack maintains nesting invariants by always pushing a null value when no parent exists. - Simplified the logic for adding and removing spans from the stack, enhancing clarity and reducing potential errors. - Removed redundant comments and streamlined the handling of null spans in transaction methods. This update enhances the robustness of the Sentry tracing implementation, making it more reliable during transaction execution. * Remove unnecessary hint * Fix review issues * Fix review issues * Fix review issues * Fix review issues * Remove unnecessary files * Naming * Naming * Analyzer * Naming * Add test * Update * Change finish call to unawaited in error handling * Add async import to sentry_span_helper.dart * Update * ref(tracing-instrumentation): migrate hive, isar, file, supabase and link (#3489) * feat(hive): add internal logger for sentry_hive package Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * feat(hive): migrate SentrySpanHelper to InstrumentationSpan - Use InstrumentationSpanFactory instead of hub.getSpan()?.startChild() - Add proper null checks with warning logs - Maintain both async and sync wrapper methods Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * feat(hive): update classes to use new SentrySpanHelper constructor - Pass Hub directly to SentrySpanHelper constructor - Remove setHub() method calls - Update tests to use constructor parameter Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * feat(file): migrate to InstrumentationSpan - Use InstrumentationSpanFactory instead of hub.getSpan()?.startChild() - Maintain both async and sync wrapper methods Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * feat(supabase): migrate to InstrumentationSpan - Use InstrumentationSpanFactory instead of hub.getSpan()?.startChild() - Return InstrumentationSpan from _createSpan helper Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * feat(link): migrate SentryTracingLink to InstrumentationSpan - Use InstrumentationSpanFactory for child span creation - Keep legacy API for transaction creation (when shouldStartTransaction=true) - Wrap transactions in LegacyInstrumentationSpan for unified interface Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * feat(link): migrate SentryRequestSerializer to InstrumentationSpan - Use InstrumentationSpanFactory instead of hub.getSpan()?.startChild() Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * feat(link): migrate SentryResponseParser to InstrumentationSpan - Use InstrumentationSpanFactory instead of hub.getSpan()?.startChild() Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * Update * Update * Update * Update * Update * Update * feat(supabase): add internal logger and update dependencies - Introduced an internal logger using Sentry for better tracing. - Added 'meta' package as a dependency in pubspec.yaml. - Updated Sentry tracing logic to utilize the new internal logger for warnings. * Update --------- Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com> * ref(dart): instrumentation span for http dio (#3493) * ref(tracing-instrumentation): migrate http and dio to instrumentation span Migrate TracingClient (http package) and TracingClientAdapter (dio package) to use the new InstrumentationSpanFactory pattern, consistent with the recent migration of hive, isar, file, supabase, and link packages. Changes: - Add InstrumentationSpanFactory field to TracingClient and TracingClientAdapter - Replace hub.getSpan()?.startChild() with spanFactory.getSpan()/createSpan() - Extract underlying ISentrySpan via LegacyInstrumentationSpan.spanReference for tracing headers (sentry-trace, baggage, traceparent) - Add applyToInstrumentationSpan() method to UrlDetails for URL data All existing tests pass without modification, preserving backward compatibility. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * ref(dio): migrate SentryTransformer to instrumentation span Complete the migration of dio package to use InstrumentationSpanFactory by updating SentryTransformer's transformRequest and transformResponse methods. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * ref(tracing): rename applyToInstrumentationSpan to applyToSpan Remove the old ISentrySpan-based applyToSpan method and rename applyToInstrumentationSpan to applyToSpan since all callers now use InstrumentationSpan. Update url_details_test.dart to use MockInstrumentationSpan. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * chore(tests): add mock_span import to lifecycle tests Added the mock_span import to both sentry_client_lifecycle_test.dart and sentry_client_sdk_lifecycle_test.dart to facilitate testing with spans. * feat(tests): add MockSpan class for testing Sentry spans Introduced a new MockSpan class in mock_span.dart to facilitate testing with SentrySpan, providing a mock implementation for use in unit tests. * ref(tracing): remove commented code for extracting ISentrySpan Removed commented-out code related to extracting ISentrySpan for tracing headers in TracingClient and TracingClientAdapter, streamlining the codebase. * ref(tracing): enhance tracing header handling with InstrumentationSpan Updated TracingClient and TracingClientAdapter to utilize the new addTracingHeadersFromInstrumentationSpan method for adding tracing headers. This change simplifies the code by directly passing the InstrumentationSpan, improving clarity and maintainability. Additionally, new methods for converting spans to Sentry trace and baggage headers were added to the InstrumentationSpan interface. * ref(tracing): rename addTracingHeadersFromInstrumentationSpan to addTracingHeadersToHttpHeader Updated the TracingClient and TracingClientAdapter to use the renamed addTracingHeadersToHttpHeader method for adding tracing headers. This change improves code clarity and consistency across the codebase by standardizing the method name. Adjusted related tests to accommodate the new method signature. * ref(baggage): remove logging callback from SentryBaggage Refactored SentryBaggage to eliminate the logging callback, replacing it with an internal logger for improved logging consistency. Updated related methods and tests to reflect this change, enhancing code clarity and maintainability. * Update * ref(baggage): simplify toBaggage method by removing logging callback Refactored the toBaggage method in SentryTraceContextHeader to eliminate the logging callback, enhancing code clarity. Updated the SentryTracer to reflect this change, ensuring consistency across the codebase. * Update --------- Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com> * Update CHANGELOG --------- Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com> * build(deps): bump actions/checkout from 5 to 6 (#3460) Bumps [actions/checkout](https://github.com/actions/checkout) from 5 to 6. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](actions/checkout@v5...v6) --- updated-dependencies: - dependency-name: actions/checkout dependency-version: '6' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * build(deps): bump ruby/setup-ruby from 1.278.0 to 1.286.0 (#3482) Bumps [ruby/setup-ruby](https://github.com/ruby/setup-ruby) from 1.278.0 to 1.286.0. - [Release notes](https://github.com/ruby/setup-ruby/releases) - [Changelog](https://github.com/ruby/setup-ruby/blob/master/release.rb) - [Commits](ruby/setup-ruby@4c24fa5...90be115) --- updated-dependencies: - dependency-name: ruby/setup-ruby dependency-version: 1.286.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * fix(dart): Catch client exceptions in HttpTransport.send (#3490) * fix(dart): Catch client exceptions in HttpTransport.send Prevents unhandled exceptions like `ClientException: Connection closed before full header was received` from crashing the host application. The error is logged via internalLogger and only rethrown in automatedTestMode. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * Update * Update CHANGELOG * Update * Update * Implement lost event recording in HttpTransport for network errors Enhance the HttpTransport class to record lost events when a network error occurs during envelope transmission. This includes logging discarded events for both Sentry transactions and spans. Add corresponding tests to verify the functionality when client exceptions are thrown. * Refactor lost event handling in HttpTransport and TransportUtils Consolidate lost event recording logic into TransportUtils for better reusability. Update HttpTransport to utilize the new method for recording lost events on network errors. Enhance logging for response statuses, including rate limit handling. Remove redundant lost event recording method from HttpTransport. * Update * Update * Rename to recordLostEvents --------- Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com> * release: 9.11.0-beta.2 * chore(release): prepare `9.11.0` changelog (#3498) * Update CHANGELOG * Revise CHANGELOG for enhancements and dependencies Updated CHANGELOG to reflect enhancements and dependency bumps. * release: 9.11.0 * chore: update packages/flutter/scripts/update-native.sh to 0.12.5 (#3481) Co-authored-by: GitHub <noreply@github.com> * chore: update packages/flutter/scripts/update-android.sh to 8.31.0 (#3476) Co-authored-by: GitHub <noreply@github.com> * release: 9.12.0 * chore: update packages/flutter/scripts/update-js.sh to 10.38.0 (#3474) Co-authored-by: GitHub <noreply@github.com> * chore(bugbot): Update `BUGBOT.md` to check the PR description when reviewing dependency updates (#3509) * Update BUGBOT.md * chore(deps): update Android SDK to v8.32.0 (#3506) * chore: update packages/flutter/scripts/update-android.sh to 8.32.0 * Add spotlight as debugImplementation * Update analyze * Updat * Update android example sdk targets * Update --------- Co-authored-by: GitHub <noreply@github.com> Co-authored-by: Giancarlo Buenaflor <giancarlo_buenaflor@yahoo.com> Co-authored-by: Giancarlo Buenaflor <giancarlobuenaflor97@gmail.com> * feat(flutter): Synchronize `traceId` to native SDKs (#3507) * feat: Synchronize PropagationContext to native SDKs (#3406) Native crashes/errors on Android and iOS carry their own independently- generated traceId, disconnecting them from the Dart-side trace. This wires up the existing native setTrace APIs so the Dart PropagationContext is synced to native on init and whenever generateNewTrace() is called. - Add OnTraceReset lifecycle event dispatched from Hub.generateNewTrace() - Add NativeTraceSyncIntegration that subscribes to OnTraceReset and calls the platform-specific native setTrace API - Implement setTrace on all platform bindings (JNI for Android, method channel for Cocoa, no-op for C/Web) - Add supportsTraceSync capability flag to SentryNativeBinding - Disable native auto trace ID generation on Android so Flutter is the single source of truth - Add setTrace handler in iOS SentryFlutterPlugin.swift - Register NativeTraceSyncIntegration in default integrations Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * Fix build * Update CHANGELOG * Update * Update * Update * Update * Fix mocks * Update * Update doc * Fix changelog * Update * Review * Update * Bubble up error from native flutter plugin in swift * Move enableNativeTraceSync from dart to flutter options * Fix duplicate result * Improve documentation --------- Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com> * chore(deps): update Native SDK to v0.12.6 (#3502) * chore: update packages/flutter/scripts/update-native.sh to 0.12.6 * Update gitignore --------- Co-authored-by: GitHub <noreply@github.com> Co-authored-by: Giancarlo Buenaflor <giancarlobuenaflor97@gmail.com> * internal(flutter): Add SDK features metadata for SPM vs CocoaPods tracking (#3508) * feat(dart): Add `features` list to `SdkVersion` metadata Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * feat(flutter): Merge native SDK features into event metadata Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * feat(flutter): Report SPM vs CocoaPods build type as SDK feature on iOS Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * Review * Remove redundant comments --------- Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com> * release: 9.13.0 * ci(release): Switch from action-prepare-release to Craft (#3440) * ci(release): Switch from action-prepare-release to Craft This PR migrates from the deprecated action-prepare-release to the new Craft GitHub Actions (reusable workflow or composite action). Changes: - Migrate .github/workflows/release.yml to Craft reusable workflow * ci(release): Restore GitHub App token authentication The previous migration incorrectly removed the GitHub App token authentication step. This commit restores it by switching to the composite action pattern which preserves the auth flow. * fix: Pin actions to SHA and add permissions blocks * fix: Use correct action version SHAs (restore original versions) * fix: Use correct action version SHAs (restore original versions) * fix: Clean up action version comments * Update Craft SHA to 1c58bfd57bfd6a967b6f3fc92bead2c42ee698ce * Add explicit permissions block to analyze.yml * Add explicit permissions block to dart.yml * Add explicit permissions block to dio.yml * Add explicit permissions block to drift.yml * Add explicit permissions block to e2e_dart.yml * Add explicit permissions block to file.yml * Add explicit permissions block to firebase_remote_config.yml * Add explicit permissions block to flutter.yml * Add explicit permissions block to flutter_test.yml * Add explicit permissions block to format-and-fix.yml * Add explicit permissions block to hive.yml * Add explicit permissions block to isar.yml * Add explicit permissions block to link.yml * Add explicit permissions block to logging.yml * Add explicit permissions block to metrics.yml * Add explicit permissions block to min_version_test.yml * Add explicit permissions block to sqflite.yml * Add explicit permissions block to supabase.yml * Add explicit permissions block to testflight.yml * Add explicit permissions block to web-example-ghpages.yml * Revert permissions changes to analyze.yml * Revert permissions changes to dart.yml * Revert permissions changes to dio.yml * Revert permissions changes to drift.yml * Revert permissions changes to e2e_dart.yml * Revert permissions changes to file.yml * Revert permissions changes to firebase_remote_config.yml * Revert permissions changes to flutter.yml * Revert permissions changes to flutter_test.yml * Revert permissions changes to format-and-fix.yml * Revert permissions changes to hive.yml * Revert permissions changes to isar.yml * Revert permissions changes to link.yml * Revert permissions changes to logging.yml * Revert permissions changes to metrics.yml * Revert permissions changes to min_version_test.yml * Revert permissions changes to sqflite.yml * Revert permissions changes to supabase.yml * Revert permissions changes to testflight.yml * Revert permissions changes to web-example-ghpages.yml * fix: revert extraneous changes to non-release workflow files * fix: clean up release.yml formatting and version comments * build(craft): Update Craft action to c6e2f04 * chore: add unlabeled trigger to changelog-preview * build(deps): bump faraday from 1.10.4 to 1.10.5 in /metrics (#3511) Bumps [faraday](https://github.com/lostisland/faraday) from 1.10.4 to 1.10.5. - [Release notes](https://github.com/lostisland/faraday/releases) - [Changelog](https://github.com/lostisland/faraday/blob/main/CHANGELOG.md) - [Commits](lostisland/faraday@v1.10.4...v1.10.5) --- updated-dependencies: - dependency-name: faraday dependency-version: 1.10.5 dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore: update packages/flutter/scripts/update-native.sh to 0.12.7 (#3514) Co-authored-by: GitHub <noreply@github.com> * chore: update metrics/flutter.properties to 3.41.1 (#3486) Co-authored-by: GitHub <noreply@github.com> * build(deps): bump getsentry/craft from 2.19.0 to 2.21.4 (#3518) Bumps [getsentry/craft](https://github.com/getsentry/craft) from 2.19.0 to 2.21.4. - [Release notes](https://github.com/getsentry/craft/releases) - [Changelog](https://github.com/getsentry/craft/blob/master/CHANGELOG.md) - [Commits](getsentry/craft@c6e2f04...906009a) --- updated-dependencies: - dependency-name: getsentry/craft dependency-version: 2.21.4 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * build(deps): bump ruby/setup-ruby from 1.286.0 to 1.288.0 (#3519) Bumps [ruby/setup-ruby](https://github.com/ruby/setup-ruby) from 1.286.0 to 1.288.0. - [Release notes](https://github.com/ruby/setup-ruby/releases) - [Changelog](https://github.com/ruby/setup-ruby/blob/master/release.rb) - [Commits](ruby/setup-ruby@90be115...09a7688) --- updated-dependencies: - dependency-name: ruby/setup-ruby dependency-version: 1.288.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore: update packages/flutter/scripts/update-native.sh to 0.12.8 (#3520) Co-authored-by: GitHub <noreply@github.com> * fix(dart): Dont guard user behind `sendDefaultPii` (#3524) * Dont guard user attributes with sendDEfaultPii * Update sample * Update CHANGELOG * Update comments * Add enableTombstone option for native crash reporting on Android (#3526) * feat(flutter): Add enableTombstone option for improved native crash reporting Add `enableTombstone` option to SentryFlutterOptions that enables tombstone-based native crash reporting on Android 12+ (API level 30+). When enabled, uses Android's `ApplicationExitInfo.REASON_CRASH_NATIVE` to capture native crashes with more detailed thread information. The option is disabled by default. Slack thread: https://sentry.slack.com/archives/CP4UUUF1S/p1771404252312029?thread_ts=1769055443.846779&cid=CP4UUUF1S https://claude.ai/code/session_016kkosYW3XG2rhHafEfspqA * Apply suggestion from @romtsn * Add integration test * Enable tombstone option in integration test --------- Co-authored-by: Claude <noreply@anthropic.com> Co-authored-by: Giancarlo Buenaflor <giancarlobuenaflor97@gmail.com> Co-authored-by: Giancarlo Buenaflor <giancarlo.buenaflor@sentry.io> * chore(deps): update Android SDK to v8.33.0 (#3529) * chore: update packages/flutter/scripts/update-android.sh to 8.33.0 * Update jni call when creating bitmap --------- Co-authored-by: GitHub <noreply@github.com> Co-authored-by: Giancarlo Buenaflor <giancarlobuenaflor97@gmail.com> * internal(web): add sdk name for native js errors (#3525) * Add beforeSend to change sdk name in JS * Add beforeSend to js * Review * Cleanup * Update factory for creating JsSdkInfo * release: 9.14.0 --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: getsentry-bot <bot@sentry.io> Co-authored-by: getsentry-bot <bot@getsentry.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: GitHub <noreply@github.com> Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com> Co-authored-by: Philipp Hofmann <philipp.hofmann@sentry.io> Co-authored-by: Burak Yigit Kaya <ben@byk.im> Co-authored-by: Roman Zavarnitsyn <rom4ek93@gmail.com> Co-authored-by: buenaflor <23364143+buenaflor@users.noreply.github.com>
buenaflor
added a commit
that referenced
this pull request
Mar 27, 2026
* build(deps): bump actions/cache from 4 to 5 (#3423)
Bumps [actions/cache](https://github.com/actions/cache) from 4 to 5.
- [Release notes](https://github.com/actions/cache/releases)
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
- [Commits](https://github.com/actions/cache/compare/v4...v5)
---
updated-dependencies:
- dependency-name: actions/cache
dependency-version: '5'
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps): bump actions/upload-artifact from 5 to 6 (#3399)
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 5 to 6.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/v5...v6)
---
updated-dependencies:
- dependency-name: actions/upload-artifact
dependency-version: '6'
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* enh(internal): internal logging api (#3425)
* feat(logging): introduce SentryDebugLogger for enhanced diagnostic logging
This commit adds a new `SentryDebugLogger` class to provide a lightweight, isolate-compatible logging solution for the Sentry SDK. The logger supports various log levels and can be configured for each isolate. Additionally, it integrates with `SentryOptions` to enable logging based on the debug flag and diagnostic level. The existing `IsolateLogger` has been removed in favor of this new implementation, streamlining the logging process across the SDK.
- Added `SentryDebugLogger` for structured logging.
- Updated `SentryOptions` to configure the logger based on debug settings.
- Replaced instances of `IsolateLogger` with `SentryDebugLogger` in relevant files.
- Added unit tests for the new logger functionality.
* refactor(sentry): remove debug logger warning from Sentry initialization
This commit removes a debug logger warning message from the Sentry class during initialization. The change helps to clean up the logging output and streamline the initialization process without affecting functionality.
* docs(debug_logger): update example usage and clarify instance requirements
This commit updates the documentation for the `SentryDebugLogger` to reflect the correct variable name in the example and adds a note emphasizing that each package should have at least one top-level instance of the logger. This enhances clarity for users implementing the logger in their applications.
* refactor(sentry): remove unused debug logger import and enhance debug logger documentation
This commit removes the unused import of the debug logger from the Sentry class and adds an internal annotation to the `SentryDebugLogger` in the debug logger file. Additionally, a comment is added in the isolate worker to suppress a lint warning related to the internal member usage, improving code clarity and maintainability.
* refactor(sentry): remove unused debug logger import from sentry_options.dart
This commit removes the unused import of the debug logger from the `sentry_options.dart` file, contributing to cleaner code and improved maintainability.
* docs(debug_logger): correct example usage in documentation
This commit updates the example usage in the `SentryDebugLogger` documentation to reflect the correct variable name, enhancing clarity for users implementing the logger in their applications.
* Update
* refactor(debug_logger): remove unused category parameter from logging methods
This commit simplifies the `SentryDebugLogger` class by removing the unused `category` parameter from the `debug`, `info`, `warning`, `error`, and `fatal` logging methods. This change enhances code clarity and reduces unnecessary complexity in the logging interface.
* refactor(debug_logger_test): remove test for category logging
This commit removes the test case that checks logging with a category parameter from the `debug_logger_test.dart` file. This change aligns with the recent refactor of the `SentryDebugLogger` class, which eliminated the unused category parameter, thereby enhancing the clarity and relevance of the test suite.
* refactor(android_replay_handler): enhance debug logging with context
This commit updates the logging statements in the `_AndroidReplayHandler` class to include the debug name from the configuration. This change improves the clarity of log messages by providing context for unexpected messages and payload types, aiding in debugging and monitoring efforts.
* refactor(debug_logger_test): enhance test coverage and improve naming conventions
This commit refactors the `debug_logger_test.dart` file by renaming test groups for clarity and adding new tests to verify the behavior of `SentryOptions.debug` and `SentryOptions.diagnosticLevel`. The changes improve the organization and comprehensiveness of the test suite, ensuring better validation of the `SentryDebugLogger` configuration and logging functionality.
* refactor(sentry_options): improve debug logger configuration and diagnostic level handling
This commit refactors the `SentryOptions` class to enhance the configuration of the debug logger. The `diagnosticLevel` setter now updates the logger's minimum level dynamically, ensuring that changes to the diagnostic level are reflected immediately. Additionally, the debug logger configuration is encapsulated in a private method for better organization and clarity.
* refactor(logging): replace SentryDebugLogger with SentryInternalLogger and enhance logging functionality
This commit refactors the logging mechanism by replacing the `SentryDebugLogger` with the new `SentryInternalLogger` across the codebase. The `SentryInternalLogger` provides improved logging capabilities, including compile-time constants for release, profile, and debug modes, ensuring better tree-shaking and performance. Additionally, the associated tests have been updated to validate the new logger's behavior, enhancing overall logging clarity and maintainability.
* refactor(logging): remove SentryDebugLogger and its import from the codebase
This commit removes the `SentryDebugLogger` class and its associated import from `sentry_options.dart`, streamlining the logging functionality in the Sentry SDK. This change is part of the ongoing effort to enhance the logging mechanism by transitioning to the `SentryInternalLogger`, which offers improved capabilities and performance.
* refactor(sentry_options): update logger configuration methods to use SentryInternalLogger
This commit modifies the `SentryOptions` class to replace calls to the deprecated `_configureDebugLogger` method with `_configureInternalLogger`. This change aligns with the recent transition to the `SentryInternalLogger`, ensuring consistent logging configuration and improving overall code clarity.
* refactor(logging): rename debugLogger to internalLogger for consistency
This commit renames the `debugLogger` to `internalLogger` across the codebase, including tests and various components. This change aligns with the recent transition to the `SentryInternalLogger`, ensuring consistent naming and improving clarity in the logging functionality.
* refactor(logging): remove debugLogger test and update logging references to internalLogger
This commit removes the test for the `debugLogger` constant in `internal_logger_test.dart` and updates references from `debugLogger` to `internalLogger` in the `_AndroidEnvelopeHandler` and `_AndroidReplayHandler` classes. These changes ensure consistency in the logging implementation and align with the recent transition to the `SentryInternalLogger`.
* refactor(logging): move _defaultLogOutput method to SentryInternalLogger
This commit relocates the `_defaultLogOutput` method into the `SentryInternalLogger` class, enhancing the organization of the logging functionality. This change improves code clarity and aligns with the ongoing refactor to streamline the logging mechanism within the Sentry SDK.
* refactor(logging): improve error logging format in isolate_worker
This commit enhances the error logging format in the `isolate_worker.dart` file by improving the readability of the log statement. The changes ensure that the error and stack trace are clearly separated, contributing to better debugging and monitoring of isolate message handling failures.
* fix(android): Envelope worker not starting when `autoInitializeNativeSdk` is disabled (#3420)
* Update
* Update CHANGELOG
* Enhance AndroidEnvelopeSender to buffer envelopes when worker is not started and flush them upon starting. Update tests to reflect new buffering behavior and log changes from warning to info level.
* Refactor SentryNativeJava tests: Split tests into separate files for VM and web environments. Introduce new test file for SentryNativeJava with ReplaySizeAdjustment and EnvelopeSender initialization tests. Remove redundant web stubs and streamline imports.
* Refactor AndroidEnvelopeSender: Remove pending envelopes buffering and streamline envelope capture logic. Ensure envelopes are sent directly when the worker is available, and adjust logging for envelope capture in the main isolate. Update SentryNativeJava to start the envelope sender conditionally.
* Enhance AndroidEnvelopeSender to manage closed state and improve envelope capture logic. Introduce a flag to prevent envelope capture after closure and update logging to use a required logger parameter. Adjust tests to reflect changes in behavior when the worker is not started.
* Refactor AndroidEnvelopeSender: Adjust captureEnvelope method to ensure client assignment occurs after closed state check. This change improves clarity and maintains the integrity of the envelope sending process.
* Fix AndroidEnvelopeSender start method to prevent spawning a worker if already closed. Update tests to reflect the expected spawn count when the sender is closed.
* Update Android envelope capture test to assert behavior when the native channel is unavailable. Introduced a matcher for improved error handling in the captureEnvelope method.
* Refactor AndroidEnvelopeSender start method to ensure proper closure handling during worker spawning. Introduce a guard clause to close the worker if the sender is already closed, enhancing stability and preventing resource leaks.
* Refactor AndroidEnvelopeSender test to clarify logging behavior when sending envelopes in the main isolate. Update test description for improved readability and understanding of the expected functionality.
* refactor(AndroidEnvelopeSender): update constructor to use SentryOptions and improve logging
This commit refactors the `AndroidEnvelopeSender` class to replace the `_options` parameter with `SentryOptions` in the constructor. It also enhances the logging mechanism by utilizing `internalLogger` for logging messages related to envelope capture. The `_captureEnvelope` method has been updated to streamline error handling and improve clarity in logging, ensuring better maintainability and consistency across the codebase.
* refactor(AndroidEnvelopeSender test): enhance logging configuration for envelope sending
This commit updates the logging mechanism in the `AndroidEnvelopeSender` test to utilize the new `SentryInternalLogger`. The changes include removing the previous debug options and configuring the logger to capture logs with improved structure and clarity. This refactor aims to enhance the maintainability and consistency of logging behavior during envelope sending in the main isolate.
* release: 9.9.2
* chore(agents): Add `AGENTS.md` (#3426)
* Update
* Refine test naming conventions in AGENTS.md for improved clarity and structure
- Updated guidelines to ensure test group and test names read as coherent sentences.
- Introduced a structured approach for naming by depth, emphasizing the use of subjects, contexts, variants, and behaviors.
- Added examples and anti-patterns to illustrate best practices in test organization and naming.
* Enhance Dart code design guidelines in AGENTS.md
- Added comprehensive guidelines for identifiers, ordering, formatting, comments, and documentation to improve code consistency and readability.
- Included best practices for naming conventions, code structure, and documentation styles to align with the Effective Dart guide.
- Emphasized the importance of adhering to these guidelines for new and modified tests.
* Refactor AGENTS.md for improved clarity and structure
- Streamlined project structure section by removing table format for a more concise list format.
- Updated environment section to include specific Flutter and Dart versions.
- Enhanced testing guidelines with clearer commands and descriptions for Dart and Flutter packages.
- Added new guidelines for modern Dart language features to promote clarity and reduce boilerplate in code.
* Enhance agent documentation and testing guidelines
- Updated AGENTS.md to clarify the structure and purpose of the Sentry Dart/Flutter SDK.
- Introduced new documentation files for code guidelines and test conventions, emphasizing best practices for Dart/Flutter development.
- Added detailed sections on naming conventions, test structure, and the use of modern Dart features to improve code clarity and maintainability.
- Ensured that all new and modified code adheres to these updated guidelines for consistency across the project.
* Update documentation comments guidelines in code-guidelines.md
- Renamed section from "Doc Comments" to "Documentation Comments" for clarity.
- Added recommendations for when to write comments, emphasizing the importance of self-documenting code.
- Included specific guidelines on documenting public APIs and non-obvious reasoning, while advising against commenting on obvious behavior and providing excessive inline commentary.
* build(deps): bump aws-sdk-s3 from 1.203.0 to 1.208.0 in /metrics (#3428)
Bumps [aws-sdk-s3](https://github.com/aws/aws-sdk-ruby) from 1.203.0 to 1.208.0.
- [Release notes](https://github.com/aws/aws-sdk-ruby/releases)
- [Changelog](https://github.com/aws/aws-sdk-ruby/blob/version-3/gems/aws-sdk-s3/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-ruby/commits)
---
updated-dependencies:
- dependency-name: aws-sdk-s3
dependency-version: 1.208.0
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps): bump aws-sdk-s3 in /packages/flutter/example/ios (#3417)
Bumps [aws-sdk-s3](https://github.com/aws/aws-sdk-ruby) from 1.203.0 to 1.208.0.
- [Release notes](https://github.com/aws/aws-sdk-ruby/releases)
- [Changelog](https://github.com/aws/aws-sdk-ruby/blob/version-3/gems/aws-sdk-s3/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-ruby/commits)
---
updated-dependencies:
- dependency-name: aws-sdk-s3
dependency-version: 1.208.0
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps): bump ruby/setup-ruby from 1.268.0 to 1.278.0 (#3430)
Bumps [ruby/setup-ruby](https://github.com/ruby/setup-ruby) from 1.268.0 to 1.278.0.
- [Release notes](https://github.com/ruby/setup-ruby/releases)
- [Changelog](https://github.com/ruby/setup-ruby/blob/master/release.rb)
- [Commits](https://github.com/ruby/setup-ruby/compare/8aeb6ff8030dd539317f8e1769a044873b56ea71...4c24fa5ec04b2e79eb40571b1cee2a0d2b705771)
---
updated-dependencies:
- dependency-name: ruby/setup-ruby
dependency-version: 1.278.0
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* chore: update scripts/update-symbol-collector.sh to 2.3.1 (#3385)
Co-authored-by: GitHub <noreply@github.com>
* build(deps): bump reactivecircus/android-emulator-runner (#3328)
Bumps [reactivecircus/android-emulator-runner](https://github.com/reactivecircus/android-emulator-runner) from 2.34.0 to 2.35.0.
- [Release notes](https://github.com/reactivecircus/android-emulator-runner/releases)
- [Changelog](https://github.com/ReactiveCircus/android-emulator-runner/blob/main/CHANGELOG.md)
- [Commits](https://github.com/reactivecircus/android-emulator-runner/compare/1dcd0090116d15e7c562f8db72807de5e036a4ed...b530d96654c385303d652368551fb075bc2f0b6b)
---
updated-dependencies:
- dependency-name: reactivecircus/android-emulator-runner
dependency-version: 2.35.0
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Giancarlo Buenaflor <giancarlo_buenaflor@yahoo.com>
* chore: update metrics/flutter.properties to 3.38.5 (#3387)
Co-authored-by: GitHub <noreply@github.com>
* build(deps): bump actions/checkout from 4 to 6 (#3365)
Bumps [actions/checkout](https://github.com/actions/checkout) from 4 to 6.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v4...v6)
---
updated-dependencies:
- dependency-name: actions/checkout
dependency-version: '6'
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Giancarlo Buenaflor <giancarlo_buenaflor@yahoo.com>
* chore: update packages/flutter/scripts/update-native.sh to 0.12.3 (#3438)
Co-authored-by: GitHub <noreply@github.com>
* Add claude settings (#3445)
* Add `CLAUDE.md` symlink to `AGENTS.md`
* Move `TelemetryProcessor` from span-first branch and replace `LogBatcher` (#3448)
* Add TelemetryProcessor for span and log buffering
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
* Remove SpanV2 and TraceLifecycle dependencies
- Remove addSpan method from TelemetryProcessor interface
- Remove span buffer from DefaultTelemetryProcessor
- Remove captureSpan method from SentryClient
- Remove traceLifecycle property from SentryOptions
- Remove span imports and exports
- Update mocks to remove span-related code
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
* Remove span-related tests from sentry_client_test
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
* Remove span-related processor tests
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
* Remove span import from Flutter mocks
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
* Fix wiring up
* Update
* Update
* Update CHANGELOG
* Update
* Remove logbatcher
* Polish
---------
Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>
* chore(deps): update Flutter SDK (metrics) to v3.38.7 (#3437)
* chore: update metrics/flutter.properties to 3.38.7
* update
* update
* Update
---------
Co-authored-by: GitHub <noreply@github.com>
Co-authored-by: Giancarlo Buenaflor <giancarlobuenaflor97@gmail.com>
* fix: update kotlin version handling in android (#3436)
* update kotlin version handling in android build scripts for CI compatibility
* Fix Kotlin version format in workflow file
* Update
* Update
* Update
* Remove CI override comment for Kotlin language version
Removed comment about allowing CI to override Kotlin language version.
* release: 9.10.0
* Update Xcode version to 16.4 in workflow (#3452)
* fix(ci): failing package-analysis (#3453)
* Fix analyze
* Fix analyze
* Fix analyze
* Fix analyze
* Fix analyze
* Fix analyze
* Fix analyze
* Fix analyze
* Fix analyze
* Fix analyze
* Refactor Pana score check logic in analyze.yml
* chore: ignore local Claude settings (#3462)
Add .claude/settings.local.json to .gitignore to prevent committing
local Claude Code configuration.
* chore: update packages/flutter/scripts/update-android.sh to 8.30.0 (#3451)
Co-authored-by: GitHub <noreply@github.com>
* feat: trace connected metrics (#3450)
Adds trace connected metrics feature to Dart
---------
Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>
* refactor(log): make implementation consistent with metrics and span-first (#3463)
Make log implementation consistent with metrics and span-first
Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>
* build(deps): bump actions/setup-java from 4 to 5 (#3461)
Bumps [actions/setup-java](https://github.com/actions/setup-java) from 4 to 5.
- [Release notes](https://github.com/actions/setup-java/releases)
- [Commits](https://github.com/actions/setup-java/compare/v4...v5)
---
updated-dependencies:
- dependency-name: actions/setup-java
dependency-version: '5'
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* feat(flutter): Add captureNativeFailedRequests option for iOS/macOS (#3472)
Add a new `captureNativeFailedRequests` option to control native HTTP
failed request capturing independently from `captureFailedRequests`.
This separation allows users to:
- Keep Dart-side failed request capturing enabled while disabling native
- Or vice versa, based on their needs
For backwards compatibility, `captureNativeFailedRequests` defaults to
`null`, which falls back to the value of `captureFailedRequests`. This
ensures existing users who set `captureFailedRequests = false` will
still have native capturing disabled as expected.
* release: 9.11.0-beta.1
* chore: update GitHub Actions workflows to use updater v3 (#3468)
* chore: update GitHub Actions workflows to use new updater version
Refactor the update-deps.yml workflow to utilize the latest version of the updater action, improving the structure and permissions for dependency updates across Android, Cocoa, JavaScript, Native, and Symbol Collector jobs.
* chore: add pull request trigger for update-deps.yml workflow
Include a pull request trigger in the update-deps.yml workflow for testing purposes, while maintaining existing push configurations.
* chore: update update-deps.yml to use ssh-key instead of api-token
Refactor the update-deps.yml workflow to replace the api-token with ssh-key for Android, Cocoa, JavaScript, Native, and Symbol Collector jobs, enhancing security and access management.
* Update
* Fix cocoa
* Fix formatting in update-deps.yml permissions section
* Modify update-deps workflow triggers
Removed pull_request trigger from update-deps workflow.
* Fix cocoa
* Update
* Update
* Disable wasm runner for now (#3478)
* ci(testflight): Update to Xcode 26.2 (#3479)
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
* ref(dart): Remove unused beforeMetricCallback (#3484)
Remove dead code that was never used in the codebase. The
BeforeMetricCallback typedef and beforeMetricCallback field
in SentryOptions had no references anywhere in the SDK.
Co-authored-by: Claude <noreply@anthropic.com>
* ref(tracing-instrumentation): Introduce internal instrumentation abstraction for packages (#3488)
* feat(tracing): Introduce internal instrumentation API for Sentry
- Added `InstrumentationSpan` and `LegacyInstrumentationSpan` classes to provide a backend-agnostic abstraction for tracing.
- Implemented `InstrumentationSpanFactory` for creating spans, allowing for future flexibility in span implementations.
- Enhanced `SentryOptions` to include a `spanFactory` for custom span creation.
- Updated various components to utilize the new instrumentation API, including `SentryInstrumentation` and `TransactionInstrumentation`.
- Refactored existing database executor and batch classes to support the new instrumentation spans.
This update improves the tracing capabilities and prepares the codebase for future enhancements in span management.
* refactor(tracing): Simplify transaction instrumentation documentation
- Removed outdated comments and example usage from the `TransactionInstrumentation` class.
- Clarified the behavior of transaction methods by streamlining the documentation.
- Enhanced code readability and maintainability by focusing on essential information.
This update improves the clarity of the transaction instrumentation API, making it easier for developers to understand its usage.
* Update
* Update
* Update
* Update
* Update
* refactor(tracing): Improve transaction stack management in Sentry instrumentation
- Ensured that the transaction stack maintains nesting invariants by always pushing a null value when no parent exists.
- Simplified the logic for adding and removing spans from the stack, enhancing clarity and reducing potential errors.
- Removed redundant comments and streamlined the handling of null spans in transaction methods.
This update enhances the robustness of the Sentry tracing implementation, making it more reliable during transaction execution.
* Remove unnecessary hint
* Fix review issues
* Fix review issues
* Fix review issues
* Fix review issues
* Remove unnecessary files
* Naming
* Naming
* Analyzer
* Naming
* Add test
* Update
* Change finish call to unawaited in error handling
* Add async import to sentry_span_helper.dart
* Update
* ref(tracing-instrumentation): migrate hive, isar, file, supabase and link (#3489)
* feat(hive): add internal logger for sentry_hive package
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* feat(hive): migrate SentrySpanHelper to InstrumentationSpan
- Use InstrumentationSpanFactory instead of hub.getSpan()?.startChild()
- Add proper null checks with warning logs
- Maintain both async and sync wrapper methods
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* feat(hive): update classes to use new SentrySpanHelper constructor
- Pass Hub directly to SentrySpanHelper constructor
- Remove setHub() method calls
- Update tests to use constructor parameter
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* feat(file): migrate to InstrumentationSpan
- Use InstrumentationSpanFactory instead of hub.getSpan()?.startChild()
- Maintain both async and sync wrapper methods
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* feat(supabase): migrate to InstrumentationSpan
- Use InstrumentationSpanFactory instead of hub.getSpan()?.startChild()
- Return InstrumentationSpan from _createSpan helper
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* feat(link): migrate SentryTracingLink to InstrumentationSpan
- Use InstrumentationSpanFactory for child span creation
- Keep legacy API for transaction creation (when shouldStartTransaction=true)
- Wrap transactions in LegacyInstrumentationSpan for unified interface
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* feat(link): migrate SentryRequestSerializer to InstrumentationSpan
- Use InstrumentationSpanFactory instead of hub.getSpan()?.startChild()
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* feat(link): migrate SentryResponseParser to InstrumentationSpan
- Use InstrumentationSpanFactory instead of hub.getSpan()?.startChild()
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* Update
* Update
* Update
* Update
* Update
* Update
* feat(supabase): add internal logger and update dependencies
- Introduced an internal logger using Sentry for better tracing.
- Added 'meta' package as a dependency in pubspec.yaml.
- Updated Sentry tracing logic to utilize the new internal logger for warnings.
* Update
---------
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
* ref(dart): instrumentation span for http dio (#3493)
* ref(tracing-instrumentation): migrate http and dio to instrumentation span
Migrate TracingClient (http package) and TracingClientAdapter (dio package)
to use the new InstrumentationSpanFactory pattern, consistent with the
recent migration of hive, isar, file, supabase, and link packages.
Changes:
- Add InstrumentationSpanFactory field to TracingClient and TracingClientAdapter
- Replace hub.getSpan()?.startChild() with spanFactory.getSpan()/createSpan()
- Extract underlying ISentrySpan via LegacyInstrumentationSpan.spanReference
for tracing headers (sentry-trace, baggage, traceparent)
- Add applyToInstrumentationSpan() method to UrlDetails for URL data
All existing tests pass without modification, preserving backward compatibility.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* ref(dio): migrate SentryTransformer to instrumentation span
Complete the migration of dio package to use InstrumentationSpanFactory
by updating SentryTransformer's transformRequest and transformResponse
methods.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* ref(tracing): rename applyToInstrumentationSpan to applyToSpan
Remove the old ISentrySpan-based applyToSpan method and rename
applyToInstrumentationSpan to applyToSpan since all callers now use
InstrumentationSpan.
Update url_details_test.dart to use MockInstrumentationSpan.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* chore(tests): add mock_span import to lifecycle tests
Added the mock_span import to both sentry_client_lifecycle_test.dart and sentry_client_sdk_lifecycle_test.dart to facilitate testing with spans.
* feat(tests): add MockSpan class for testing Sentry spans
Introduced a new MockSpan class in mock_span.dart to facilitate testing with SentrySpan, providing a mock implementation for use in unit tests.
* ref(tracing): remove commented code for extracting ISentrySpan
Removed commented-out code related to extracting ISentrySpan for tracing headers in TracingClient and TracingClientAdapter, streamlining the codebase.
* ref(tracing): enhance tracing header handling with InstrumentationSpan
Updated TracingClient and TracingClientAdapter to utilize the new addTracingHeadersFromInstrumentationSpan method for adding tracing headers. This change simplifies the code by directly passing the InstrumentationSpan, improving clarity and maintainability. Additionally, new methods for converting spans to Sentry trace and baggage headers were added to the InstrumentationSpan interface.
* ref(tracing): rename addTracingHeadersFromInstrumentationSpan to addTracingHeadersToHttpHeader
Updated the TracingClient and TracingClientAdapter to use the renamed addTracingHeadersToHttpHeader method for adding tracing headers. This change improves code clarity and consistency across the codebase by standardizing the method name. Adjusted related tests to accommodate the new method signature.
* ref(baggage): remove logging callback from SentryBaggage
Refactored SentryBaggage to eliminate the logging callback, replacing it with an internal logger for improved logging consistency. Updated related methods and tests to reflect this change, enhancing code clarity and maintainability.
* Update
* ref(baggage): simplify toBaggage method by removing logging callback
Refactored the toBaggage method in SentryTraceContextHeader to eliminate the logging callback, enhancing code clarity. Updated the SentryTracer to reflect this change, ensuring consistency across the codebase.
* Update
---------
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
* Update CHANGELOG
---------
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
* build(deps): bump actions/checkout from 5 to 6 (#3460)
Bumps [actions/checkout](https://github.com/actions/checkout) from 5 to 6.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v5...v6)
---
updated-dependencies:
- dependency-name: actions/checkout
dependency-version: '6'
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps): bump ruby/setup-ruby from 1.278.0 to 1.286.0 (#3482)
Bumps [ruby/setup-ruby](https://github.com/ruby/setup-ruby) from 1.278.0 to 1.286.0.
- [Release notes](https://github.com/ruby/setup-ruby/releases)
- [Changelog](https://github.com/ruby/setup-ruby/blob/master/release.rb)
- [Commits](https://github.com/ruby/setup-ruby/compare/4c24fa5ec04b2e79eb40571b1cee2a0d2b705771...90be1154f987f4dc0fe0dd0feedac9e473aa4ba8)
---
updated-dependencies:
- dependency-name: ruby/setup-ruby
dependency-version: 1.286.0
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* fix(dart): Catch client exceptions in HttpTransport.send (#3490)
* fix(dart): Catch client exceptions in HttpTransport.send
Prevents unhandled exceptions like `ClientException: Connection closed
before full header was received` from crashing the host application.
The error is logged via internalLogger and only rethrown in
automatedTestMode.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* Update
* Update CHANGELOG
* Update
* Update
* Implement lost event recording in HttpTransport for network errors
Enhance the HttpTransport class to record lost events when a network error occurs during envelope transmission. This includes logging discarded events for both Sentry transactions and spans. Add corresponding tests to verify the functionality when client exceptions are thrown.
* Refactor lost event handling in HttpTransport and TransportUtils
Consolidate lost event recording logic into TransportUtils for better reusability. Update HttpTransport to utilize the new method for recording lost events on network errors. Enhance logging for response statuses, including rate limit handling. Remove redundant lost event recording method from HttpTransport.
* Update
* Update
* Rename to recordLostEvents
---------
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
* release: 9.11.0-beta.2
* chore(release): prepare `9.11.0` changelog (#3498)
* Update CHANGELOG
* Revise CHANGELOG for enhancements and dependencies
Updated CHANGELOG to reflect enhancements and dependency bumps.
* release: 9.11.0
* chore: update packages/flutter/scripts/update-native.sh to 0.12.5 (#3481)
Co-authored-by: GitHub <noreply@github.com>
* chore: update packages/flutter/scripts/update-android.sh to 8.31.0 (#3476)
Co-authored-by: GitHub <noreply@github.com>
* release: 9.12.0
* chore: update packages/flutter/scripts/update-js.sh to 10.38.0 (#3474)
Co-authored-by: GitHub <noreply@github.com>
* chore(bugbot): Update `BUGBOT.md` to check the PR description when reviewing dependency updates (#3509)
* Update BUGBOT.md
* chore(deps): update Android SDK to v8.32.0 (#3506)
* chore: update packages/flutter/scripts/update-android.sh to 8.32.0
* Add spotlight as debugImplementation
* Update analyze
* Updat
* Update android example sdk targets
* Update
---------
Co-authored-by: GitHub <noreply@github.com>
Co-authored-by: Giancarlo Buenaflor <giancarlo_buenaflor@yahoo.com>
Co-authored-by: Giancarlo Buenaflor <giancarlobuenaflor97@gmail.com>
* feat(flutter): Synchronize `traceId` to native SDKs (#3507)
* feat: Synchronize PropagationContext to native SDKs (#3406)
Native crashes/errors on Android and iOS carry their own independently-
generated traceId, disconnecting them from the Dart-side trace. This
wires up the existing native setTrace APIs so the Dart PropagationContext
is synced to native on init and whenever generateNewTrace() is called.
- Add OnTraceReset lifecycle event dispatched from Hub.generateNewTrace()
- Add NativeTraceSyncIntegration that subscribes to OnTraceReset and
calls the platform-specific native setTrace API
- Implement setTrace on all platform bindings (JNI for Android, method
channel for Cocoa, no-op for C/Web)
- Add supportsTraceSync capability flag to SentryNativeBinding
- Disable native auto trace ID generation on Android so Flutter is
the single source of truth
- Add setTrace handler in iOS SentryFlutterPlugin.swift
- Register NativeTraceSyncIntegration in default integrations
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* Fix build
* Update CHANGELOG
* Update
* Update
* Update
* Update
* Fix mocks
* Update
* Update doc
* Fix changelog
* Update
* Review
* Update
* Bubble up error from native flutter plugin in swift
* Move enableNativeTraceSync from dart to flutter options
* Fix duplicate result
* Improve documentation
---------
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
* chore(deps): update Native SDK to v0.12.6 (#3502)
* chore: update packages/flutter/scripts/update-native.sh to 0.12.6
* Update gitignore
---------
Co-authored-by: GitHub <noreply@github.com>
Co-authored-by: Giancarlo Buenaflor <giancarlobuenaflor97@gmail.com>
* internal(flutter): Add SDK features metadata for SPM vs CocoaPods tracking (#3508)
* feat(dart): Add `features` list to `SdkVersion` metadata
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* feat(flutter): Merge native SDK features into event metadata
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* feat(flutter): Report SPM vs CocoaPods build type as SDK feature on iOS
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* Review
* Remove redundant comments
---------
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
* release: 9.13.0
* ci(release): Switch from action-prepare-release to Craft (#3440)
* ci(release): Switch from action-prepare-release to Craft
This PR migrates from the deprecated action-prepare-release to the new
Craft GitHub Actions (reusable workflow or composite action).
Changes:
- Migrate .github/workflows/release.yml to Craft reusable workflow
* ci(release): Restore GitHub App token authentication
The previous migration incorrectly removed the GitHub App token
authentication step. This commit restores it by switching to the
composite action pattern which preserves the auth flow.
* fix: Pin actions to SHA and add permissions blocks
* fix: Use correct action version SHAs (restore original versions)
* fix: Use correct action version SHAs (restore original versions)
* fix: Clean up action version comments
* Update Craft SHA to 1c58bfd57bfd6a967b6f3fc92bead2c42ee698ce
* Add explicit permissions block to analyze.yml
* Add explicit permissions block to dart.yml
* Add explicit permissions block to dio.yml
* Add explicit permissions block to drift.yml
* Add explicit permissions block to e2e_dart.yml
* Add explicit permissions block to file.yml
* Add explicit permissions block to firebase_remote_config.yml
* Add explicit permissions block to flutter.yml
* Add explicit permissions block to flutter_test.yml
* Add explicit permissions block to format-and-fix.yml
* Add explicit permissions block to hive.yml
* Add explicit permissions block to isar.yml
* Add explicit permissions block to link.yml
* Add explicit permissions block to logging.yml
* Add explicit permissions block to metrics.yml
* Add explicit permissions block to min_version_test.yml
* Add explicit permissions block to sqflite.yml
* Add explicit permissions block to supabase.yml
* Add explicit permissions block to testflight.yml
* Add explicit permissions block to web-example-ghpages.yml
* Revert permissions changes to analyze.yml
* Revert permissions changes to dart.yml
* Revert permissions changes to dio.yml
* Revert permissions changes to drift.yml
* Revert permissions changes to e2e_dart.yml
* Revert permissions changes to file.yml
* Revert permissions changes to firebase_remote_config.yml
* Revert permissions changes to flutter.yml
* Revert permissions changes to flutter_test.yml
* Revert permissions changes to format-and-fix.yml
* Revert permissions changes to hive.yml
* Revert permissions changes to isar.yml
* Revert permissions changes to link.yml
* Revert permissions changes to logging.yml
* Revert permissions changes to metrics.yml
* Revert permissions changes to min_version_test.yml
* Revert permissions changes to sqflite.yml
* Revert permissions changes to supabase.yml
* Revert permissions changes to testflight.yml
* Revert permissions changes to web-example-ghpages.yml
* fix: revert extraneous changes to non-release workflow files
* fix: clean up release.yml formatting and version comments
* build(craft): Update Craft action to c6e2f04
* chore: add unlabeled trigger to changelog-preview
* build(deps): bump faraday from 1.10.4 to 1.10.5 in /metrics (#3511)
Bumps [faraday](https://github.com/lostisland/faraday) from 1.10.4 to 1.10.5.
- [Release notes](https://github.com/lostisland/faraday/releases)
- [Changelog](https://github.com/lostisland/faraday/blob/main/CHANGELOG.md)
- [Commits](https://github.com/lostisland/faraday/compare/v1.10.4...v1.10.5)
---
updated-dependencies:
- dependency-name: faraday
dependency-version: 1.10.5
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* chore: update packages/flutter/scripts/update-native.sh to 0.12.7 (#3514)
Co-authored-by: GitHub <noreply@github.com>
* chore: update metrics/flutter.properties to 3.41.1 (#3486)
Co-authored-by: GitHub <noreply@github.com>
* build(deps): bump getsentry/craft from 2.19.0 to 2.21.4 (#3518)
Bumps [getsentry/craft](https://github.com/getsentry/craft) from 2.19.0 to 2.21.4.
- [Release notes](https://github.com/getsentry/craft/releases)
- [Changelog](https://github.com/getsentry/craft/blob/master/CHANGELOG.md)
- [Commits](https://github.com/getsentry/craft/compare/c6e2f04939b6ee67030588afbb5af76b127d8203...906009a1b771956757e521555b561379307eb667)
---
updated-dependencies:
- dependency-name: getsentry/craft
dependency-version: 2.21.4
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps): bump ruby/setup-ruby from 1.286.0 to 1.288.0 (#3519)
Bumps [ruby/setup-ruby](https://github.com/ruby/setup-ruby) from 1.286.0 to 1.288.0.
- [Release notes](https://github.com/ruby/setup-ruby/releases)
- [Changelog](https://github.com/ruby/setup-ruby/blob/master/release.rb)
- [Commits](https://github.com/ruby/setup-ruby/compare/90be1154f987f4dc0fe0dd0feedac9e473aa4ba8...09a7688d3b55cf0e976497ff046b70949eeaccfd)
---
updated-dependencies:
- dependency-name: ruby/setup-ruby
dependency-version: 1.288.0
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* chore: update packages/flutter/scripts/update-native.sh to 0.12.8 (#3520)
Co-authored-by: GitHub <noreply@github.com>
* fix(dart): Dont guard user behind `sendDefaultPii` (#3524)
* Dont guard user attributes with sendDEfaultPii
* Update sample
* Update CHANGELOG
* Update comments
* Add enableTombstone option for native crash reporting on Android (#3526)
* feat(flutter): Add enableTombstone option for improved native crash reporting
Add `enableTombstone` option to SentryFlutterOptions that enables tombstone-based
native crash reporting on Android 12+ (API level 30+).
When enabled, uses Android's `ApplicationExitInfo.REASON_CRASH_NATIVE` to capture
native crashes with more detailed thread information.
The option is disabled by default.
Slack thread: https://sentry.slack.com/archives/CP4UUUF1S/p1771404252312029?thread_ts=1769055443.846779&cid=CP4UUUF1S
https://claude.ai/code/session_016kkosYW3XG2rhHafEfspqA
* Apply suggestion from @romtsn
* Add integration test
* Enable tombstone option in integration test
---------
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: Giancarlo Buenaflor <giancarlobuenaflor97@gmail.com>
Co-authored-by: Giancarlo Buenaflor <giancarlo.buenaflor@sentry.io>
* chore(deps): update Android SDK to v8.33.0 (#3529)
* chore: update packages/flutter/scripts/update-android.sh to 8.33.0
* Update jni call when creating bitmap
---------
Co-authored-by: GitHub <noreply@github.com>
Co-authored-by: Giancarlo Buenaflor <giancarlobuenaflor97@gmail.com>
* internal(web): add sdk name for native js errors (#3525)
* Add beforeSend to change sdk name in JS
* Add beforeSend to js
* Review
* Cleanup
* Update factory for creating JsSdkInfo
* release: 9.14.0
* fix(flutter): Stop re-triggering hitTest in SentryUserInteractionWidget on pointerUp (#3540)
* build(deps): bump actions/create-github-app-token from 2.2.1 to 3.0.0 (#3562)
Bumps [actions/create-github-app-token](https://github.com/actions/create-github-app-token) from 2.2.1 to 3.0.0.
- [Release notes](https://github.com/actions/create-github-app-token/releases)
- [Commits](https://github.com/actions/create-github-app-token/compare/29824e69f54612133e76f7eaac726eef6c875baf...f8d387b68d61c58ab83c6c016672934102569859)
---
updated-dependencies:
- dependency-name: actions/create-github-app-token
dependency-version: 3.0.0
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps): bump dorny/paths-filter from 3.0.2 to 4.0.1 (#3561)
Bumps [dorny/paths-filter](https://github.com/dorny/paths-filter) from 3.0.2 to 4.0.1.
- [Release notes](https://github.com/dorny/paths-filter/releases)
- [Changelog](https://github.com/dorny/paths-filter/blob/master/CHANGELOG.md)
- [Commits](https://github.com/dorny/paths-filter/compare/de90cc6fb38fc0963ad72b210f1f284cd68cea36...fbd0ab8f3e69293af611ebaee6363fc25e6d187d)
---
updated-dependencies:
- dependency-name: dorny/paths-filter
dependency-version: 4.0.1
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps): bump getsentry/craft from 2.21.4 to 2.24.2 (#3559)
Bumps [getsentry/craft](https://github.com/getsentry/craft) from 2.21.4 to 2.24.2.
- [Release notes](https://github.com/getsentry/craft/releases)
- [Changelog](https://github.com/getsentry/craft/blob/master/CHANGELOG.md)
- [Commits](https://github.com/getsentry/craft/compare/906009a1b771956757e521555b561379307eb667...78da70b88de5cf6245d5d7e3263a9e8952667dec)
---
updated-dependencies:
- dependency-name: getsentry/craft
dependency-version: 2.24.2
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps): bump ruby/setup-ruby from 1.288.0 to 1.293.0 (#3560)
Bumps [ruby/setup-ruby](https://github.com/ruby/setup-ruby) from 1.288.0 to 1.293.0.
- [Release notes](https://github.com/ruby/setup-ruby/releases)
- [Changelog](https://github.com/ruby/setup-ruby/blob/master/release.rb)
- [Commits](https://github.com/ruby/setup-ruby/compare/09a7688d3b55cf0e976497ff046b70949eeaccfd...dffb23f65a78bba8db45d387d5ea1bbd6be3ef18)
---
updated-dependencies:
- dependency-name: ruby/setup-ruby
dependency-version: 1.293.0
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps): bump actions/upload-artifact from 6 to 7 (#3545)
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 6 to 7.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/v6...v7)
---
updated-dependencies:
- dependency-name: actions/upload-artifact
dependency-version: '7'
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* chore: update packages/flutter/scripts/update-android.sh to 8.35.0 (#3546)
Co-authored-by: GitHub <noreply@github.com>
* fix(sqflite): Implement SqfliteDatabaseExecutor to prevent TypeError on getVersion/setVersion (#3539)
* chore: update metrics/flutter.properties to 3.41.4 (#3533)
Co-authored-by: GitHub <noreply@github.com>
* chore: update packages/flutter/scripts/update-native.sh to 0.13.2 (#3535)
Co-authored-by: GitHub <noreply@github.com>
* fix(logs): Use seconds since the Unix epoch for `log.timestamp` (#3558)
We have incorrectly used `timestamp.toIso8601String()` and this was only accepted because the backend does lenient date/timestamp parsing.
On the native Android error it does lead to parsing issues though, as reported by a user.
* ci(deps): Pin Cocoa SDK auto-updates to 8.x.x (#3563)
* ci(deps): Pin Cocoa SDK auto-updates to 8.x.x
Restrict the dependency updater to only pick up Cocoa SDK 8.x.x
releases until the next major version (v10) is ready to be adopted.
Co-Authored-By: Claude <noreply@anthropic.com>
* Add pull request trigger to update-deps workflow
* Update update-deps.yml to remove pull_request trigger
Removed pull_request trigger from update-deps workflow.
---------
Co-authored-by: Claude <noreply@anthropic.com>
* chore: update packages/flutter/scripts/update-cocoa.sh to 8.58.0 (#3475)
Co-authored-by: GitHub <noreply@github.com>
Co-authored-by: Giancarlo Buenaflor <giancarlo.buenaflor@sentry.io>
* fix: Enable session replay on iOS 26+ with Xcode 26+ (#3571)
* fix(sentry_flutter): enable session replay in unreliable environments for iOS 26+
* fix(sentry_flutter): remove unnecessary blank line in SentryFlutter.swift
* chore: update packages/flutter/scripts/update-android.sh to 8.36.0 (#3569)
Co-authored-by: GitHub <noreply@github.com>
* release: 9.15.0
* chore(ci): update sdk app overhead workflow dependency (#3572)
* chore: Add error monitoring solution question to bug report template (#3553)
* chore: Add error monitoring solution question to bug report template
* Fix bug report template to include 'Yes' option
* Set default value for error monitoring question
Add default value for other error monitoring solution field
---------
Co-authored-by: Giancarlo Buenaflor <giancarlo.buenaflor@sentry.io>
* build(deps): bump json in /packages/flutter/example/ios (#3576)
Bumps [json](https://github.com/ruby/json) from 2.16.0 to 2.17.1.2.
- [Release notes](https://github.com/ruby/json/releases)
- [Changelog](https://github.com/ruby/json/blob/master/CHANGES.md)
- [Commits](https://github.com/ruby/json/compare/v2.16.0...v2.17.1.2)
---
updated-dependencies:
- dependency-name: json
dependency-version: 2.17.1.2
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* chore: pin GitHub Actions to full-length commit SHAs (#3582)
* build(deps): bump getsentry/craft from 2.24.2 to 2.25.0 (#3580)
Bumps [getsentry/craft](https://github.com/getsentry/craft) from 2.24.2 to 2.25.0.
- [Release notes](https://github.com/getsentry/craft/releases)
- [Changelog](https://github.com/getsentry/craft/blob/master/CHANGELOG.md)
- [Commits](https://github.com/getsentry/craft/compare/78da70b88de5cf6245d5d7e3263a9e8952667dec...f4889d04564e47311038ecb6b910fef6b6cf1363)
---
updated-dependencies:
- dependency-name: getsentry/craft
dependency-version: 2.25.0
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* chore: update packages/flutter/scripts/update-android.sh to 8.37.0 (#3588)
Co-authored-by: GitHub <noreply@github.com>
* chore: update packages/flutter/scripts/update-native.sh to 0.13.3 (#3577)
Co-authored-by: GitHub <noreply@github.com>
* chore: update metrics/flutter.properties to 3.41.5 (#3575)
Co-authored-by: GitHub <noreply@github.com>
* ci: Automate JNI branch sync on release (#3593)
* ci: Automate JNI branch sync on release
Add a workflow that triggers on release published to automatically
sync the deps/jni-0.15.x branch. It merges the release tag,
regenerates JNI bindings via a safe fallback script, opens a PR,
and updates the version tracker table on issue #3373.
The safe-regenerate script tries the normal path first (flutter build
apk + jnigen). If that fails due to binding incompatibility, it falls
back to compiling only the Java/Kotlin plugin code via Gradle and
creating a stub libs.jar for jnigen — bypassing Dart compilation.
Refs GH-3373
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* ci: Use push trigger for version tracker and fix job conditions
Switch update-tracker from pull_request:closed to push trigger on
deps/jni-0.15.x so it fires on any merge (PR or direct push) and
correctly uses the merge commit SHA. Guard sync job with explicit
event_name == 'release' check to prevent it running on push events.
Refs GH-3373
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* Update .github/workflows/sync-jni-branch.yml
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* ci(sync-jni): Harden workflow security and scope permissions
Pass github.event.release.tag_name through env instead of inline
${{ }} interpolation to prevent script injection. Add tag format
validation. Move all context properties out of run blocks into env.
Scope permissions per-job: sync gets contents/pull-requests/issues
write, update-tracker gets only issues write.
Also read version from pubspec.yaml instead of parsing commit
messages, making version detection resilient to squash merges.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* fix(ci): Create failure issue on merge conflicts in JNI sync
The merge step lacked continue-on-error, so merge conflicts halted
the workflow before the issue creation step could run. Now the merge
step allows continuation on failure, downstream steps are gated on
merge success, and the failure issue fires for either merge or
regeneration failures with a "Failed step" indicator.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* ci(sync-jni): Remove update-tracker job and clean up triggers
Remove the update-tracker job and its push trigger since version
tracking on the issue is no longer needed. Restore safe concurrency
settings (cancel-in-progress: false) to prevent cancelling in-flight
syncs. Simplify job condition to just the prerelease check.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* chore(ci): Remove unused env vars from failure step
Remove REPO and REGENERATE_OUTCOME env vars that were declared but
never referenced in the run script.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* build(deps): bump json from 2.16.0 to 2.17.1.2 in /metrics (#3587)
Bumps [json](https://github.com/ruby/json) from 2.16.0 to 2.17.1.2.
- [Release notes](https://github.com/ruby/json/releases)
- [Changelog](https://github.com/ruby/json/blob/master/CHANGES.md)
- [Commits](https://github.com/ruby/json/compare/v2.16.0...v2.17.1.2)
---
updated-dependencies:
- dependency-name: json
dependency-version: 2.17.1.2
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps): bump ruby/setup-ruby from 1.293.0 to 1.295.0 (#3579)
Bumps [ruby/setup-ruby](https://github.com/ruby/setup-ruby) from 1.293.0 to 1.295.0.
- [Release notes](https://github.com/ruby/setup-ruby/releases)
- [Changelog](https://github.com/ruby/setup-ruby/blob/master/release.rb)
- [Commits](https://github.com/ruby/setup-ruby/compare/dffb23f65a78bba8db45d387d5ea1bbd6be3ef18...319994f95fa847cf3fb3cd3dbe89f6dcde9f178f)
---
updated-dependencies:
- dependency-name: ruby/setup-ruby
dependency-version: 1.295.0
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* chore: update packages/flutter/scripts/update-android.sh to 8.37.1 (#3595)
Co-authored-by: GitHub <noreply@github.com>
* release: 9.16.0
* chore: Resolve all merge conflicts
Take release 9.16.0 version for all files except:
- packages/flutter/pubspec.yaml: keep jni: ^0.15.0
- packages/flutter/lib/src/native/java/binding.dart: keep JNI branch version
* Update code changes
* ci: Add JNI version smoke test for deps/jni-0.15.x PRs
* ci: Bump min version test to Flutter 3.35.6 for jni ^0.15.0
* chore: Bump flutter min version to 3.35.6 and document sync rules
jni ^0.15.0 requires Flutter >=3.35.6, so the pubspec constraint
must reflect this. Also add JNI branch sync instructions to AGENTS.md
so agents know how to resolve merge conflicts correctly.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* fix(ci): Bump min_version_test Dart SDK to 3.9.0 for Flutter 3.35.6
* docs: Add Dart SDK constraint to AGENTS.md sync rules
* fix(ci): Use range constraints for SDK versions in min_version_test
* fix(ci): Pin exact SDK versions in min_version_test
* ci: Disable min_version_test on JNI branch
The min_version_test project scaffolding is incompatible with Flutter
3.35.6 required by jni ^0.15.0. The jni-version-check workflow guards
the dependency constraint instead.
* chore: Revert min_version_test pubspec to release values
---------
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: getsentry-bot <bot@sentry.io>
Co-authored-by: getsentry-bot <bot@getsentry.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: GitHub <noreply@github.com>
Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>
Co-authored-by: Philipp Hofmann <philipp.hofmann@sentry.io>
Co-authored-by: Burak Yigit Kaya <ben@byk.im>
Co-authored-by: Roman Zavarnitsyn <rom4ek93@gmail.com>
Co-authored-by: buenaflor <23364143+buenaflor@users.noreply.github.com>
Co-authored-by: Denis Andrašec <denrase@gmail.com>
Co-authored-by: Markus Hintersteiner <markus.hintersteiner@sentry.io>
Co-authored-by: joshuarli <joshuarli98@gmail.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
#skip-changelog