fix(observability): fix Sentry fingerprinting for 3 fragmented issue groups - #5099
Conversation
…groups (#5010) Three distinct root causes were each fragmented across multiple separate Sentry issues, diluting their apparent severity (each fragment individually looked small) and defeating "existing issue" alert-trigger logic: 1. REES's captureAnalyzerDegradation fingerprinted by WHICH analyzer hit a condition (context.analyzer), not WHY (context.partialReason) -- so "analyzer_timeout" fragmented into a separate issue per analyzer (installScript, nativeBuild, license, ...) even though they share one root cause (the shared, dynamically-shrinking per-analyzer time budget under heavy concurrent fan-out). Now groups by partialReason, falling back to analyzer name only when partialReason is absent. A reason that IS inherently analyzer-specific (e.g. "bundlephobia-size_http_error") still gets its own issue, since the reason string already encodes that. 2. captureError/captureReviewFailure's optional eventName (added earlier this session for Sentry issue titles) now also sets an explicit fingerprint when provided, mirroring forwardStructuredLogToSentry's existing scope.setFingerprint(["gittensory-log", event]) discipline. This is what actually fixes GITTENSORY-5/10 ("PR public-surface publish failed") and GITTENSORY-C/W ("AI review did not produce public notes") going forward: both pairs were fragmented because Sentry's default stack-trace-based grouping treated the same message captured from two different functions as two different issues.
|
Superagent didn't find any vulnerabilities or security issues in this PR. |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #5099 +/- ##
=======================================
Coverage 94.20% 94.20%
=======================================
Files 470 470
Lines 39736 39738 +2
Branches 14501 14503 +2
=======================================
+ Hits 37435 37437 +2
Misses 1645 1645
Partials 656 656
Flags with carried forward coverage won't be shown. Click here to find out more.
🚀 New features to boost your workflow:
|
|
Warning 🟨🟨🟨🟨🟨🟨🟨🟨🟨🟨🟨🟨 ⏸️ Gittensory review result - manual review recommendedReview updated: 2026-07-11 14:59:47 UTC
⏸️ Suggested Action - Manual Review
Review summary Nits — 7 non-blocking
Linked issue satisfactionAddressed Review context
Contributor next steps
Signal definitions
[BETA] Chat with GittensoryAsk Gittensory a question about this PR directly in a comment — grounded only in the same cached, public-safe facts shown above, never a new claim.
Full command reference: https://gittensory.aethereal.dev/docs/gittensory-commands 🟩 Safe / merged · 🟦 Advisory · 🟨 Held for review · 🟥 Blocked / closed 💰 Earn for open-source contributions like this. Gittensor lets GitHub contributors earn for the work they already do — register to start earning →. Checked by Gittensory, a quiet PR intelligence layer for OSS maintainers.
|
Summary
Three distinct root causes were each fragmented across multiple separate Sentry issues, diluting their apparent severity (each fragment individually looked small) and defeating "existing issue" alert-trigger logic (each fragment is technically a separate "new" issue the first time it appears).
Closes #5010
Scope
Validation
Safety