Open
Conversation
Add @sentry/electron for crash reporting and error tracking across main
and renderer processes. Error reporting is off by default and controlled
via a user-facing toggle in Settings → General.
- Add lib/sentry.js: Sentry initialization guarded by errorReporting setting
- Add require('./lib/sentry') as first line of main.js
- Add errorReporting boolean toggle to settings sections in lib/ipc.js
- Add i18n keys for en.json and zh.json
- Add @sentry/electron dependency
- Add proposal document at .github/proposals/proposal-sentry.md
Privacy: beforeSend scrubs filesystem paths. No PII, no telemetry,
no usage analytics. Only unhandled errors are captured when enabled.
Amp-Thread-ID: https://ampcode.com/threads/T-019c7926-be08-704f-b583-1c5167315271
Kosinkadink
added a commit
that referenced
this pull request
Feb 22, 2026
Migrate renderer from 15 vanilla JS files to Vue 3 + Pinia + Tailwind CSS 4: - Typed IPC bridge (30+ methods) in src/preload/ - Pinia stores: sessionStore (running instances, terminals), installationStore - Promise-based modal system (useModal + ModalDialog) - 9 views and 7 reusable components with Composition API - vue-i18n runtime locale loading - Tailwind CSS 4 with design tokens extracted from old styles.css Code review fixes applied: - Fix runtime crash: use useI18n() in script setup (#1, #2) - Fix unsafe spread on non-array SettingsField values (#3) - Replace document.getElementById with reactive state in NewInstallModal (#4) - Use DetailSection component in DetailModal, removing 130 lines of duplication (#5) - Replace v-html/metaHtml with structured #meta slot and MetaPart arrays (#6) - Emit setting-updated from SettingField, SettingsView re-fetches on change (#7) - Eliminate prop mutations in DetailModal, use update:installation emit (#8) Amp-Thread-ID: https://ampcode.com/threads/T-019c840f-eaa4-771e-bb7f-a27118c0e3eb Co-authored-by: Amp <amp@ampcode.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Proposal #12 — Sentry Error Tracking
Adds
@sentry/electron(v7.8.0) for crash reporting and error tracking across main and renderer processes. This is error tracking only — NOT telemetry or usage analytics.What This PR Does
lib/sentry.js— New module that initializes Sentry only when the user has opted in via settings. UsesbeforeSendto scrub filesystem paths for privacy.main.js— Requireslib/sentry.jsas the very first line (beforeapp.whenReady()) so unhandled errors are captured from startup.lib/ipc.js— AddserrorReportingtoggle to Settings → General (line 449), using the existing boolean field renderer.locales/en.json/zh.json— Adds i18n key: "Send anonymous error reports (requires restart)".package.json— Adds@sentry/electrondependency..github/proposals/proposal-sentry.md— Full migration proposal with architecture, privacy analysis, compatibility, bundle size, and phased rollout plan.Key Design Decisions
errorReportingdefaults tofalse. Sentry.init() is never called unless the user explicitly enables it.sendDefaultPii: false,tracesSampleRate: 0,beforeSendstrips absolute filesystem paths from error messages.https://examplePublicKey@o0.ingest.sentry.io/0. Must be replaced with a real DSN before shipping.electron >= v23.What IS / IS NOT Collected
Bundle Size
~1–2 MB added to asar — negligible vs Electron baseline (~150+ MB). No native modules.
Dependencies
None (independent proposal). Benefits from Proposal #1 (electron-vite) for future source map uploads.
Files Changed
lib/sentry.jsmain.jsrequire("./lib/sentry")lib/ipc.jserrorReportingtoggle in settingslocales/en.jsonlocales/zh.jsonpackage.json.github/proposals/proposal-sentry.md