ADFA-4751: Rebrand remaining Sentry references to GlitchTip#1548
ADFA-4751: Rebrand remaining Sentry references to GlitchTip#1548hal-eisen-adfa wants to merge 3 commits into
Conversation
The functional migration (ADFA-4397) kept the io.sentry SDK because
GlitchTip is Sentry-protocol-compatible, and re-pointed only the DSN.
This is the follow-up branding cleanup it left behind.
User-facing / docs / naming:
- privacy_disclosure_message onboarding string (English + Indonesian):
now names GlitchTip instead of Sentry.
- REVIEW.md / SECURITY.md prose -> GlitchTip (kept the Sentry.captureException
code example, which is the real SDK API).
- Renamed our own identifiers: SentryDiagnosticsContext ->
GlitchTipDiagnosticsContext (file + test), SENTRY_ENV_* -> GLITCHTIP_ENV_*,
shouldReportToSentry -> shouldReportToGlitchTip, sentryLogAppender ->
glitchTipLogAppender.
- Backend/product comments and log strings -> GlitchTip.
Deliberately kept (would break crash reporting): all io.sentry.* imports and
Sentry.* API calls, the manifest io.sentry.* meta-data keys and ${sentryDsn}
placeholder, the io.sentry deps / plugin / sentry {} block, and the proguard
-keep io.sentry.** rules. Each kept anchor now carries a one-line note that the
Sentry SDK is our GlitchTip client. Historical "(Sentry APPDEVFORALL-####)"
provenance notes are left as-is.
Spotless (ratchet) retabbed a few touched files that were previously
space-indented; those whitespace-only hunks bring them to the tab standard.
Note: local.properties (gitignored) still uses old sentryDsn* keys pointing at
sentry.io while the build now reads GLITCHTIP_DSN -- a per-developer config
drift to fix separately, not part of this PR.
There was a problem hiding this comment.
Claude Code Review
This repository is configured for manual code reviews. Comment @claude review for a one-time review, or @claude review always to subscribe this PR to a review on every future push.
Tip: disable this comment in your organization's Code Review settings.
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (1)
💤 Files with no reviewable changes (1)
📝 Walkthrough
WalkthroughThe PR updates crash-reporting terminology and diagnostics wiring from Sentry to GlitchTip while retaining the Sentry SDK protocol, renames asset-installation reporting flags, and updates related guidance, tests, comments, and privacy disclosures. ChangesGlitchTip reporting migration
Estimated code review effort: 3 (Moderate) | ~20 minutes Sequence Diagram(s)sequenceDiagram
participant IDEApplication
participant DeviceProtectedApplicationLoader
participant GlitchTipDiagnosticsContext
participant SentryAppender
IDEApplication->>GlitchTipDiagnosticsContext: record user-unlock context
DeviceProtectedApplicationLoader->>GlitchTipDiagnosticsContext: install event enrichment
DeviceProtectedApplicationLoader->>SentryAppender: configure and attach log appender
Possibly related PRs
Suggested reviewers: Poem
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✨ Finishing Touches🧪 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.
🧹 Nitpick comments (2)
app/src/main/java/com/itsaky/androidide/viewmodel/InstallationViewModel.kt (1)
138-139: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low valuePrefer
availableBytesover manual block calculation.For consistency with other storage checks in the project (e.g.,
AssetsInstallationHelper.kt), consider using the built-inavailableBytesproperty directly instead of calculating it manually using block size and counts.💡 Proposed change
- val availableStorageInBytes = stat.availableBlocksLong * stat.blockSizeLong + val availableStorageInBytes = stat.availableBytes🤖 Prompt for 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. In `@app/src/main/java/com/itsaky/androidide/viewmodel/InstallationViewModel.kt` around lines 138 - 139, Update the storage calculation in the relevant installation check to use stat.availableBytes directly for availableStorageInBytes, removing the manual availableBlocksLong * blockSizeLong computation; leave requiredStorageInBytes and the surrounding logic unchanged.app/src/main/java/com/itsaky/androidide/assets/AssetsInstallationHelper.kt (1)
273-280: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low valueCatch narrowly instead of using a broad catch-all.
Catching
Exceptionbroadly here is discouraged. TheStatFsconstructor throwsIllegalArgumentExceptionif the provided path is invalid. Based on the coding guidelines and learnings, prefer narrow exception handling that targets the specific expected exception type rather than using a catch-all block.♻️ Proposed refactor
private fun getAvailableStorage(path: File): Long = try { val stat = StatFs(path.absolutePath) stat.availableBytes - } catch (e: Exception) { + } catch (e: IllegalArgumentException) { logger.warn("Failed to get available storage for {}: {}", path, e.message) -1L }🤖 Prompt for 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. In `@app/src/main/java/com/itsaky/androidide/assets/AssetsInstallationHelper.kt` around lines 273 - 280, Update getAvailableStorage to catch only IllegalArgumentException from StatFs when the provided path is invalid, preserving the existing warning and -1L fallback while removing the broad Exception catch.Sources: Coding guidelines, Learnings
🤖 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.
Nitpick comments:
In `@app/src/main/java/com/itsaky/androidide/assets/AssetsInstallationHelper.kt`:
- Around line 273-280: Update getAvailableStorage to catch only
IllegalArgumentException from StatFs when the provided path is invalid,
preserving the existing warning and -1L fallback while removing the broad
Exception catch.
In `@app/src/main/java/com/itsaky/androidide/viewmodel/InstallationViewModel.kt`:
- Around line 138-139: Update the storage calculation in the relevant
installation check to use stat.availableBytes directly for
availableStorageInBytes, removing the manual availableBlocksLong * blockSizeLong
computation; leave requiredStorageInBytes and the surrounding logic unchanged.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro
Run ID: 57df58e7-758d-435d-8668-01e45f043490
📒 Files selected for processing (21)
.github/workflows/analyze.ymlREVIEW.mdSECURITY.mdapp/build.gradle.ktsapp/proguard-rules.proapp/src/androidTest/kotlin/com/itsaky/androidide/app/strictmode/WhitelistEngineTest.ktapp/src/main/AndroidManifest.xmlapp/src/main/java/com/itsaky/androidide/app/DeviceProtectedApplicationLoader.ktapp/src/main/java/com/itsaky/androidide/app/IDEApplication.ktapp/src/main/java/com/itsaky/androidide/assets/AssetsInstallationHelper.ktapp/src/main/java/com/itsaky/androidide/fragments/onboarding/GreetingFragment.ktapp/src/main/java/com/itsaky/androidide/handlers/CrashEventSubscriber.ktapp/src/main/java/com/itsaky/androidide/handlers/GlitchTipDiagnosticsContext.ktapp/src/main/java/com/itsaky/androidide/ui/SafeLineChart.ktapp/src/main/java/com/itsaky/androidide/viewmodel/InstallationViewModel.ktapp/src/test/java/com/itsaky/androidide/assets/AssetsInstallationHelperTest.ktapp/src/test/java/com/itsaky/androidide/handlers/GlitchTipDiagnosticsContextTest.kteventbus-events/src/main/java/com/itsaky/androidide/eventbus/events/editor/LayoutEditorEvents.ktgradle/libs.versions.tomlresources/src/main/res/values-in-rID/strings.xmlresources/src/main/res/values/strings.xml
Follow-up to code review: the retab re-touched this comment line, so swap its pre-existing em-dash for an ASCII '-' per CLAUDE.md code-style.
What
Follow-up branding cleanup for the Sentry -> GlitchTip migration. The functional switch already landed in ADFA-4397 (#1490), which kept the
io.sentrySDK on purpose — GlitchTip is Sentry-protocol-compatible — and only re-pointed the DSN. This PR updates the "Sentry" naming that migration left behind, most visibly the onboarding "Privacy & analytics" disclosure dialog that still told users the app uses Sentry.Changes
User-facing / docs
privacy_disclosure_message(English + Indonesian) now names GlitchTip.REVIEW.md/SECURITY.mdprose -> GlitchTip. (Kept theSentry.captureException(e)code example — that's the real SDK API.)Our own identifiers renamed
SentryDiagnosticsContext->GlitchTipDiagnosticsContext(file + test renamed)SENTRY_ENV_DEV/PROD->GLITCHTIP_ENV_DEV/PRODshouldReportToSentry->shouldReportToGlitchTipsentryLogAppender->glitchTipLogAppenderComments / log strings that named Sentry as the backend -> GlitchTip.
Deliberately NOT changed (would break crash reporting)
All
io.sentry.*imports andSentry.*API calls, the manifestio.sentry.*meta-data keys and${sentryDsn}placeholder, theio.sentrydeps / gradle plugin /sentry {}block, and the proguard-keep io.sentry.**rules. Each kept anchor now carries a one-line note that the Sentry SDK is our GlitchTip client, so this doesn't get re-flagged later. Historical(Sentry APPDEVFORALL-####)provenance notes are left as-is (they record where a bug was actually observed; the IDs are Sentry's).Notes for reviewer
CrashEventSubscriber,SafeLineChart,InstallationViewModel,AssetsInstallationHelper). Those hunks are whitespace-only and bring the files to the tab standard — review with "hide whitespace" for the semantic diff.local.properties(gitignored) still definessentryDsnDebug/sentryDsnReleasepointing atingest.us.sentry.io, but the build now readsGLITCHTIP_DSN. That's a per-developer config drift to fix separately; CI already injectsGLITCHTIP_DSN.Verification
./gradlew :app:assembleV8Debug— BUILD SUCCESSFUL./gradlew :app:testV8DebugUnitTestforGlitchTipDiagnosticsContextTest+AssetsInstallationHelperTest— passing./gradlew spotlessApply— clean