feat: define reporting service contracts and dispatchers#1224
feat: define reporting service contracts and dispatchers#1224alexs-mparticle merged 16 commits intodevelopmentfrom
Conversation
…dule - Define IErrorReportingService, ILoggingService, ISDKError, ISDKLogEntry contracts - Add ErrorReportingDispatcher and LoggingDispatcher for multi-service fan-out - Decouple Logger from reporting (console-only now) - Remove concrete ReportingLogger implementation (moves to kit) - Remove Rokt-specific URLs from constants - Rename src/logging/ to src/reporting/ - Expose registerErrorReportingService/registerLoggingService on mParticle API
PR SummaryMedium Risk Overview Decouples Exposes Reviewed by Cursor Bugbot for commit 76b2f3e. Bugbot is set up for automated code reviews on this repo. Configure here. |
- Add optional chaining for _ErrorReportingDispatcher in identityApiClient so tests without a mock dispatcher don't crash - Add registerErrorReportingService and registerLoggingService to the expected public API keys in instance manager test
This reverts commit e573c1f.
…ning Reverts optional chaining on _ErrorReportingDispatcher.report() which was masking potential bugs. Instead, properly adds ErrorReportingDispatcher instances to all mock mpInstance objects in identity API client tests.
…uctor - Wrap each service call in try-catch in ErrorReportingDispatcher and LoggingDispatcher so one failing service doesn't break fan-out - Move dispatcher instantiation from runPreConfigFetchInitialization to mParticleInstance constructor so registration works before init() - Destructure errorReporter in identityApiClient for cleaner usage
Rename registerErrorReportingService/registerLoggingService to _registerErrorReportingService/_registerLoggingService to signal these are internal APIs consumed by kits, not public.
Pass ErrorReportingDispatcher and LoggingDispatcher into RoktManager.init() from mp-instance. Add INFO log on kit attach (ROKT_KIT_ATTACHED) and WARNING reports on identity mismatch (IDENTITY_MISMATCH) alongside existing logger.warning calls. Add new error codes to reporting types.
… mocks The identity API client test mocks were missing _ErrorReportingDispatcher, causing a TypeError when report() was called on 5xx errors. Added optional chaining to the call site and added the mock to both test cases.
Merge development into feat/reporting-service-migration-core, resolving conflicts in dist/ bundle files by accepting development's versions (CI will regenerate these after merge).
The TODO indicated this cast should be removed once removeCCPAState was removed. Since removeCCPAState is being removed in this PR, the cast is no longer needed. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This reverts commit e84e375.
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 2 potential issues.
Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, have a team admin enable autofix in the Cursor dashboard.
- Remove redundant "Logger.error() does not trigger any reporting" test that only asserted not.toThrow() (decoupling already proven by next test) - Replace assertion-less no-op tests with proper assertions that create mock services, intentionally skip registration, and verify they are not called
|
# [2.61.0](v2.60.1...v2.61.0) (2026-04-07) ### Bug Fixes * Coerce event name to string ([#1234](#1234)) ([fc40e4b](fc40e4b)) ### Features * add /verify skill for lint, build, and test validation ([#1222](#1222)) ([fc744e8](fc744e8)) * define reporting service contracts and dispatchers ([#1224](#1224)) ([79184e0](79184e0))
|
🎉 This PR is included in version 2.61.0 🎉 The release is available on:
Your semantic-release bot 📦🚀 |




Summary
IErrorReportingServiceandILoggingServiceinterfaces insrc/reporting/types.tsErrorReportingDispatcherandLoggingDispatcherfor multi-service fan-outLoggerfrom reporting — Logger is now console-onlyReportingLoggerimplementation (moves to Rokt kit)src/logging/tosrc/reporting/registerErrorReportingService()andregisterLoggingService()on mParticle APICompanion kit PR: mparticle-integrations/mparticle-javascript-integration-rokt#70
Test plan
window.mParticle