mcpField
1
1k-sentry

1k-sentry

github.com/onekeyhqDevelopment2.5k57 installsUpdated today
Repository

About 1k-sentry

A OneKey skill for configuring Sentry error tracking across its desktop, mobile, web, and extension apps. It covers filtering unwanted errors and adding custom context.

Key features

  1. 01Platform-specific Sentry entry points
  2. 02Error type and message filtering
  3. 03Custom breadcrumb context
  4. 04Key configuration file references

Use cases

  1. 01Exclude selected errors from Sentry reports
  2. 02Add breadcrumbs for application actions
  3. 03Locate Sentry files for a target platform

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/onekeyhq/app-monorepo --skill 1k-sentry

After installing, type/1k-sentryin Claude Code to confirm it loaded.

Bundled filesreferences/rules/ignoring-errors.md

Details

From the project README

Sentry Integration

OneKey uses Sentry for error tracking across all platforms.

Architecture Overview

apps/
├── desktop/app/sentry.ts          # Desktop main process
├── ext/                           # Extension (uses shared)
├── mobile/                        # Mobile (uses shared)
└── web/                           # Web (uses shared)

packages/shared/src/modules3rdParty/sentry/
├── index.ts                       # Web/Extension entry
├── index.native.ts                # React Native entry
├── index.desktop.ts               # Desktop renderer entry
├── basicOptions.ts                # Shared config & error filtering
└── instance.ts                    # Sentry client instance

Platform Detection

import platformEnv from '@onekeyhq/shared/src/platformEnv';

platformEnv.isDesktop    // Electron desktop app
platformEnv.isNative     // React Native (iOS/Android)
platformEnv.isWeb        // Web browser
platformEnv.isExtension  // Browser extension
platformEnv.isWebEmbed   // Embedded web components

Common Tasks

Filter/Ignore Errors

See: references/rules/ignoring-errors.md

Key file: packages/shared/src/modules3rdParty/sentry/basicOptions.ts

Add Custom Context
import * as Sentry from '@sentry/react-native'; // or @sentry/browser

// Add breadcrumb
Sentry.addBreadcrumb({
  category: 'action',
  message: 'User clicked button',
  level: 'info',
});

// Set user context
Sentry.setUser({ id: 'user-id' });

// Set tags
Sentry.setTag('feature', 'swap');

// Capture exception with context
Sentry.captureException(error, {
  extra: { additionalData: 'value' },
});

Key Files

PurposeFile
Error filteringpackages/shared/src/modules3rdParty/sentry/basicOptions.ts
Desktop mainapps/desktop/app/sentry.ts
Desktop rendererpackages/shared/src/modules3rdParty/sentry/index.desktop.ts
Web/Extensionpackages/shared/src/modules3rdParty/sentry/index.ts
Nativepackages/shared/src/modules3rdParty/sentry/index.native.ts

Error Filtering Quick Reference

// Filter by error type
const FILTERED_ERROR_TYPES = new Set(['AxiosError', 'HTTPClientError']);

// Filter by exact message
const FILTER_ERROR_VALUES = ['AbortError: AbortError'];

// Filter by pattern (in isFilterErrorAndSkipSentry function)
if (error.value?.includes('PATTERN')) return true;

Related Skills

  • /1k-coding-patterns - Error handling best practices

Comments

Markdown supported