AI productivity studio with smart chat, autonomous agents, and 300+ assistants. Unified access to frontier LLMs
912 matches across 15 categories. Click a row to expand file-level details.
| Severity | File | Line | Snippet |
|---|---|---|---|
| MEDIUM | …es/skills/skill-creator/eval-viewer/generate_review.py | 284 | # --------------------------------------------------------------------------- |
| MEDIUM | …es/skills/skill-creator/eval-viewer/generate_review.py | 286 | # --------------------------------------------------------------------------- |
| MEDIUM | …s/data/best-practice-default-values-and-nullability.md | 181 | // ─── DB schema ──────────────────────────────────────────────── |
| MEDIUM | …s/data/best-practice-default-values-and-nullability.md | 199 | // ─── Zod schema ─────────────────────────────────────────────── |
| MEDIUM | …s/data/best-practice-default-values-and-nullability.md | 231 | // ─── Service ────────────────────────────────────────────────── |
| MEDIUM | …s/data/best-practice-default-values-and-nullability.md | 252 | // ─── Row → Entity ───────────────────────────────────────────── |
| MEDIUM | packages/ui/scripts/generate-avatars.ts | 272 | // ────────────────────────────────────────────────────────── |
| MEDIUM | packages/ui/scripts/generate-avatars.ts | 274 | // ────────────────────────────────────────────────────────── |
| MEDIUM | …ages/ui/scripts/__tests__/svgo-convert-to-mono.test.ts | 19 | // ─── Helpers ──────────────────────────────────────────────────────── |
| MEDIUM | …ages/ui/scripts/__tests__/svgo-convert-to-mono.test.ts | 46 | // ─── Single-color fill conversion ──────────────────────────────────── |
| MEDIUM | …ages/ui/scripts/__tests__/svgo-convert-to-mono.test.ts | 82 | // ─── Multi-color opacity mapping ───────────────────────────────────── |
| MEDIUM | …ages/ui/scripts/__tests__/svgo-convert-to-mono.test.ts | 103 | // ─── Narrow luminance range opacity spread ──────────────────────────── |
| MEDIUM | …ages/ui/scripts/__tests__/svgo-convert-to-mono.test.ts | 136 | // ─── White fill handling: backgroundWasDark ────────────────────────── |
| MEDIUM | …ages/ui/scripts/__tests__/svgo-convert-to-mono.test.ts | 189 | // ─── url(#gradient) fills ──────────────────────────────────────────── |
| MEDIUM | …ages/ui/scripts/__tests__/svgo-convert-to-mono.test.ts | 189 | // ─── url(#gradient) fills ──────────────────────────────────────────── |
| MEDIUM | …ages/ui/scripts/__tests__/svgo-convert-to-mono.test.ts | 203 | // ─── Removal of defs/clipPath/attributes ───────────────────────────── |
| MEDIUM | …ages/ui/scripts/__tests__/svgo-convert-to-mono.test.ts | 264 | // ─── Phase 0: Mask-based shape extraction ──────────────────────────── |
| MEDIUM | …ages/ui/scripts/__tests__/svgo-convert-to-mono.test.ts | 347 | // ─── Integration: backgroundWasDark threshold ──────────────────────── |
| MEDIUM | …ages/ui/scripts/__tests__/svgo-convert-to-mono.test.ts | 387 | // ─── Cutout / luminance mask preservation ───────────────────────────── |
| MEDIUM | packages/ui/scripts/__tests__/svg-utils.test.ts | 13 | // ─── colorToLuminance ─────────────────────────────────────────────── |
| MEDIUM | packages/ui/scripts/__tests__/svg-utils.test.ts | 64 | // ─── isWhiteFill ──────────────────────────────────────────────────── |
| MEDIUM | packages/ui/scripts/__tests__/svg-utils.test.ts | 96 | // ─── parseSvgPathBounds ───────────────────────────────────────────── |
| MEDIUM | packages/ui/scripts/__tests__/svg-utils.test.ts | 153 | // ─── parseViewBox ─────────────────────────────────────────────────── |
| MEDIUM | packages/ui/scripts/__tests__/svg-utils.test.ts | 177 | // ─── isLargeShape ─────────────────────────────────────────────────── |
| MEDIUM | packages/ui/scripts/__tests__/svg-utils.test.ts | 195 | // ─── normalizeColor ───────────────────────────────────────────────── |
| MEDIUM | packages/ui/scripts/__tests__/svg-utils.test.ts | 213 | // ─── isMonochromeSvg ─────────────────────────────────────────────── |
| MEDIUM | …es/ui/scripts/__tests__/svgo-remove-background.test.ts | 18 | // ─── Helpers ──────────────────────────────────────────────────────── |
| MEDIUM | …es/ui/scripts/__tests__/svgo-remove-background.test.ts | 35 | // ─── Rule 1: <rect> background ────────────────────────────────────── |
| MEDIUM | …es/ui/scripts/__tests__/svgo-remove-background.test.ts | 106 | // ─── Rule 2: Rounded-rect path background ─────────────────────────── |
| MEDIUM | …es/ui/scripts/__tests__/svgo-remove-background.test.ts | 177 | // ─── Rule 3: Large dark traced background ──────────────────────────── |
| MEDIUM | …es/ui/scripts/__tests__/svgo-remove-background.test.ts | 285 | // ─── Rule 4: Large white background path ───────────────────────────── |
| MEDIUM | …es/ui/scripts/__tests__/svgo-remove-background.test.ts | 301 | // ─── detectOnly mode ───────────────────────────────────────────────── |
| MEDIUM | …es/ui/scripts/__tests__/svgo-remove-background.test.ts | 341 | // ─── Element collection: skip mask/clipPath/defs ───────────────────── |
| MEDIUM | …es/ui/scripts/__tests__/svgo-remove-background.test.ts | 374 | // ─── Preserves non-background elements ─────────────────────────────── |
| MEDIUM | …ponents/composites/entity-selector/entity-selector.tsx | 97 | // ── Keyboard navigation ──────────────────────────────────────────────── |
| MEDIUM | packages/provider-registry/src/utils/normalize.ts | 9 | // ───────────────────────────────────────────────────────────────────────────── |
| MEDIUM | packages/provider-registry/src/utils/normalize.ts | 11 | // ───────────────────────────────────────────────────────────────────────────── |
| MEDIUM | packages/provider-registry/src/utils/normalize.ts | 103 | // ───────────────────────────────────────────────────────────────────────────── |
| MEDIUM | packages/provider-registry/src/utils/normalize.ts | 105 | // ───────────────────────────────────────────────────────────────────────────── |
| MEDIUM | …kages/provider-registry/src/schemas/provider-models.ts | 26 | // ═══════════════════════════════════════════════════════════════════════════════ |
| MEDIUM | …kages/provider-registry/src/schemas/provider-models.ts | 28 | // ═══════════════════════════════════════════════════════════════════════════════ |
| MEDIUM | packages/provider-registry/src/schemas/provider.ts | 15 | // ═══════════════════════════════════════════════════════════════════════════════ |
| MEDIUM | packages/provider-registry/src/schemas/provider.ts | 17 | // ═══════════════════════════════════════════════════════════════════════════════ |
| MEDIUM | packages/provider-registry/src/schemas/provider.ts | 40 | // ═══════════════════════════════════════════════════════════════════════════════ |
| MEDIUM | packages/provider-registry/src/schemas/provider.ts | 46 | // ═══════════════════════════════════════════════════════════════════════════════ |
| MEDIUM | packages/provider-registry/src/schemas/provider.ts | 171 | // ═══════════════════════════════════════════════════════════════════════════════ |
| MEDIUM | packages/provider-registry/src/schemas/provider.ts | 173 | // ═══════════════════════════════════════════════════════════════════════════════ |
| MEDIUM | packages/provider-registry/src/schemas/enums.ts | 11 | // ───────────────────────────────────────────────────────────────────────────── |
| MEDIUM | packages/provider-registry/src/schemas/enums.ts | 13 | // ───────────────────────────────────────────────────────────────────────────── |
| MEDIUM | packages/provider-registry/src/schemas/enums.ts | 34 | // ───────────────────────────────────────────────────────────────────────────── |
| MEDIUM | packages/provider-registry/src/schemas/enums.ts | 36 | // ───────────────────────────────────────────────────────────────────────────── |
| MEDIUM | packages/provider-registry/src/schemas/enums.ts | 59 | // ───────────────────────────────────────────────────────────────────────────── |
| MEDIUM | packages/provider-registry/src/schemas/enums.ts | 61 | // ───────────────────────────────────────────────────────────────────────────── |
| MEDIUM | packages/provider-registry/src/schemas/enums.ts | 72 | // ───────────────────────────────────────────────────────────────────────────── |
| MEDIUM | packages/provider-registry/src/schemas/enums.ts | 74 | // ───────────────────────────────────────────────────────────────────────────── |
| MEDIUM | packages/provider-registry/src/schemas/enums.ts | 83 | // ───────────────────────────────────────────────────────────────────────────── |
| MEDIUM | packages/provider-registry/src/schemas/enums.ts | 85 | // ───────────────────────────────────────────────────────────────────────────── |
| MEDIUM | packages/provider-registry/src/schemas/enums.ts | 98 | // ───────────────────────────────────────────────────────────────────────────── |
| MEDIUM | packages/provider-registry/src/schemas/enums.ts | 100 | // ───────────────────────────────────────────────────────────────────────────── |
| MEDIUM | packages/provider-registry/src/schemas/enums.ts | 126 | // ───────────────────────────────────────────────────────────────────────────── |
| 241 more matches not shown… | |||
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | docs/references/ai-core-architecture.md | 397 | async function transformMessagesAndFetch( |
| LOW | …r-temp/tools/data-classify/scripts/check-duplicates.js | 6 | function checkDuplicatesAndChildren() { |
| LOW | scripts/skills-common.ts | 53 | export function buildAgentsSkillsGitignore(skillNames: string[]): string { |
| LOW | scripts/skills-common.ts | 71 | export function buildClaudeSkillsGitignore(skillNames: string[]): string { |
| LOW | scripts/update-app-upgrade-config.ts | 485 | async function ensureReleaseAvailability(releaseInfo: ReleaseInfo): Promise<ReleaseAvailability> { |
| LOW | scripts/skills-check.ts | 65 | function checkTrackedFilesAgainstWhitelist(skillNames: string[], errors: string[]) { |
| LOW | scripts/check-legacy-css-vars.ts | 137 | export function findLegacyVarHitsInContent(content: string, filePath: string): Finding[] { |
| LOW | scripts/check-pr-style-reminders.ts | 79 | function isCanonicalClassCheckFile(filePath: string): boolean { |
| LOW | scripts/check-pr-style-reminders.ts | 95 | function getChangedCanonicalClassFiles(baseRef: string, headRef: string): string[] { |
| LOW | scripts/check-pr-style-reminders.ts | 105 | export function parseAddedLineNumbersFromDiff(diff: string): Set<number> { |
| LOW | scripts/check-pr-style-reminders.ts | 155 | export function parseAddedLegacyVarFindingsFromDiff(diff: string, filePath: string): PullRequestLegacyFinding[] { |
| LOW | scripts/check-pr-style-reminders.ts | 204 | export function checkPullRequestLegacyVars({ |
| LOW | scripts/check-pr-style-reminders.ts | 216 | export async function checkPullRequestTailwindCanonicalClasses({ |
| LOW | scripts/check-pr-style-reminders.ts | 240 | export function buildPullRequestStyleRemindersComment( |
| LOW | scripts/check-pr-style-reminders.ts | 261 | function buildLegacyVarsCommentSection(findings: PullRequestLegacyFinding[]): string { |
| LOW | scripts/check-pr-style-reminders.ts | 301 | function buildCanonicalClassesCommentSection(findings: PullRequestTailwindCanonicalFinding[]): string { |
| LOW | scripts/fix-tailwind-canonical-classes.ts | 97 | function canonicalizeCssVariableToken(originalToken: string, canonicalToken: string): string { |
| LOW | scripts/fix-tailwind-canonical-classes.ts | 122 | function collectCanonicalClassFindings( |
| LOW | scripts/fix-tailwind-canonical-classes.ts | 196 | export function findTailwindCanonicalClassFindingsInContent( |
| LOW | scripts/update-languages.ts | 48 | function generateLanguagesFileContent(languages: Record<string, LanguageData>): string { |
| LOW | packages/extension-table-plus/src/cell/table-cell.ts | 31 | function createCellSelectionDecorationSet(doc: ProseMirrorNode, selection: Selection): DecorationSet { |
| LOW | …ries/components/composites/composite-input.stories.tsx | 433 | render: function SelectVariantInteractiveExample() { |
| LOW | …ries/components/composites/composite-input.stories.tsx | 778 | render: function EmailVariantInteractiveExample() { |
| LOW | …ries/components/composites/composite-input.stories.tsx | 978 | render: function SubscribeNewsletterExample() { |
| LOW | …ui/stories/components/composites/menu-list.stories.tsx | 210 | function SmallMenuWithGroupsExample() { |
| LOW | …ui/stories/components/composites/menu-list.stories.tsx | 270 | function SettingsSubmenuActiveBoldExample() { |
| LOW | …ges/ui/stories/components/primitives/input.stories.tsx | 316 | render: function RealTimeValidationExample() { |
| LOW | …es/ui/stories/components/primitives/switch.stories.tsx | 520 | render: function InteractiveLoadingExample() { |
| LOW | …/ui/stories/components/primitives/textarea.stories.tsx | 97 | render: function WithCharacterCountExample() { |
| LOW | …/ui/stories/components/primitives/combobox.stories.tsx | 497 | render: function TriggerSearchFontListExample() { |
| LOW | …/ui/stories/components/primitives/combobox.stories.tsx | 535 | render: function CustomFilterOptionExample() { |
| LOW | …s/components/primitives/description-switch.stories.tsx | 271 | render: function NotificationSettingsExample() { |
| LOW | …s/components/primitives/description-switch.stories.tsx | 384 | render: function ApplicationSettingsExample() { |
| LOW | …s/components/primitives/description-switch.stories.tsx | 557 | render: function ComplexSettingsPanelExample() { |
| LOW | packages/ui/scripts/generate-icons.ts | 149 | function collectStaticSvgReferences(jsCode: string): Set<string> { |
| LOW | packages/ui/scripts/svgo-remove-background.ts | 61 | export function createRemoveBackgroundPlugin(options: RemoveBackgroundOptions = {}) { |
| LOW | packages/ui/scripts/svgo-convert-to-mono.ts | 78 | export function createConvertToMonoPlugin(options: ConvertToMonoOptions = {}) { |
| LOW | packages/ui/src/components/primitives/calendar.tsx | 128 | function handleCalendarDropdownChange(value: string | number, onChange: DropdownProps['onChange']) { |
| LOW | packages/ui/src/components/icons/registry.ts | 212 | export function resolveModelToProviderIcon(modelId: string): CompoundIcon | undefined { |
| LOW | packages/provider-registry/src/registry-utils.ts | 60 | export function buildRuntimeEndpointConfigs( |
| LOW | packages/provider-registry/src/registry-loader.ts | 38 | export function readProviderModelRegistry(jsonPath: string): { version: string; overrides: ProviderModelOverride[] } { |
| LOW | packages/provider-registry/src/utils/normalize.ts | 179 | export function normalizeVersionSeparators(modelId: string): string { |
| LOW | packages/aiCore/test_utils/helpers/common.ts | 14 | export function createTestStreamingProvider(chunks: any[]) { |
| LOW | packages/aiCore/test_utils/helpers/common.ts | 62 | export function createDelayedAbortController(delayMs: number): AbortController { |
| LOW | packages/aiCore/test_utils/helpers/common.ts | 228 | export function createRateLimitedProvider(limitPerSecond: number) { |
| LOW | packages/aiCore/src/core/runtime/index.ts | 108 | export async function createOpenAICompatibleExecutor( |
| LOW | src/renderer/databases/upgrades.ts | 83 | function mapOldStatusToBlockStatus(oldStatus: OldMessage['status']): MessageBlockStatus { |
| LOW | src/renderer/databases/upgrades.ts | 97 | function mapOldStatusToNewMessageStatus(oldStatus: OldMessage['status']): NewMessage['status'] { |
| LOW | src/renderer/types/mcp.ts | 259 | export function safeValidateMcpServerConfig(config: unknown) { |
| LOW | src/renderer/config/models/reasoning.ts | 328 | export function isSupportedThinkingTokenModel(model?: Model): boolean { |
| LOW | src/renderer/config/models/reasoning.ts | 335 | export function isSupportedReasoningEffortModel(model?: Model): boolean { |
| LOW | src/renderer/config/models/reasoning.ts | 348 | export function isSupportedReasoningEffortGrokModel(model?: Model): boolean { |
| LOW | src/renderer/config/models/reasoning.ts | 505 | export function isSupportedThinkingTokenQwenModel(model?: Model): boolean { |
| LOW | src/renderer/config/models/reasoning.ts | 569 | export function isDoubaoThinkingAutoModel(model: Model): boolean { |
| LOW | src/renderer/config/models/reasoning.ts | 584 | export function isSupportedThinkingTokenDoubaoModel(model?: Model): boolean { |
| LOW | src/renderer/config/models/websearch.ts | 127 | export function isMandatoryWebSearchModel(model: Model): boolean { |
| LOW | src/renderer/config/models/websearch.ts | 147 | export function isOpenRouterBuiltInWebSearchModel(model: Model): boolean { |
| LOW | src/renderer/config/models/websearch.ts | 163 | export function isOpenAIWebSearchChatCompletionOnlyModel(model: Model): boolean { |
| LOW | src/renderer/config/models/utils.ts | 32 | export function isSupportFlexServiceTierModel(model: Model): boolean { |
| LOW | src/renderer/config/models/utils.ts | 42 | export function isSupportedFlexServiceTier(model: Model): boolean { |
| 320 more matches not shown… | |||
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | dev-app-update.yml | 1 | # provider: generic |
| LOW | tests/main.setup.ts | 161 | clear: vi.fn(), |
| LOW | docs/references/file/file-manager-architecture.md | 961 | Orphan sweep is **user-triggered via the `File_RunSweep` IPC channel** — there is no startup auto-run. The cleanup UI is |
| LOW | …kages/ui/stories/components/primitives/kbd.stories.tsx | 221 | // <Tooltip> |
| LOW | …kages/ui/stories/components/primitives/kbd.stories.tsx | 241 | // <TooltipContent> |
| LOW | src/renderer/types/index.ts | 521 | system = 'system' |
| LOW | src/renderer/utils/style.ts | 201 | // @media (max-width: ${breakpoints[key]}px) { |
| LOW | src/renderer/utils/messageUtils/filters.ts | 201 | // It depends on message.askId which should still exist on the Message type. |
| LOW | src/renderer/utils/__tests__/markdown.test.ts | 161 | // |
| LOW | src/renderer/components/MiniApp/MiniAppTabsPool.tsx | 41 | |
| LOW | …c/renderer/aiCore/plugins/searchOrchestrationPlugin.ts | 41 | return acc + part.text + '\n' |
| LOW | src/renderer/aiCore/utils/options.ts | 581 | | GoogleGenerativeAIProviderOptions |
| LOW | src/renderer/hooks/useSettings.ts | 21 | |
| LOW | src/renderer/hooks/useSettings.ts | 41 | // } |
| LOW | src/renderer/hooks/useSettings.ts | 61 | // dispatch(_setTestPlan(isTestPlan)) |
| LOW | src/renderer/hooks/useSettings.ts | 81 | // }, |
| LOW | src/renderer/hooks/useSettings.ts | 121 | // export const useEnableDeveloperMode = () => { |
| LOW | src/renderer/hooks/__tests__/useMiniAppPopup.test.ts | 561 | // Regression for https://github.com/CherryHQ/cherry-studio/pull/14049 — |
| LOW | src/renderer/data/hooks/__tests__/useDataApi.test.ts | 501 | await new Promise((r) => setTimeout(r, 30)) |
| LOW | …derer/pages/settings/McpSettings/AddMcpServerModal.tsx | 61 | // Example JSON (sse): |
| LOW | src/renderer/pages/home/Messages/Tools/MessageTool.tsx | 61 | // font-size: 14px; |
| LOW | …r/pages/home/Messages/Tools/MessageAgentTools/types.ts | 441 | // These types are all just aliases for string, duplicating BashToolOutput. |
| LOW | …ages/mini-apps/MiniAppSettings/useMiniAppVisibility.ts | 41 | */ |
| LOW | src/renderer/pages/paintings/config/aihubmixConfig.tsx | 261 | // { |
| LOW | src/renderer/pages/notes/NotesPage.tsx | 181 | ) |
| LOW | src/renderer/services/ApiService.ts | 641 | // const provider = getProviderByModel(model) |
| LOW | src/renderer/store/settings.ts | 461 | name: 'settings', |
| LOW | src/renderer/store/settings.ts | 481 | // }, |
| LOW | src/renderer/store/settings.ts | 501 | // state.showPrompt = action.payload |
| LOW | src/renderer/store/settings.ts | 521 | // setTrayOnClose: (state, action: PayloadAction<boolean>) => { |
| LOW | src/renderer/store/settings.ts | 541 | // }, |
| LOW | src/renderer/store/settings.ts | 561 | // state.testChannel = action.payload |
| LOW | src/renderer/store/settings.ts | 581 | // setWebdavPath: (state, action: PayloadAction<string>) => { |
| LOW | src/renderer/store/settings.ts | 601 | // state.codeExecution.enabled = action.payload.enabled |
| LOW | src/renderer/store/settings.ts | 621 | // } |
| LOW | src/renderer/store/settings.ts | 641 | // setCodeViewer: (state, action: PayloadAction<{ themeLight?: string; themeDark?: string }>) => { |
| LOW | src/renderer/store/settings.ts | 661 | // setCodeFancyBlock: (state, action: PayloadAction<boolean>) => { |
| LOW | src/renderer/store/settings.ts | 681 | // }, |
| LOW | src/renderer/store/settings.ts | 701 | // if (action.payload.visible) { |
| LOW | src/renderer/store/settings.ts | 721 | // state.multiModelMessageStyle = action.payload |
| LOW | src/renderer/store/settings.ts | 741 | // setShowModelNameInMarkdown: (state, action: PayloadAction<boolean>) => { |
| LOW | src/renderer/store/settings.ts | 761 | // }, |
| LOW | src/renderer/store/settings.ts | 781 | // state.defaultObsidianVault = action.payload |
| LOW | src/renderer/store/settings.ts | 801 | // setMaxKeepAliveMinapps: (state, action: PayloadAction<number>) => { |
| LOW | src/renderer/store/settings.ts | 821 | // }, |
| LOW | src/renderer/store/settings.ts | 861 | // }, |
| LOW | src/renderer/store/settings.ts | 921 | // setTargetLanguage, |
| LOW | src/renderer/store/settings.ts | 941 | // setAssistantIconType, |
| LOW | src/renderer/store/settings.ts | 961 | // setCodeShowLineNumbers, |
| LOW | src/renderer/store/settings.ts | 981 | // setClickTrayToShowQuickAssistant, |
| LOW | src/renderer/store/settings.ts | 1001 | // setMessageNavigation, |
| LOW | src/renderer/store/settings.ts | 1021 | // setUseSystemTitleBar, |
| LOW | src/renderer/store/runtime.ts | 21 | // export interface ChatState { |
| LOW | src/renderer/store/runtime.ts | 41 | |
| LOW | src/renderer/store/runtime.ts | 81 | const initialState: RuntimeState = { |
| LOW | src/renderer/store/runtime.ts | 101 | // ignore: false |
| LOW | src/renderer/store/runtime.ts | 121 | loadingMap: {}, |
| LOW | src/renderer/store/runtime.ts | 141 | // }, |
| LOW | src/renderer/store/runtime.ts | 161 | // // Chat related actions |
| LOW | src/renderer/store/runtime.ts | 181 | // }, |
| 65 more matches not shown… | |||
| Severity | File | Line | Snippet |
|---|---|---|---|
| CRITICAL | src/renderer/services/ocr/clients/OcrBaseApiClient.ts | 23 | const keys = this.provider.config.api.apiKey.split(',').map((key) => key.trim()) |
| CRITICAL | src/main/core/window/__tests__/WindowManager.test.ts | 560 | const reusedCalls = win.webContents.send.mock.calls.filter((c) => c[0] === 'window-manager:reused') |
| CRITICAL | src/main/core/window/__tests__/WindowManager.test.ts | 1452 | const reusedCalls = win.webContents.send.mock.calls.filter((call) => call[0] === 'window-manager:reused') |
| CRITICAL | src/main/core/window/__tests__/WindowManager.test.ts | 1478 | const reusedCalls = win.webContents.send.mock.calls.filter((call) => call[0] === 'window-manager:reused') |
| CRITICAL | …nts/services/channels/adapters/feishu/FeishuAdapter.ts | 282 | await this.client.cardkit.v1.card.settings({ |
| CRITICAL | …nts/services/channels/adapters/feishu/FeishuAdapter.ts | 295 | await this.client.cardkit.v1.card.update({ |
| CRITICAL | …nts/services/channels/adapters/feishu/FeishuAdapter.ts | 337 | await this.client.cardkit.v1.card.settings({ |
| CRITICAL | …nts/services/channels/adapters/feishu/FeishuAdapter.ts | 353 | await this.client.cardkit.v1.card.update({ |
| CRITICAL | …nts/services/channels/adapters/feishu/FeishuAdapter.ts | 398 | await this.client.cardkit.v1.card.create({ |
| CRITICAL | …nts/services/channels/adapters/feishu/FeishuAdapter.ts | 447 | await this.client.cardkit.v1.cardElement.content({ |
| CRITICAL | src/main/services/__tests__/MainWindowService.test.ts | 165 | const call = win.webContents.on.mock.calls.find(([event]) => event === 'render-process-gone') |
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | packages/vectorstores/libsql/src/LibSQLVectorStore.ts | 691 | // Step 1: Get vector search results |
| LOW | packages/vectorstores/libsql/src/LibSQLVectorStore.ts | 699 | // Step 2: Get BM25 results |
| LOW | packages/vectorstores/libsql/src/LibSQLVectorStore.ts | 707 | // Step 3: Combine results using RRF |
| LOW | .github/workflows/sync-to-gitcode.yml | 254 | # Step 1: Create release |
| LOW | .github/workflows/sync-to-gitcode.yml | 285 | # Step 2: Upload files to release |
| LOW | src/renderer/components/Popups/LanTransferPopup/hook.ts | 169 | // Step 0: Ensure handshake (connect if needed) |
| LOW | src/renderer/components/Popups/LanTransferPopup/hook.ts | 186 | // Step 1: Create temporary backup |
| LOW | src/renderer/components/Popups/LanTransferPopup/hook.ts | 195 | // Step 2: Set transferring state |
| LOW | src/renderer/components/Popups/LanTransferPopup/hook.ts | 201 | // Step 3: Send file |
| LOW | src/renderer/components/Popups/LanTransferPopup/hook.ts | 224 | // Step 4: Clean up temp file |
| LOW | src/main/core/preboot/userDataLocation.ts | 119 | // Step 1: process pending relocation, if any. |
| LOW | src/main/core/preboot/userDataLocation.ts | 136 | // Step 2: BootConfig as single source of truth. |
| LOW | src/main/core/preboot/userDataLocation.ts | 145 | // Step 3: portable fallback. |
| LOW | src/main/core/preboot/userDataLocation.ts | 154 | // Step 4: Electron default. |
| LOW | src/main/core/preboot/v2MigrationGate.ts | 59 | // Step 0: Resolve all migration-critical paths, including v1 legacy |
| LOW | …/main/knowledge/preprocess/MineruPreprocessProvider.ts | 202 | // Step 1: obtain the upload URL |
| LOW | …/main/knowledge/preprocess/MineruPreprocessProvider.ts | 204 | // Step 2: upload the file to the obtained URL |
| LOW | src/main/data/migration/v2/migrators/ChatMigrator.ts | 226 | // Step 1: Verify export files exist |
| LOW | src/main/data/migration/v2/migrators/ChatMigrator.ts | 242 | // Step 2: Load all blocks into lookup map |
| LOW | src/main/data/migration/v2/migrators/ChatMigrator.ts | 251 | // Step 3: Load assistant data for model lookup |
| LOW | src/main/data/migration/v2/migrators/ChatMigrator.ts | 295 | // Step 4: Count topics and estimate messages |
| LOW | src/main/data/migration/v2/migrators/ChatMigrator.ts | 309 | // Step 5: Validate sample data |
| LOW | …ain/data/migration/v2/migrators/PreferencesMigrator.ts | 86 | // Step 1: Detect conflicts between simple and complex mappings (strict mode) |
| LOW | …ain/data/migration/v2/migrators/PreferencesMigrator.ts | 101 | // Step 2: Process simple mappings |
| LOW | …ain/data/migration/v2/migrators/PreferencesMigrator.ts | 142 | // Step 3: Process complex mappings |
| LOW | src/main/data/services/MessageService.ts | 534 | // Step 1: Verify topic exists and fetch its current state. |
| LOW | src/main/data/services/MessageService.ts | 542 | // Step 2: Resolve parentId based on the three possible input states: |
| LOW | src/main/data/services/MessageService.ts | 612 | // Step 3: Insert the message using the resolved parentId. |
| LOW | src/main/services/BackupManager.ts | 197 | // Step 2: Copy IndexedDB and Local Storage directories |
| LOW | src/main/services/BackupManager.ts | 220 | // Step 3: Write metadata.json |
| LOW | src/main/services/BackupManager.ts | 225 | // Step 4: Copy Data directory (if not skipped) |
| LOW | src/main/services/BackupManager.ts | 246 | // Step 5: Create ZIP archive |
| LOW | src/main/services/lanTransfer/LanTransferService.ts | 578 | // Step 1: Send file_start |
| LOW | src/main/services/lanTransfer/LanTransferService.ts | 581 | // Step 2: Wait for file_start_ack |
| LOW | src/main/services/lanTransfer/LanTransferService.ts | 588 | // Step 3: Stream file chunks |
| LOW | src/main/services/lanTransfer/LanTransferService.ts | 593 | // Step 4: Send file_end |
| LOW | src/main/services/lanTransfer/LanTransferService.ts | 596 | // Step 5: Wait for file_complete |
| LOW | …vices/agents/services/security/ExternalContentGuard.ts | 80 | // Step 1: Normalize angle brackets to prevent boundary spoofing |
| LOW | …vices/agents/services/security/ExternalContentGuard.ts | 83 | // Step 2: Strip invisible Unicode characters |
| LOW | …vices/agents/services/security/ExternalContentGuard.ts | 86 | // Step 3: Detect suspicious patterns (advisory) |
| LOW | …vices/agents/services/security/ExternalContentGuard.ts | 96 | // Step 4: Generate random boundary ID (8 bytes hex = 16 chars) |
| LOW | …vices/agents/services/security/ExternalContentGuard.ts | 99 | // Step 5: Build security-wrapped message |
| LOW | src/main/services/agents/services/claudecode/index.ts | 875 | // Step 1: Resize if dimensions exceed limit |
| LOW | src/main/services/agents/services/claudecode/index.ts | 890 | // Step 2: If still over 5MB, progressively scale down |
| LOW | …ices/channels/adapters/feishu/FeishuAppRegistration.ts | 58 | // Step 1: init — check supported auth methods |
| LOW | …ices/channels/adapters/feishu/FeishuAppRegistration.ts | 62 | // Step 2: begin — start device flow |
| LOW | …ts/services/channels/adapters/wechat/WeChatProtocol.ts | 290 | // Step 1: get upload URL |
| LOW | …ts/services/channels/adapters/wechat/WeChatProtocol.ts | 311 | // Step 2: encrypt and upload |
| LOW | src/main/services/__tests__/AppUpdaterService.test.ts | 1002 | // Step 1: 1.6.3 -> 1.7.5 |
| LOW | src/main/services/__tests__/AppUpdaterService.test.ts | 1007 | // Step 2: 1.7.5 -> 2.0.0 |
| LOW | src/main/services/__tests__/AppUpdaterService.test.ts | 1012 | // Step 3: 2.0.0 -> 2.1.6 |
| Severity | File | Line | Snippet |
|---|---|---|---|
| HIGH | scripts/auto-translate-i18n.ts | 75 | console.log('💡 Edit the script and replace "your-api-key-here" with your real API key') |
| HIGH | packages/aiCore/README.md | 109 | apiKey: 'your-api-key' |
| HIGH | packages/aiCore/README.md | 130 | apiKey: 'your-api-key' |
| HIGH | …s/ToolSettings/ApiServerSettings/ApiServerSettings.tsx | 209 | value={`Authorization: Bearer ${apiKey || 'your-api-key'}`} |
| HIGH | src/renderer/store/mcp.ts | 164 | BRAVE_API_KEY: 'YOUR_API_KEY' |
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | …ui/stories/components/composites/scrollbar.stories.tsx | 24 | Line {i + 1}: Lorem ipsum dolor sit amet, consectetur adipiscing elit. |
| LOW | …ui/stories/components/composites/scrollbar.stories.tsx | 24 | Line {i + 1}: Lorem ipsum dolor sit amet, consectetur adipiscing elit. |
| LOW | …ries/components/composites/composite-input.stories.tsx | 1173 | placeholder="John Doe" |
| LOW | …ges/ui/stories/components/primitives/input.stories.tsx | 283 | <Input type="email" placeholder="email@example.com" defaultValue="user@example.com" /> |
| LOW | …ges/ui/stories/components/primitives/input.stories.tsx | 573 | <Input id="profile-name" placeholder="John Doe" /> |
| LOW | …es/ui/stories/components/primitives/drawer.stories.tsx | 154 | defaultValue="John Doe" |
| LOW | …es/ui/stories/components/primitives/drawer.stories.tsx | 195 | Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et |
| LOW | …es/ui/stories/components/primitives/drawer.stories.tsx | 195 | Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et |
| LOW | …es/ui/stories/components/primitives/dialog.stories.tsx | 124 | defaultValue="John Doe" |
| LOW | …es/ui/stories/components/primitives/dialog.stories.tsx | 192 | Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et |
| LOW | …es/ui/stories/components/primitives/dialog.stories.tsx | 192 | Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et |
| LOW | …/stories/components/primitives/input-group.stories.tsx | 516 | <InputGroupInput type="email" placeholder="email@example.com" defaultValue="user@example.com" /> |
| LOW | …/ui/stories/components/primitives/combobox.stories.tsx | 65 | label: 'John Doe', |
| Severity | File | Line | Snippet |
|---|---|---|---|
| MEDIUM | src/main/core/preboot/__tests__/chromiumFlags.test.ts | 81 | // each test is the robust pattern. |
| MEDIUM | src/main/core/preboot/__tests__/v2MigrationGate.test.ts | 144 | // is the robust pattern, no explicit doUnmock needed. |
| MEDIUM | …c/main/core/preboot/__tests__/userDataLocation.test.ts | 152 | // The robust pattern is: resetModules() in beforeEach + fresh |
| MEDIUM | src/main/services/file/tree/search.ts | 97 | // checkout. This is robust to: production bundle (`out/main/…`), source |
| Severity | File | Line | Snippet |
|---|---|---|---|
| MEDIUM | …es/skills/skill-creator/eval-viewer/generate_review.py | 409 | print(f"Error: {workspace} is not a directory", file=sys.stderr) |
| LOW | resources/skills/skill-creator/scripts/run_eval.py | 225 | except Exception as e: |
| MEDIUM | resources/skills/skill-creator/scripts/run_eval.py | 278 | print(f"Error: No SKILL.md found at {skill_path}", file=sys.stderr) |
| LOW | resources/skills/skill-creator/scripts/package_skill.py | 106 | except Exception as e: |
| MEDIUM | …es/skills/skill-creator/scripts/improve_description.py | 206 | print(f"Error: No SKILL.md found at {skill_path}", file=sys.stderr) |
| MEDIUM | resources/skills/skill-creator/scripts/run_loop.py | 265 | print(f"Error: No SKILL.md found at {skill_path}", file=sys.stderr) |
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | …es/skills/skill-creator/eval-viewer/generate_review.py | 85 | |
| LOW | …es/skills/skill-creator/eval-viewer/generate_review.py | 149 | |
| LOW | …es/skills/skill-creator/eval-viewer/generate_review.py | 288 | |
| LOW | resources/skills/skill-creator/scripts/run_eval.py | 36 | |
| LOW | resources/skills/skill-creator/scripts/package_skill.py | 42 | |
| LOW | …es/skills/skill-creator/scripts/improve_description.py | 51 | |
| LOW | …es/skills/skill-creator/scripts/aggregate_benchmark.py | 67 | |
| LOW | …ources/skills/skill-creator/scripts/generate_report.py | 16 | |
| LOW | resources/skills/skill-creator/scripts/utils.py | 7 |
| Severity | File | Line | Snippet |
|---|---|---|---|
| HIGH | …emp/tools/data-classify/scripts/validate-generation.js | 6 | * Validates the quality and correctness of auto-generated code files. |
| Severity | File | Line | Snippet |
|---|---|---|---|
| HIGH | src/main/mcpServers/python.ts | 44 | print('python code here')`, |
| Severity | File | Line | Snippet |
|---|---|---|---|
| MEDIUM | …nts/composites/horizontal-scroll-container.stories.tsx | 121 | <p className="text-sm text-gray-600">This is a sample card content for demonstration purposes.</p> |
| LOW | .github/ISSUE_TEMPLATE/2_question.yml | 60 | placeholder: "For example: use case, solutions you've tried, etc. Don't forget to include relevant screenshots/rec |
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | .github/workflows/auto-i18n.yml | 65 | # Check if there are any uncommitted changes |
| LOW | .github/workflows/github-issue-tracker.yml | 33 | # Check if time is between 00:00 and 08:30 |
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | …sources/skills/skill-creator/scripts/quick_validate.py | 7 |