Skip to content

feat(rees): standardize sentry tags and fingerprints#1878

Merged
JSONbored merged 1 commit into
JSONbored:mainfrom
jonathanchang31:fix-1735-rees-sentry-tags
Jun 30, 2026
Merged

feat(rees): standardize sentry tags and fingerprints#1878
JSONbored merged 1 commit into
JSONbored:mainfrom
jonathanchang31:fix-1735-rees-sentry-tags

Conversation

@jonathanchang31

Copy link
Copy Markdown
Contributor

Summary

  • Standardizes REES Sentry reporting so route errors, analyzer degradations, sourcemap upload failures, and process-level failures use stable fingerprints and a small allowlisted tag set.
  • Moves high-cardinality diagnostics out of tags and into structured context to improve grouping and query reliability.
  • Adds regression coverage for the new capture behavior and documents example REES Sentry queries.

Related Issue

Closes: #1735

Change Type

  • Bug fix
  • Tests
  • Documentation
  • New feature
  • Breaking change
  • Refactor without behavior change

What Changed

  • Added scoped REES Sentry capture helpers for route, unhandled, and sourcemap-upload errors.
  • Restricted indexed tags to stable keys such as event, route, method, repo, pullNumber, analyzer, release, environment, and railwayDeploymentId.
  • Kept detailed analyzer diagnostics in structured context instead of tags.
  • Updated REES server and sourcemap upload flows to use the new helpers.
  • Added regression tests for tag filtering and fingerprint grouping.
  • Documented example REES Sentry queries in the README.

Real Behavior Proof

  • npm audit --audit-level=moderate
  • npm run test:ci
  • Focused REES tests covering route errors, analyzer degradation, unhandled failures, and sourcemap upload failures ✅

Checklist

  • Issue is fixed narrowly and at the root cause
  • Tests added/updated for the changed behavior
  • Full validation passed locally
  • Documentation updated
  • No unrelated files changed

@dosubot dosubot Bot added the size:L label Jun 30, 2026
@gittensory-orb

gittensory-orb Bot commented Jun 30, 2026

Copy link
Copy Markdown

Tip

🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩

✅ Gittensory review result - approve/merge recommended

Review updated: 2026-06-30 19:13:05 UTC

5 files · 1 AI reviewer · no blockers · readiness 48/100 · CI green · clean

✅ Suggested Action - Approve/Merge

  • safe to merge

Review summary
The change centralizes REES Sentry capture behind scoped helpers, limits emitted tags to the documented allowlist, and preserves richer diagnostics in scrubbed contexts. The server and source-map upload paths now use stable fingerprints, and the added tests cover the main capture surfaces and analyzer tag reduction. I do not see a reachable correctness break in the provided post-change files.

Nits — 6 non-blocking
  • nit: review-enrichment/src/sentry.ts:236 has the analyzer context fields indented at the same level as the enclosing property, which makes the nested object harder to review even though it compiles.
  • nit: review-enrichment/src/upload-sourcemaps.ts:200 supports a structured `stage` field in `captureSourcemapUploadFailure`, but the caller never sets it, so validation, inject, upload, deploy, finalize, and release-validation failures all lose the failing phase.
  • nit: review-enrichment/test/sentry-degradation.test.ts:252 adds positive tag assertions for the new helpers, but it does not assert the full tag key set, so the allowlist regression coverage would miss an accidental extra tag.
  • In review-enrichment/src/upload-sourcemaps.ts:141, track the current upload phase before each operation and pass it as `stage` in the catch block so the structured context identifies the failing step without changing the stable fingerprint.
  • In review-enrichment/test/sentry-degradation.test.ts:252, add `assert.deepEqual(Object.keys(sentry.tags).sort(), [...].sort())` style checks for route, process, upload, and analyzer events to lock the documented allowlist.
  • Readiness score is below the configured threshold — Use the readiness panel as advisory maintainer context; the score does not block this PR.
Signal Result Evidence
Code review ✅ No blockers 1 reviewer
Linked issue ⚠️ Missing No linked issue or no-issue rationale found.
Related work ⚠️ 3 scoped overlaps Top overlaps are listed below; lower-confidence bulk is hidden.
Change scope ❌ 8/20 High review scope from cached public metadata (size label size:L; no linked issue context).
Validation posture ❌ 5/25 Preflight is holding this PR; address the blocker before review.
Contributor workload ✅ 10/10 Author activity: 151 registered-repo PR(s), 82 merged, 11 issue(s).
Contributor context ✅ Confirmed Gittensor contributor jonathanchang31; Gittensor profile; 151 PR(s), 11 issue(s).
Gate result ✅ Passing No configured blocker found.
Review context
Contributor next steps
  • Explain no-issue PR.
  • Review top overlaps.
  • Add a concise scope and risk note.
  • Fix the blocker.
  • Triage stale or unlinked PRs.
  • Refresh registry data or choose a registered active repo.
  • Link the issue being solved, or explicitly explain why this is a no-issue PR.
  • Check active issues and PRs before submitting.
Signal definitions
  • Related work = same linked issue, overlapping active PRs, or title/path similarity.
  • Change scope = cached public metadata such as size labels, draft state, and review-burden hints.
  • Validation posture = whether the PR provides enough public validation/test evidence for maintainer review.
  • Contributor workload = public contributor activity and cleanup pressure, not a repo-wide quality failure.
  • Contributor context = public GitHub/Gittensor identity context; non-Gittensor status is not a blocker.

🟩 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.

  • Re-run Gittensory review

@gittensory-orb gittensory-orb Bot added gittensor Gittensor contributor context gittensor:feature Gittensor-scored feature linked to a feature issue — scores a 1.25x multiplier. labels Jun 30, 2026
@dosubot dosubot Bot added the lgtm label Jun 30, 2026
@JSONbored JSONbored added the gittensor:priority Maintainer-selected Gittensor priority — scores a 1.75x multiplier. label Jun 30, 2026
@JSONbored

Copy link
Copy Markdown
Owner

Added a gittensor:priority label because this is high value work. Thanks!

@gittensory-orb gittensory-orb Bot removed the gittensor:priority Maintainer-selected Gittensor priority — scores a 1.75x multiplier. label Jun 30, 2026
@JSONbored JSONbored merged commit 46a7e73 into JSONbored:main Jun 30, 2026
7 checks passed
@github-project-automation github-project-automation Bot moved this from Todo to Done in gittensory - v1 roadmap Jun 30, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

gittensor:feature Gittensor-scored feature linked to a feature issue — scores a 1.25x multiplier. gittensor Gittensor contributor context

Projects

No open projects
Status: Done

Development

Successfully merging this pull request may close these issues.

observability(rees): standardize Sentry tags and fingerprints

2 participants