magic_sentry 0.0.3
magic_sentry: ^0.0.3 copied to clipboard
Sentry error and performance monitoring for the Magic Framework.
Changelog #
All notable changes to this project will be documented in this file.
[Unreleased] #
0.0.3 - 2026-10-09 #
Changed #
- Every sibling floor names this batch's release.
magicmoves^0.0.24to^0.0.27. The old range already admitted the new version, so a freshpub getresolves nothing differently; what changes is that the floor names the release this package is verified against. None of magic 0.0.25 to 0.0.27 is breaking. (pubspec.yaml)
0.0.2 - 2026-09-29 #
Changed #
- Every sibling floor names this batch's release.
magicmoves^0.0.22to^0.0.24. The old range already admitted the new version, so a freshpub getresolves nothing differently; what changes is that the floor names the release this package is verified against. The real requirement is still 0.0.22, the first release withEvent.listenAnyandReportsBreadcrumb. magic 0.0.24 removesMagicController.onRefreshUI(BREAKING); this package calls it nowhere inlib/ortest/, so nothing here moves with it. (pubspec.yaml) - The README and the installation guide name the event breadcrumbs and the magic requirement. The README lists
ReportsBreadcrumbevents among what the plugin reports, and its layout namesevent_breadcrumbs.dart; the installation guide states magic 0.0.22 or higher and why. (README.md,doc/getting-started/installation.md) - The published archive leaves out the repository's tooling. A
.pubignorekeeps.claude/,CLAUDE.md,.github/and IDE folders out of the archive. A.pubignorereplaces.gitignorefor pub rather than adding to it, so it also names the local-only files.gitignorecovered (pubspec_overrides.yaml,pubspec.lock,coverage/,.env). (.pubignore)
0.0.1 - 2026-09-27 #
Initial release.
Added #
MagicSentry.run: a zone-wrappedSentryFlutter.initboot, web-safe per flutter/flutter#100277, andMagicSentry.installErrorWidgetBreadcrumb, which tags a build error that replaced the interface.SentryServiceProvider<T>: wiresSentryNetworkInterceptorinto magic'sHttpdriver (withsentry_dio's own failed-request capture disabled to avoid double reporting), installsSentryUserContext<T>onAuth.stateNotifierwhen a host app suppliesuserId/userEmail, and registersSentryNavigatorObserveronMagicRouter. A failure wiring the interceptor is reported, throughLog.warningwith its stack trace whenlogis bound anddebugPrintotherwise, never swallowed.SentryNetworkInterceptor: reports a 5xx or a dead connection as an event fingerprinted by the normalised endpoint, a 4xx as a breadcrumb, and deduplicates repeats within a session.SentryUserContext<T>: keeps Sentry's scope user (id and email) and optional extra tags in step with the host app's ownAuthenticatablemodel.install()is idempotent: a second call adds no second listener.EventBreadcrumbs.breadcrumbFor: maps any dispatched event that implements magic'sReportsBreadcrumb(breadcrumbCategory,breadcrumbMessage,breadcrumbData) to a Sentry breadcrumb, and answers null for every other event.SentryServiceProvider.bootwires it throughEvent.listenAny, gated onSentry.isEnabledlike the provider's other hooks, and registers it once however many times it boots in one isolate. Any package or app event that opts in (magic_deeplink'sDeeplinkOpenedandDeeplinkNavigating, for example) shows up in the breadcrumb trail with no extra wiring. (lib/src/event_breadcrumbs.dart)assets/stubs/install/sentry_config.stub, published byinstall.yamlinto a consumer'slib/config/sentry.dartas an editable starting point: aconfigureSentryreadingSENTRY_DSN,SENTRY_ENVIRONMENT,SENTRY_RELEASEandSENTRY_TRACES_SAMPLE_RATEfrom.env. The barrel does not export a package copy of those names, so the documentedmain()imports them unambiguously from the app.- Requires
magic ^0.0.22, the first release withEvent.listenAnyandReportsBreadcrumb, andsentry_flutter/sentry_dio^9.27.0.