关于 1k-sentry
面向 OneKey 的 Sentry 错误跟踪配置技能,涵盖桌面、移动端、网页和扩展程序。内容包括筛选错误及添加自定义上下文。
主要功能
- 01各平台的 Sentry 入口
- 02按类型和消息筛选错误
- 03添加自定义面包屑上下文
- 04提供关键配置文件路径
适用场景
- 01将指定错误排除在 Sentry 报告外
- 02为应用操作添加面包屑
- 03查找目标平台的 Sentry 文件
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ onekeyhq/ app-monorepo --skill 1k-sentry安装后在 Claude Code 中输入/1k-sentry确认已加载。
附带文件references/rules/ignoring-errors.md
详细介绍
Sentry 集成
OneKey 使用 Sentry 在所有平台上跟踪错误。
架构概览
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
平台检测
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
常见任务
过滤/忽略错误
参见:references/rules/ignoring-errors.md
关键文件:packages/shared/src/modules3rdParty/sentry/basicOptions.ts
添加自定义上下文
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' },
});
关键文件
| 用途 | 文件 |
|---|---|
| 错误过滤 | packages/shared/src/modules3rdParty/sentry/basicOptions.ts |
| 桌面端主进程 | apps/desktop/app/sentry.ts |
| 桌面端渲染进程 | packages/shared/src/modules3rdParty/sentry/index.desktop.ts |
| Web/扩展 | packages/shared/src/modules3rdParty/sentry/index.ts |
| 原生端 | packages/shared/src/modules3rdParty/sentry/index.native.ts |
错误过滤快速参考
// 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;
相关技能
/1k-coding-patterns- 错误处理最佳实践
评论
支持 Markdown