feat: add debug, breadcrumbs, and user sub-APIs#8072
Conversation
Add three new sub-APIs to SentrySDK.internal for hybrid SDK consumption: debug (image access), breadcrumbs (dictionary deserialization), and user (dictionary deserialization). Each sub-API follows the Dependencies protocol pattern with provider injection via SentryDependencyContainer, matching the existing SentryInternalSdkApi design. Includes ObjC wrapper headers/classes and Swift+ObjC integration tests.
|
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit e924575. Configure here.
| debugMeta.debugID = uuid | ||
| } | ||
| result.append(debugMeta) | ||
| } |
There was a problem hiding this comment.
Missing VM address in debug meta
Medium Severity
images(forAddresses:) builds DebugMeta manually and never sets imageVmAddress, unlike the sibling images property and SentryDebugImageProvider. Hybrid SDKs using address lookup can emit incomplete debug_meta, which can weaken Mach-O symbolication for stack frames.
Reviewed by Cursor Bugbot for commit e924575. Configure here.
📲 Install BuildsiOS
|
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## philprime/internal-api/sdk-skeleton #8072 +/- ##
=========================================================================
- Coverage 87.640% 87.582% -0.059%
=========================================================================
Files 564 570 +6
Lines 32227 32284 +57
Branches 13186 13187 +1
=========================================================================
+ Hits 28244 28275 +31
- Misses 3936 3960 +24
- Partials 47 49 +2
... and 4 files with indirect coverage changes Continue to review full report in Codecov by Harness.
|
Performance metrics 🚀
|


Summary
SentrySDK.internal:debug,breadcrumbs, anduserDependenciesprotocol pattern with provider injection viaSentryDependencyContainer, matching the existingSentryInternalSdkApidesignSentryObjC/SentryObjCCompat) and both Swift unit tests and ObjC integration testsDetails
debug— exposesimages(all loaded debug images) andimages(forAddresses:)(debug images for specific memory addresses) viaDebugImageProviderandBinaryImageCacheProviderdependency injection.breadcrumbs—fromDictionary(_:)creates aBreadcrumbfrom a dictionary representation, injected viaBreadcrumbDeserializerProvider.user—fromDictionary(_:)creates aUserfrom a dictionary representation, injected viaUserDeserializerProvider.#skip-changelog
Test plan
make build-iospassesmake test-macos— 23 targeted tests, 0 failures