feat: instrument unified auth retry outcomes - #14500
Conversation
Amp-Thread-ID: https://ampcode.com/threads/T-019fb9b7-44f6-7673-9cbb-506311cb597a Co-authored-by: Amp <amp@ampcode.com>
📄 Knowledge reviewDosu skipped reviewing this PR because your organization has used its |
🎨 Storybook: ✅ Built — View Storybook🎭 Playwright: ✅ 1780 passed, 0 failed · 1 flaky📊 Browser Reports
📦 Bundle: 8.19 MB gzip 🔴 +396 BDetailsSummary
Category Glance App Entry Points — 3.62 kB (baseline 3.62 kB) • ⚪ 0 BMain entry bundles and manifests
Status: 1 added / 1 removed Graph Workspace — 1.29 MB (baseline 1.29 MB) • ⚪ 0 BGraph editor runtime, canvas, workflow orchestration
Status: 1 added / 1 removed / 1 unchanged Views & Navigation — 111 kB (baseline 111 kB) • ⚪ 0 BTop-level views, pages, and routed surfaces
Status: 12 added / 12 removed / 4 unchanged Panels & Settings — 551 kB (baseline 551 kB) • 🔴 +29 BConfiguration panels, inspectors, and settings screens
Status: 11 added / 11 removed / 15 unchanged User & Accounts — 28.7 kB (baseline 28.7 kB) • ⚪ 0 BAuthentication, profile, and account management bundles
Status: 7 added / 7 removed / 3 unchanged Editors & Dialogs — 124 kB (baseline 124 kB) • ⚪ 0 BModals, dialogs, drawers, and in-app editors
Status: 6 added / 6 removed / 1 unchanged UI Components — 70 kB (baseline 70 kB) • ⚪ 0 BReusable component library chunks
Status: 6 added / 6 removed / 9 unchanged Data & Services — 3.45 MB (baseline 3.44 MB) • 🔴 +1.5 kBStores, services, APIs, and repositories
Status: 14 added / 14 removed / 3 unchanged Utilities & Hooks — 386 kB (baseline 386 kB) • ⚪ 0 BHelpers, composables, and utility bundles
Status: 16 added / 16 removed / 20 unchanged Vendor & Third-Party — 15.7 MB (baseline 15.7 MB) • ⚪ 0 BExternal libraries and shared vendor chunks Status: 16 unchanged Other — 12.7 MB (baseline 12.7 MB) • 🔴 +255 BBundles that do not match a named category
Status: 72 added / 72 removed / 208 unchanged ⚡ Performance Report
Show regressions
All metrics
Historical variance (last 15 runs)
Trend (last 15 commits on main)
Raw data{
"timestamp": "2026-07-31T20:11:40.948Z",
"gitSha": "170874faa4b9524de05401bd64ed57bb06cc8c07",
"branch": "feat/unified-auth-retry-telemetry",
"measurements": [
{
"name": "canvas-idle",
"durationMs": 2176.5430000000097,
"styleRecalcs": 10,
"styleRecalcDurationMs": 8.681000000000001,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 587.121,
"heapDeltaBytes": -22127832,
"heapUsedBytes": 45652220,
"domNodes": -277,
"jsHeapTotalBytes": 19914752,
"scriptDurationMs": 26.524999999999995,
"eventListeners": -148,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66333333333335,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "canvas-idle",
"durationMs": 2057.042000000024,
"styleRecalcs": 10,
"styleRecalcDurationMs": 8.592999999999998,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 519.714,
"heapDeltaBytes": -21693100,
"heapUsedBytes": 46136064,
"domNodes": -281,
"jsHeapTotalBytes": 19914752,
"scriptDurationMs": 17.877000000000002,
"eventListeners": -148,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "canvas-mouse-sweep",
"durationMs": 2009.824000000009,
"styleRecalcs": 78,
"styleRecalcDurationMs": 45.574,
"layouts": 12,
"layoutDurationMs": 3.8770000000000002,
"taskDurationMs": 1034.993,
"heapDeltaBytes": -15457320,
"heapUsedBytes": 52494332,
"domNodes": -281,
"jsHeapTotalBytes": 20701184,
"scriptDurationMs": 135.193,
"eventListeners": -148,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66333333333335,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "canvas-mouse-sweep",
"durationMs": 1889.7269999999935,
"styleRecalcs": 76,
"styleRecalcDurationMs": 39.75,
"layouts": 12,
"layoutDurationMs": 3.7220000000000004,
"taskDurationMs": 907.894,
"heapDeltaBytes": -15685076,
"heapUsedBytes": 52478856,
"domNodes": -280,
"jsHeapTotalBytes": 19390464,
"scriptDurationMs": 116.94699999999999,
"eventListeners": -148,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "canvas-zoom-sweep",
"durationMs": 1738.36799999998,
"styleRecalcs": 32,
"styleRecalcDurationMs": 16.662,
"layouts": 6,
"layoutDurationMs": 0.642,
"taskDurationMs": 389.444,
"heapDeltaBytes": 8024124,
"heapUsedBytes": 75761820,
"domNodes": 78,
"jsHeapTotalBytes": 19787776,
"scriptDurationMs": 20.797000000000004,
"eventListeners": 19,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "canvas-zoom-sweep",
"durationMs": 1770.1479999999492,
"styleRecalcs": 31,
"styleRecalcDurationMs": 17.22,
"layouts": 6,
"layoutDurationMs": 0.662,
"taskDurationMs": 384.292,
"heapDeltaBytes": 7848756,
"heapUsedBytes": 75910540,
"domNodes": 77,
"jsHeapTotalBytes": 20312064,
"scriptDurationMs": 20.19,
"eventListeners": 19,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66333333333332,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "dom-widget-clipping",
"durationMs": 664.1529999999989,
"styleRecalcs": 11,
"styleRecalcDurationMs": 8.312,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 405.65399999999994,
"heapDeltaBytes": -12101684,
"heapUsedBytes": 55960204,
"domNodes": 18,
"jsHeapTotalBytes": 21884928,
"scriptDurationMs": 61.215,
"eventListeners": 2,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "dom-widget-clipping",
"durationMs": 592.2969999999737,
"styleRecalcs": 12,
"styleRecalcDurationMs": 8.367,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 384.723,
"heapDeltaBytes": -12067380,
"heapUsedBytes": 55862372,
"domNodes": 20,
"jsHeapTotalBytes": 21884928,
"scriptDurationMs": 57.151999999999994,
"eventListeners": 2,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "large-graph-idle",
"durationMs": 2033.0609999999751,
"styleRecalcs": 9,
"styleRecalcDurationMs": 7.788999999999997,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 704.634,
"heapDeltaBytes": 8226424,
"heapUsedBytes": 66831756,
"domNodes": -279,
"jsHeapTotalBytes": 4517888,
"scriptDurationMs": 102.96799999999999,
"eventListeners": -142,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "large-graph-idle",
"durationMs": 2036.877000000004,
"styleRecalcs": 9,
"styleRecalcDurationMs": 7.822000000000003,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 687.193,
"heapDeltaBytes": 8152156,
"heapUsedBytes": 66706560,
"domNodes": -280,
"jsHeapTotalBytes": 5042176,
"scriptDurationMs": 99.92300000000002,
"eventListeners": -144,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "large-graph-pan",
"durationMs": 2176.259000000016,
"styleRecalcs": 69,
"styleRecalcDurationMs": 14.814999999999998,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 1247.6490000000001,
"heapDeltaBytes": 6140524,
"heapUsedBytes": 65776764,
"domNodes": -281,
"jsHeapTotalBytes": 5005312,
"scriptDurationMs": 404.10599999999994,
"eventListeners": -142,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "large-graph-pan",
"durationMs": 2147.3759999998947,
"styleRecalcs": 69,
"styleRecalcDurationMs": 14.535,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 1241.611,
"heapDeltaBytes": 6424108,
"heapUsedBytes": 66181816,
"domNodes": -282,
"jsHeapTotalBytes": 5267456,
"scriptDurationMs": 407.305,
"eventListeners": -144,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "large-graph-zoom",
"durationMs": 3149.168999999972,
"styleRecalcs": 64,
"styleRecalcDurationMs": 13.885000000000002,
"layouts": 60,
"layoutDurationMs": 8.096,
"taskDurationMs": 1506.7719999999997,
"heapDeltaBytes": -4871824,
"heapUsedBytes": 56747148,
"domNodes": -287,
"jsHeapTotalBytes": 7401472,
"scriptDurationMs": 519.269,
"eventListeners": -148,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66333333333332,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "large-graph-zoom",
"durationMs": 3229.947999999922,
"styleRecalcs": 65,
"styleRecalcDurationMs": 15.6,
"layouts": 60,
"layoutDurationMs": 8.067000000000002,
"taskDurationMs": 1514.0529999999999,
"heapDeltaBytes": -466184,
"heapUsedBytes": 60992452,
"domNodes": -286,
"jsHeapTotalBytes": 8450048,
"scriptDurationMs": 528.5060000000001,
"eventListeners": -148,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "minimap-idle",
"durationMs": 2037.0570000000043,
"styleRecalcs": 9,
"styleRecalcDurationMs": 7.478999999999999,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 718.558,
"heapDeltaBytes": 8175652,
"heapUsedBytes": 68556328,
"domNodes": -280,
"jsHeapTotalBytes": 4780032,
"scriptDurationMs": 111.24599999999998,
"eventListeners": -144,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "minimap-idle",
"durationMs": 2037.0390000000498,
"styleRecalcs": 9,
"styleRecalcDurationMs": 7.020999999999999,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 695.173,
"heapDeltaBytes": 7955308,
"heapUsedBytes": 68580732,
"domNodes": -281,
"jsHeapTotalBytes": 4517888,
"scriptDurationMs": 99.893,
"eventListeners": -144,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "subgraph-dom-widget-clipping",
"durationMs": 617.8580000000125,
"styleRecalcs": 47,
"styleRecalcDurationMs": 16.613999999999997,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 411.27900000000005,
"heapDeltaBytes": -12135760,
"heapUsedBytes": 55768288,
"domNodes": 20,
"jsHeapTotalBytes": 22671360,
"scriptDurationMs": 118.663,
"eventListeners": 6,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "subgraph-dom-widget-clipping",
"durationMs": 595.4590000000053,
"styleRecalcs": 47,
"styleRecalcDurationMs": 10.013,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 403.426,
"heapDeltaBytes": -11690600,
"heapUsedBytes": 56301128,
"domNodes": 20,
"jsHeapTotalBytes": 21884928,
"scriptDurationMs": 120.883,
"eventListeners": 6,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "subgraph-idle",
"durationMs": 1997.4530000000073,
"styleRecalcs": 9,
"styleRecalcDurationMs": 7.482000000000001,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 464.66700000000003,
"heapDeltaBytes": 4646440,
"heapUsedBytes": 72668372,
"domNodes": 18,
"jsHeapTotalBytes": 20312064,
"scriptDurationMs": 14.513,
"eventListeners": 4,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "subgraph-idle",
"durationMs": 2024.454999999989,
"styleRecalcs": 9,
"styleRecalcDurationMs": 7.605,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 512.872,
"heapDeltaBytes": -21703844,
"heapUsedBytes": 46317332,
"domNodes": -281,
"jsHeapTotalBytes": 20439040,
"scriptDurationMs": 14.593,
"eventListeners": -148,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "subgraph-mouse-sweep",
"durationMs": 1709.7800000000234,
"styleRecalcs": 75,
"styleRecalcDurationMs": 37.426,
"layouts": 16,
"layoutDurationMs": 4.760000000000001,
"taskDurationMs": 830.918,
"heapDeltaBytes": -19908844,
"heapUsedBytes": 47952008,
"domNodes": -278,
"jsHeapTotalBytes": 20963328,
"scriptDurationMs": 93.056,
"eventListeners": -148,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "subgraph-mouse-sweep",
"durationMs": 1696.7390000000933,
"styleRecalcs": 75,
"styleRecalcDurationMs": 34.89,
"layouts": 16,
"layoutDurationMs": 4.153,
"taskDurationMs": 744.663,
"heapDeltaBytes": -4825120,
"heapUsedBytes": 63110964,
"domNodes": 62,
"jsHeapTotalBytes": 21098496,
"scriptDurationMs": 88.866,
"eventListeners": 4,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "subgraph-transition-enter",
"durationMs": 1386.2909999999715,
"styleRecalcs": 19,
"styleRecalcDurationMs": 29.487,
"layouts": 15,
"layoutDurationMs": 11.630999999999998,
"taskDurationMs": 1004.836,
"heapDeltaBytes": 3222172,
"heapUsedBytes": 91901700,
"domNodes": 13673,
"jsHeapTotalBytes": 14680064,
"scriptDurationMs": 35.11500000000001,
"eventListeners": 2371,
"totalBlockingTimeMs": 112,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.699999999999818
},
{
"name": "viewport-pan-sweep",
"durationMs": 8234.983999999997,
"styleRecalcs": 250,
"styleRecalcDurationMs": 40.378,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 4380.109,
"heapDeltaBytes": 10746692,
"heapUsedBytes": 69871996,
"domNodes": -281,
"jsHeapTotalBytes": 7626752,
"scriptDurationMs": 1301.848,
"eventListeners": -128,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.799999999999272
},
{
"name": "viewport-pan-sweep",
"durationMs": 8247.434999999996,
"styleRecalcs": 250,
"styleRecalcDurationMs": 41.003,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 4400.438999999999,
"heapDeltaBytes": 11317876,
"heapUsedBytes": 69872268,
"domNodes": -281,
"jsHeapTotalBytes": 7069696,
"scriptDurationMs": 1325.046,
"eventListeners": -128,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "vue-large-graph-idle",
"durationMs": 17712.769000000037,
"styleRecalcs": 0,
"styleRecalcDurationMs": 0,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 17697.257,
"heapDeltaBytes": -40481264,
"heapUsedBytes": 167363972,
"domNodes": -8312,
"jsHeapTotalBytes": -12525568,
"scriptDurationMs": 532.369,
"eventListeners": -16385,
"totalBlockingTimeMs": 0,
"frameDurationMs": 17.776666666666642,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "vue-large-graph-idle",
"durationMs": 17761.814999999955,
"styleRecalcs": 0,
"styleRecalcDurationMs": 0,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 17742.238,
"heapDeltaBytes": -42014076,
"heapUsedBytes": 167198440,
"domNodes": -8313,
"jsHeapTotalBytes": -14360576,
"scriptDurationMs": 574.572,
"eventListeners": -16387,
"totalBlockingTimeMs": 0,
"frameDurationMs": 17.776666666666642,
"p95FrameDurationMs": 16.80000000000291
},
{
"name": "vue-large-graph-pan",
"durationMs": 21137.976999999977,
"styleRecalcs": 144,
"styleRecalcDurationMs": 19.173999999999968,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 21113.190000000002,
"heapDeltaBytes": -44287156,
"heapUsedBytes": 177549724,
"domNodes": -8312,
"jsHeapTotalBytes": -8921088,
"scriptDurationMs": 835.894,
"eventListeners": -16383,
"totalBlockingTimeMs": 231,
"frameDurationMs": 17.776666666666642,
"p95FrameDurationMs": 16.799999999999272
},
{
"name": "vue-large-graph-pan",
"durationMs": 21510.107999999946,
"styleRecalcs": 152,
"styleRecalcDurationMs": 20.778999999999993,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 21463.064,
"heapDeltaBytes": -66671896,
"heapUsedBytes": 153947616,
"domNodes": -8312,
"jsHeapTotalBytes": -9637888,
"scriptDurationMs": 892.6700000000001,
"eventListeners": -16385,
"totalBlockingTimeMs": 454,
"frameDurationMs": 17.776666666666642,
"p95FrameDurationMs": 16.799999999999272
},
{
"name": "workflow-execution",
"durationMs": 456.84800000003634,
"styleRecalcs": 13,
"styleRecalcDurationMs": 17.786,
"layouts": 2,
"layoutDurationMs": 0.35199999999999987,
"taskDurationMs": 112.26,
"heapDeltaBytes": -15934972,
"heapUsedBytes": 51036040,
"domNodes": 130,
"jsHeapTotalBytes": 7991296,
"scriptDurationMs": 10.809999999999999,
"eventListeners": 67,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.670000000000012,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "workflow-execution",
"durationMs": 99.32199999991553,
"styleRecalcs": 7,
"styleRecalcDurationMs": 12.778,
"layouts": 2,
"layoutDurationMs": 0.559,
"taskDurationMs": 69.798,
"heapDeltaBytes": 2991096,
"heapUsedBytes": 69818180,
"domNodes": 104,
"jsHeapTotalBytes": 3145728,
"scriptDurationMs": 6.166000000000001,
"eventListeners": 33,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66999999999998,
"p95FrameDurationMs": 16.700000000000728
}
]
} |
📝 WalkthroughWalkthroughThe change adds structured telemetry for unified authentication retry outcomes. Fetch and Axios paths report success, rejected retries, remint failures, missing bearers, non-replayable bodies, and request errors through the telemetry registry and Datadog RUM provider. ChangesUnified auth retry telemetry
Estimated code review effort: 3 (Moderate) | ~20 minutes Sequence Diagram(s)sequenceDiagram
participant FetchRetryPath
participant AxiosRetryPath
participant TelemetryRegistry
participant DatadogRumTelemetryProvider
FetchRetryPath->>TelemetryRegistry: trackUnifiedAuthRetry(metadata)
AxiosRetryPath->>TelemetryRegistry: trackUnifiedAuthRetry(metadata)
TelemetryRegistry->>DatadogRumTelemetryProvider: dispatch retry metadata
DatadogRumTelemetryProvider->>DatadogRumTelemetryProvider: emit success or failure event
Suggested reviewers: Important Pre-merge checks failedPlease resolve all errors before merging. Addressing warnings is optional. ❌ Failed checks (1 inconclusive)
✅ Passed checks (5 passed)
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 2
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@src/platform/auth/unified/remintRetry.test.ts`:
- Around line 10-20: Add behavioral tests in the remint retry test suite for
fetch and Axios request failures emitting retry_request_failed, plus Axios
missing_bearer and remint_failed terminal paths. Assert each event’s metadata,
verify request failures omit final_status, and confirm the original thrown error
is preserved; retain coverage across enabled success/failure, disabled-flag, and
edge/error behavior using the existing mockRemint, mockTrackUnifiedAuthRetry,
and flagState symbols.
In `@src/platform/telemetry/providers/cloud/DatadogRumTelemetryProvider.test.ts`:
- Around line 27-44: Add a test alongside the existing terminal failure case in
the DatadogRumTelemetryProvider tests that calls trackUnifiedAuthRetry with
outcome: 'succeeded' and verifies addAction receives
TelemetryEvents.UNIFIED_AUTH_RETRY_SUCCEEDED with the retry payload. Preserve
the existing failure coverage and assert the successful mapping explicitly.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: ASSERTIVE
Plan: Pro Plus
Run ID: 3f3b192c-2166-4a3d-a033-ce7c6687a9a2
📒 Files selected for processing (7)
src/platform/auth/unified/remintRetry.test.tssrc/platform/auth/unified/remintRetry.tssrc/platform/telemetry/TelemetryRegistry.test.tssrc/platform/telemetry/TelemetryRegistry.tssrc/platform/telemetry/providers/cloud/DatadogRumTelemetryProvider.test.tssrc/platform/telemetry/providers/cloud/DatadogRumTelemetryProvider.tssrc/platform/telemetry/types.ts
Codecov Report❌ Patch coverage is
@@ Coverage Diff @@
## main #14500 +/- ##
========================================
Coverage 79.35% 79.35%
========================================
Files 1767 1767
Lines 113935 113970 +35
Branches 36681 35830 -851
========================================
+ Hits 90414 90443 +29
- Misses 22982 22983 +1
- Partials 539 544 +5
Flags with carried forward coverage won't be shown. Click here to find out more.
... and 7 files with indirect coverage changes 🚀 New features to boost your workflow:
|
|
@coderabbitai approve |
✅ Action performedComments resolved and changes approved. |
|
|
Summary
Adds one terminal Datadog RUM action for each flag-enabled unified-auth 401 recovery attempt so rollout monitoring can distinguish successful recovery, persistent authorization failures, re-mint failures, and retry transport failures.
Changes
auth.unified.request_retry.succeededorauth.unified.request_retry.failedafter fetch and Axios 401 recovery, with only low-cardinalitytransport,outcome,final_status, andfailure_reasoncontext.unified_cloud_authfeature-flag attribution. This PR remains runtime-safe without it; cohort filtering becomes available after both changes deploy.Review Focus
Verification
pnpm test:unit src/platform/auth/unified/remintRetry.test.ts src/platform/telemetry/TelemetryRegistry.test.ts src/platform/telemetry/providers/cloud/DatadogRumTelemetryProvider.test.ts(40 tests)pnpm typecheckScreenshots (if applicable)
Not applicable; telemetry-only change with no UI impact.