787 matches across 17 categories. Click a row to expand file-level details.
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | scripts/electron-dev.ts | 53 | async function ensureBundledUvForCurrentPlatform(): Promise<void> { |
| LOW | packages/ui/src/components/ui/StyledDropdown.tsx | 29 | export function mirrorHoverToOpenStateClasses(className?: string): string | undefined { |
| LOW | …ges/ui/src/components/ui/IslandFollowUpContentView.tsx | 44 | export function IslandFollowUpContentView({ |
| LOW | packages/ui/src/components/ui/Island.tsx | 158 | function installGlobalScrollBlockers(): () => void { |
| LOW | packages/ui/src/components/chat/turn-utils.ts | 183 | export function shouldShowThinkingIndicator(phase: TurnPhase, isBuffering: boolean): boolean { |
| LOW | packages/ui/src/components/chat/turn-utils.ts | 297 | function extractTodosFromActivities(activities: ActivityItem[]): TodoItem[] | undefined { |
| LOW | packages/ui/src/components/chat/follow-up-helpers.ts | 12 | export function extractAnnotationSelectedText(annotation: AnnotationV1, messageContent: string): string { |
| LOW | packages/ui/src/components/chat/TurnCard.tsx | 140 | function computeEditWriteDiffStats( |
| LOW | packages/ui/src/components/chat/TurnCard.tsx | 624 | function extractActionFromDisplayName(iconName: string, llmName: string): string { |
| LOW | packages/ui/src/components/chat/TurnCard.tsx | 1500 | function createAnnotationIndexBadge(index: number): HTMLSpanElement { |
| LOW | packages/ui/src/components/markdown/diff-normalize.ts | 51 | function containsUnifiedFileBreakCandidate(lines: string[]): boolean { |
| LOW | …ages/ui/src/components/markdown/annotation-resolver.ts | 32 | function normalizeWhitespaceWithMap(input: string): NormalizedText { |
| LOW | …es/ui/src/components/markdown/TiptapMarkdownEditor.tsx | 69 | export function preprocessMarkdownForOfficial(markdown: string): string { |
| LOW | …es/ui/src/components/markdown/TiptapMarkdownEditor.tsx | 96 | export function postprocessMarkdownFromOfficial(markdown: string): string { |
| LOW | …es/ui/src/components/markdown/TiptapMarkdownEditor.tsx | 175 | async function handleDroppedOrPastedFiles( |
| LOW | packages/ui/src/components/markdown/link-target.ts | 39 | export function resolveMarkdownLinkTarget(target: string): ResolvedMarkdownLinkTarget { |
| LOW | packages/ui/src/components/markdown/link-target.ts | 57 | export function classifyMarkdownLinkTarget(target: string): 'file' | 'url' { |
| LOW | …/ui/src/components/markdown/MarkdownDatatableBlock.tsx | 161 | function computeNumericGranularities(values: number[], type: 'number' | 'currency' | 'percent'): GranularityOption[] { |
| LOW | …/ui/src/components/markdown/MarkdownDatatableBlock.tsx | 211 | function computeGranularityOptions(data: DatatableData): Map<string, GranularityOption[]> { |
| LOW | …ages/ui/src/components/markdown/CollapsibleSection.tsx | 9 | function AnimatedCollapsibleContent({ isOpen, children }: { isOpen: boolean; children: React.ReactNode }) { |
| LOW | packages/ui/src/components/markdown/mermaid-source.ts | 51 | export function getFirstMermaidDiagramLine(code: string): string | null { |
| LOW | packages/ui/src/components/markdown/TiptapSlashMenu.ts | 148 | function insertRichBlockAndOpenEditor( |
| LOW | packages/ui/src/components/markdown/TiptapSlashMenu.ts | 168 | function findLastCodeLanguageInDoc(editor: Editor): string | null { |
| LOW | packages/ui/src/components/markdown/TiptapSlashMenu.ts | 182 | function resolvePreferredCodeLanguage(editor: Editor): string { |
| LOW | packages/ui/src/components/markdown/TiptapSlashMenu.ts | 203 | function insertCodeBlockWithPlaceholder(editor: Editor, insertPos?: number) { |
| LOW | …src/components/markdown/CollapsibleMarkdownContext.tsx | 32 | export function CollapsibleMarkdownProvider({ children }: CollapsibleMarkdownProviderProps) { |
| LOW | …ui/src/components/annotations/interaction-selectors.ts | 3 | export function getAnnotationInteractionSourceKey(state: AnnotationInteractionState, messageId?: string): string { |
| LOW | …ui/src/components/annotations/interaction-selectors.ts | 17 | export function getAnnotationInteractionAnchor(state: AnnotationInteractionState): { x: number; y: number } | null { |
| LOW | …ents/annotations/use-annotation-island-presentation.ts | 33 | export function decideAnnotationIslandPresentation( |
| LOW | …ents/annotations/use-annotation-island-presentation.ts | 44 | export function useAnnotationIslandPresentation({ |
| LOW | …i/src/components/annotations/annotation-host-config.ts | 21 | export function shouldRenderAnnotationIslandInPortal(host: AnnotationHost): boolean { |
| LOW | packages/ui/src/components/annotations/island-motion.ts | 31 | export function getDefaultIslandWidthEstimate(): number { |
| LOW | packages/ui/src/components/annotations/island-motion.ts | 35 | export function buildSelectionEntryTransition(from: PointerSnapshot | null, to: PointerSnapshot | null): IslandTransitio |
| LOW | packages/ui/src/components/annotations/island-motion.ts | 64 | export function buildAnnotationChipEntryTransition(): IslandTransitionConfig { |
| LOW | …s/annotations/use-annotation-interaction-controller.ts | 21 | export function useAnnotationInteractionController() { |
| LOW | packages/ui/src/components/annotations/block-markers.ts | 4 | export function clearBlockAnnotationMarkers(root: HTMLElement): void { |
| LOW | packages/ui/src/components/annotations/block-markers.ts | 13 | export function applyBlockAnnotationMarker(root: HTMLElement, annotation: AnnotationV1): void { |
| LOW | …es/ui/src/components/annotations/interaction-policy.ts | 16 | export function getAnnotationChipInteraction(annotation?: AnnotationV1 | null): AnnotationChipInteraction { |
| LOW | …es/ui/src/components/annotations/interaction-policy.ts | 28 | export function isAnnotationChipClickable(annotation?: AnnotationV1 | null): boolean { |
| LOW | …es/ui/src/components/annotations/interaction-policy.ts | 32 | export function getAnnotationChipOpenMode(): 'view' { |
| LOW | …es/ui/src/components/annotations/interaction-policy.ts | 41 | export function shouldIgnoreSelectionMouseUpTarget(target: EventTarget | null): boolean { |
| LOW | …kages/ui/src/components/annotations/annotation-core.ts | 18 | export function hasExistingTextRangeAnnotation( |
| LOW | …kages/ui/src/components/annotations/annotation-core.ts | 32 | export function createSelectionPreviewAnnotation( |
| LOW | …kages/ui/src/components/annotations/annotation-core.ts | 66 | export function createTextSelectionAnnotation( |
| LOW | …ui/src/components/annotations/island-dismiss-policy.ts | 9 | export function resolveIslandOutsideDismissAction({ |
| LOW | …rc/components/annotations/interaction-state-machine.ts | 47 | export function annotationInteractionReducer( |
| LOW | …/components/annotations/annotation-overlay-geometry.ts | 31 | export function computeAnnotationOverlayGeometry({ |
| LOW | …ges/ui/src/components/annotations/selection-restore.ts | 8 | export function restoreDomSelectionFromOffsets( |
| LOW | …ges/ui/src/components/annotations/selection-restore.ts | 37 | export function scheduleDomSelectionRestore( |
| LOW | …kages/ui/src/components/annotations/follow-up-state.ts | 25 | export function getAnnotationFollowUpState(annotation: AnnotationV1): AnnotationFollowUpState { |
| LOW | …kages/ui/src/components/annotations/follow-up-state.ts | 50 | export function formatAnnotationFollowUpTooltipText(annotation: AnnotationV1, maxLength = 180): string { |
| LOW | …components/annotations/use-annotation-island-events.ts | 41 | export function useAnnotationIslandEvents({ |
| LOW | …src/components/overlay/AnnotatableMarkdownDocument.tsx | 63 | export function AnnotatableMarkdownDocument({ |
| LOW | …src/components/overlay/FullscreenOverlayBaseHeader.tsx | 195 | export function FullscreenOverlayBaseHeader({ |
| LOW | …omponents/overlay/DocumentFormattedMarkdownOverlay.tsx | 61 | export function DocumentFormattedMarkdownOverlay({ |
| LOW | …es/ui/src/components/overlay/FullscreenOverlayBase.tsx | 88 | export function handleFullscreenEscapeWithStack(): boolean { |
| LOW | packages/ui/src/lib/dismissible-layer-bridge.ts | 37 | export function setDismissibleLayerBridge(bridge: DismissibleLayerBridge | null): void { |
| LOW | packages/ui/src/lib/dismissible-layer-bridge.ts | 41 | export function getDismissibleLayerBridge(): DismissibleLayerBridge | null { |
| LOW | packages/session-tools-core/src/validation.ts | 121 | export function validateJsonFileHasFields( |
| LOW | packages/session-tools-core/src/validation.ts | 307 | function getFirstMermaidDiagramLine(code: string): string { |
| 398 more matches not shown… | |||
| Severity | File | Line | Snippet |
|---|---|---|---|
| MEDIUM | scripts/install-server.sh | 25 | # --------------------------------------------------------------------------- |
| MEDIUM | scripts/install-server.sh | 27 | # --------------------------------------------------------------------------- |
| MEDIUM | scripts/install-server.sh | 38 | # --------------------------------------------------------------------------- |
| MEDIUM | scripts/install-server.sh | 40 | # --------------------------------------------------------------------------- |
| MEDIUM | scripts/install-server.sh | 50 | # --------------------------------------------------------------------------- |
| MEDIUM | scripts/install-server.sh | 52 | # --------------------------------------------------------------------------- |
| MEDIUM | scripts/install-server.sh | 64 | # --------------------------------------------------------------------------- |
| MEDIUM | scripts/install-server.sh | 66 | # --------------------------------------------------------------------------- |
| MEDIUM | scripts/install-server.sh | 71 | # --------------------------------------------------------------------------- |
| MEDIUM | scripts/install-server.sh | 73 | # --------------------------------------------------------------------------- |
| MEDIUM | scripts/docker-smoke-test.sh | 2 | # ============================================================================= |
| MEDIUM | scripts/docker-smoke-test.sh | 15 | # ============================================================================= |
| MEDIUM | packages/ui/src/components/ui/StyledDropdown.tsx | 97 | // ── Content ────────────────────────────────────────────────────────────────── |
| MEDIUM | packages/ui/src/components/ui/StyledDropdown.tsx | 135 | // ── Item ───────────────────────────────────────────────────────────────────── |
| MEDIUM | packages/ui/src/components/ui/StyledDropdown.tsx | 164 | // ── Separator ──────────────────────────────────────────────────────────────── |
| MEDIUM | packages/ui/src/components/ui/StyledDropdown.tsx | 178 | // ── Sub-menu trigger ───────────────────────────────────────────────────────── |
| MEDIUM | packages/ui/src/components/ui/StyledDropdown.tsx | 201 | // ── Sub-menu content ───────────────────────────────────────────────────────── |
| MEDIUM | packages/ui/src/components/ui/StyledDropdown.tsx | 231 | // ── Shortcut ───────────────────────────────────────────────────────────────── |
| MEDIUM | …kages/ui/src/components/markdown/MarkdownJsonBlock.tsx | 23 | // ── Themes (same as JSONPreviewOverlay) ──────────────────────────────────── |
| MEDIUM | …kages/ui/src/components/markdown/MarkdownJsonBlock.tsx | 39 | // ── Deep parse helper (same as JSONPreviewOverlay) ───────────────────────── |
| MEDIUM | …kages/ui/src/components/markdown/MarkdownJsonBlock.tsx | 76 | // ── Error boundary ──────────────────────────────────────────────────────── |
| MEDIUM | …kages/ui/src/components/markdown/MarkdownJsonBlock.tsx | 106 | // ── Helpers ──────────────────────────────────────────────────────────────── |
| MEDIUM | …kages/ui/src/components/markdown/MarkdownJsonBlock.tsx | 113 | // ── Main component ──────────────────────────────────────────────────────── |
| MEDIUM | …/ui/src/components/markdown/MarkdownDatatableBlock.tsx | 50 | // ── Types ──────────────────────────────────────────────────────────────────── |
| MEDIUM | …/ui/src/components/markdown/MarkdownDatatableBlock.tsx | 74 | // ── Cell formatting ────────────────────────────────────────────────────────── |
| MEDIUM | …/ui/src/components/markdown/MarkdownDatatableBlock.tsx | 118 | // ── Sort icon ──────────────────────────────────────────────────────────────── |
| MEDIUM | …/ui/src/components/markdown/MarkdownDatatableBlock.tsx | 137 | // ── Grouping granularity ───────────────────────────────────────────────── |
| MEDIUM | …/ui/src/components/markdown/MarkdownDatatableBlock.tsx | 272 | // ── Error boundary ─────────────────────────────────────────────────────────── |
| MEDIUM | …/ui/src/components/markdown/MarkdownDatatableBlock.tsx | 289 | // ── Main component ─────────────────────────────────────────────────────────── |
| MEDIUM | …kages/ui/src/components/markdown/MarkdownDiffBlock.tsx | 25 | // ── Custom element + theme registration (same as ShikiDiffViewer) ────────── |
| MEDIUM | …kages/ui/src/components/markdown/MarkdownDiffBlock.tsx | 42 | // ── Helpers ──────────────────────────────────────────────────────────────── |
| MEDIUM | …kages/ui/src/components/markdown/MarkdownDiffBlock.tsx | 53 | // ── Error boundary ──────────────────────────────────────────────────────── |
| MEDIUM | …kages/ui/src/components/markdown/MarkdownDiffBlock.tsx | 83 | // ── Main component ──────────────────────────────────────────────────────── |
| MEDIUM | …i/src/components/markdown/MarkdownSpreadsheetBlock.tsx | 35 | // ── Types ──────────────────────────────────────────────────────────────────── |
| MEDIUM | …i/src/components/markdown/MarkdownSpreadsheetBlock.tsx | 58 | // ── Cell formatting ────────────────────────────────────────────────────────── |
| MEDIUM | …i/src/components/markdown/MarkdownSpreadsheetBlock.tsx | 96 | // ── Error boundary ─────────────────────────────────────────────────────────── |
| MEDIUM | …i/src/components/markdown/MarkdownSpreadsheetBlock.tsx | 113 | // ── Main component ─────────────────────────────────────────────────────────── |
| MEDIUM | …kages/ui/src/components/markdown/MarkdownHtmlBlock.tsx | 40 | // ── Types ──────────────────────────────────────────────────────────────────── |
| MEDIUM | …kages/ui/src/components/markdown/MarkdownHtmlBlock.tsx | 53 | // ── Error boundary ─────────────────────────────────────────────────────────── |
| MEDIUM | …kages/ui/src/components/markdown/MarkdownHtmlBlock.tsx | 70 | // ── HTML preprocessing ─────────────────────────────────────────────────────── |
| MEDIUM | …kages/ui/src/components/markdown/MarkdownHtmlBlock.tsx | 89 | // ── Main component ─────────────────────────────────────────────────────────── |
| MEDIUM | packages/ui/src/components/markdown/table-export.ts | 10 | // ── Types ──────────────────────────────────────────────────────────────────── |
| MEDIUM | packages/ui/src/components/markdown/table-export.ts | 18 | // ── Markdown ───────────────────────────────────────────────────────────────── |
| MEDIUM | packages/ui/src/components/markdown/table-export.ts | 35 | // ── CSV (RFC 4180) ─────────────────────────────────────────────────────────── |
| MEDIUM | packages/ui/src/components/markdown/table-export.ts | 55 | // ── XLSX ───────────────────────────────────────────────────────────────────── |
| MEDIUM | packages/ui/src/components/markdown/table-export.ts | 101 | // ── XLSX Styles ────────────────────────────────────────────────────────────── |
| MEDIUM | …ckages/ui/src/components/markdown/MarkdownPdfBlock.tsx | 46 | // ── Types ──────────────────────────────────────────────────────────────────── |
| MEDIUM | …ckages/ui/src/components/markdown/MarkdownPdfBlock.tsx | 59 | // ── Error boundary ─────────────────────────────────────────────────────────── |
| MEDIUM | …ckages/ui/src/components/markdown/MarkdownPdfBlock.tsx | 76 | // ── Main component ─────────────────────────────────────────────────────────── |
| MEDIUM | …/ui/src/components/overlay/MultiDiffPreviewOverlay.tsx | 164 | // ── Fade-in reveal ────────────────────────────────────────────────── |
| MEDIUM | packages/shared/src/agent/claude-agent.ts | 1290 | // ═══════════════════════════════════════════════════════════════════════════ |
| MEDIUM | packages/shared/src/agent/claude-agent.ts | 1292 | // ═══════════════════════════════════════════════════════════════════════════ |
| MEDIUM | packages/shared/src/agent/claude-agent.ts | 1891 | // ───────────────────────────────────────────────────────────────── |
| MEDIUM | packages/shared/src/agent/claude-agent.ts | 1898 | // ───────────────────────────────────────────────────────────────── |
| MEDIUM | …ckages/shared/src/agent/backend/internal/drivers/pi.ts | 6 | // ── Copilot model types ──────────────────────────────────────────────── |
| MEDIUM | …ckages/shared/src/agent/backend/internal/drivers/pi.ts | 15 | // ── Direct HTTP approach ───────────────────────────────────────────── |
| MEDIUM | …ckages/shared/src/agent/backend/internal/drivers/pi.ts | 155 | // ── Tier 1: Direct HTTP API ────────────────────────────────────── |
| MEDIUM | …ckages/shared/src/agent/backend/internal/drivers/pi.ts | 172 | // ── Tier 2: Pi SDK static catalog (last resort) ────────────────── |
| MEDIUM | packages/shared/src/prompts/system.ts | 74 | // ── Context file cache ────────────────────────────────────────────────── |
| MEDIUM | packages/shared/src/skills/storage.ts | 192 | // ── Skills cache ──────────────────────────────────────────────────────── |
| 64 more matches not shown… | |||
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | scripts/build-server.ts | 830 | // Step 1: Clean |
| LOW | scripts/build-server.ts | 837 | // Step 2: Download Bun runtime |
| LOW | scripts/build-server.ts | 841 | // Step 3: Download uv |
| LOW | scripts/build-server.ts | 845 | // Step 4: Build MCP servers |
| LOW | scripts/build-server.ts | 864 | // Step 5: Assemble resources |
| LOW | scripts/build-server.ts | 868 | // Step 6: Copy production node_modules |
| LOW | scripts/build-server.ts | 872 | // Step 7: Copy workspace packages |
| LOW | scripts/build-server.ts | 877 | // Step 8: Create entry scripts + Docker files |
| LOW | packages/shared/src/utils/logo.ts | 351 | // Step 1: Try full domain first (e.g., mail.google.com) |
| LOW | packages/shared/src/utils/logo.ts | 359 | // Step 2: Try root domain (e.g., google.com) |
| LOW | packages/shared/src/utils/logo.ts | 365 | // Step 3: Fall back to Google Favicon V2 API (uses full domain for better results) |
| LOW | packages/shared/src/utils/binary-detection.ts | 227 | // Step 1: Strip only CR/LF (standard base64 line wrapping per RFC 2045). |
| LOW | packages/shared/src/utils/binary-detection.ts | 231 | // Step 2: Strict charset — detect alphabet variant. |
| LOW | packages/shared/src/utils/binary-detection.ts | 238 | // Step 3: Normalize to standard alphabet for decoding |
| LOW | packages/shared/src/utils/binary-detection.ts | 243 | // Step 4: Auto-pad to make length divisible by 4 |
| LOW | packages/shared/src/utils/binary-detection.ts | 248 | // Step 5: Decode |
| LOW | packages/shared/src/utils/binary-detection.ts | 257 | // Step 6: Canonical roundtrip — re-encode and compare to padded input. |
| LOW | packages/shared/src/utils/binary-detection.ts | 261 | // Step 7: Binary-likeness check (unchanged) |
| LOW | packages/shared/src/agent/mode-manager.ts | 1086 | // Step 1: Check for dangerous control characters (before parsing) |
| LOW | packages/shared/src/agent/mode-manager.ts | 1098 | // Step 2: Determine if this is a PowerShell command |
| LOW | packages/shared/src/agent/mode-manager.ts | 1128 | // Step 3: Use bash AST-based validation |
| LOW | packages/shared/src/agent/mode-manager.ts | 1137 | // Step 3: Convert AST rejection reason to BashRejectionReason |
| LOW | …c/agent/core/__tests__/pre-tool-use-checks.isolated.ts | 173 | // Step 1: Permission mode check |
| LOW | …c/agent/core/__tests__/pre-tool-use-checks.isolated.ts | 250 | // Step 2: Source blocking |
| LOW | …c/agent/core/__tests__/pre-tool-use-checks.isolated.ts | 328 | // Step 3: Prerequisite check |
| LOW | …c/agent/core/__tests__/pre-tool-use-checks.isolated.ts | 384 | // Step 4: call_llm interception |
| LOW | …c/agent/core/__tests__/pre-tool-use-checks.isolated.ts | 412 | // Step 5: Input transforms |
| LOW | …c/agent/core/__tests__/pre-tool-use-checks.isolated.ts | 682 | // Step 6: Ask-mode prompt decision |
| LOW | …ckages/shared/src/agent/backend/internal/drivers/pi.ts | 48 | // Step 1: Exchange GitHub OAuth token → Copilot API token |
| LOW | …ckages/shared/src/agent/backend/internal/drivers/pi.ts | 52 | // Step 2: Extract base URL from token |
| LOW | …ckages/shared/src/agent/backend/internal/drivers/pi.ts | 60 | // Step 3: GET /models |
| LOW | …hared/src/agent/__tests__/claude-event-adapter.test.ts | 763 | // Step 1: tool_start via stream event |
| LOW | …hared/src/agent/__tests__/claude-event-adapter.test.ts | 774 | // Step 2: assistant message confirms tool (deduped) |
| LOW | …hared/src/agent/__tests__/claude-event-adapter.test.ts | 786 | // Step 3: user message with tool result |
| LOW | …ed/src/sources/__tests__/token-refresh-manager.test.ts | 569 | // Step 1: getSourcesNeedingRefresh includes the expired source |
| LOW | …ed/src/sources/__tests__/token-refresh-manager.test.ts | 573 | // Step 2: refreshSources refreshes and restores auth state |
| LOW | …ed/src/sources/__tests__/token-refresh-manager.test.ts | 578 | // Step 3: Verify auth state is restored |
| LOW | packages/server-core/src/services/image-utils.ts | 128 | // Step 1: Compute target dimensions if resize needed |
| LOW | packages/server-core/src/services/image-utils.ts | 140 | // Step 2: Encode — try preferred format first |
| LOW | packages/server-core/src/services/image-utils.ts | 176 | // Step 5: Give up |
| LOW | apps/electron/src/renderer/App.tsx | 1204 | // Step 1: Store attachments and get persistent metadata |
| LOW | apps/electron/src/renderer/App.tsx | 1246 | // Step 2: Create processed attachments for Claude |
| LOW | apps/electron/src/renderer/App.tsx | 1272 | // Step 3: Extract badges from mentions (sources/skills) with embedded icons |
| LOW | apps/electron/src/renderer/App.tsx | 1314 | // Step 5: Create user message with StoredAttachments (for UI display) |
| LOW | apps/electron/src/renderer/App.tsx | 1340 | // Step 6: Send to Claude with processed attachments + stored attachments for persistence |
| LOW | …/electron/src/main/__tests__/sessions-sanitize.test.ts | 176 | // Step 1: badge substitution (as done in sessions.ts) |
| LOW | …/electron/src/main/__tests__/sessions-sanitize.test.ts | 183 | // Step 2: sanitize remaining mentions |
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | apps/electron/resources/scripts/xlsx_tool.py | 177 | except Exception as e: |
| LOW | apps/electron/resources/scripts/xlsx_tool.py | 232 | except Exception as e: |
| LOW | apps/electron/resources/scripts/xlsx_tool.py | 250 | except Exception: |
| LOW | apps/electron/resources/scripts/xlsx_tool.py | 272 | except Exception as e: |
| LOW | apps/electron/resources/scripts/xlsx_tool.py | 309 | except Exception as e: |
| LOW | apps/electron/resources/scripts/xlsx_tool.py | 369 | except Exception as e: |
| LOW | apps/electron/resources/scripts/docx_tool.py | 152 | except Exception as e: |
| LOW | apps/electron/resources/scripts/docx_tool.py | 204 | except Exception as e: |
| LOW | apps/electron/resources/scripts/docx_tool.py | 284 | except Exception as e: |
| LOW | apps/electron/resources/scripts/docx_tool.py | 322 | except Exception as e: |
| LOW | apps/electron/resources/scripts/docx_tool.py | 384 | except Exception as e: |
| LOW | apps/electron/resources/scripts/markitdown_cli.py | 116 | except Exception: |
| LOW | apps/electron/resources/scripts/markitdown_cli.py | 126 | except Exception as e: |
| LOW | apps/electron/resources/scripts/pdf_tool.py | 698 | except Exception as e: |
| LOW | apps/electron/resources/scripts/pdf_tool.py | 969 | except Exception as e: |
| LOW | apps/electron/resources/scripts/pdf_tool.py | 1175 | except Exception as e: |
| LOW | apps/electron/resources/scripts/pdf_tool.py | 452 | except Exception as e: |
| LOW | apps/electron/resources/scripts/pdf_tool.py | 493 | except Exception as e: |
| LOW | apps/electron/resources/scripts/pdf_tool.py | 549 | except Exception as e: |
| LOW | apps/electron/resources/scripts/pdf_tool.py | 580 | except Exception as e: |
| LOW | apps/electron/resources/scripts/pdf_tool.py | 614 | except Exception as e: |
| LOW | apps/electron/resources/scripts/pdf_tool.py | 637 | except Exception as e: |
| LOW | apps/electron/resources/scripts/pdf_tool.py | 674 | except Exception as e: |
| LOW | apps/electron/resources/scripts/pdf_tool.py | 739 | except Exception as e: |
| LOW | apps/electron/resources/scripts/pdf_tool.py | 781 | except Exception as e: |
| LOW | apps/electron/resources/scripts/pdf_tool.py | 810 | except Exception as e: |
| LOW | apps/electron/resources/scripts/pdf_tool.py | 842 | except Exception as e: |
| LOW | apps/electron/resources/scripts/pdf_tool.py | 871 | except Exception as e: |
| LOW | apps/electron/resources/scripts/pdf_tool.py | 913 | except Exception as e: |
| LOW | apps/electron/resources/scripts/pdf_tool.py | 992 | except Exception as e: |
| LOW | apps/electron/resources/scripts/pdf_tool.py | 1012 | except Exception as e: |
| LOW | apps/electron/resources/scripts/pdf_tool.py | 1131 | except Exception as e: |
| LOW | apps/electron/resources/scripts/pdf_tool.py | 1212 | except Exception as e: |
| LOW | apps/electron/resources/scripts/pdf_tool.py | 1235 | except Exception as e: |
| LOW | apps/electron/resources/scripts/pdf_tool.py | 1266 | except Exception as e: |
| LOW | apps/electron/resources/scripts/pdf_tool.py | 1315 | except Exception as e: |
| LOW | apps/electron/resources/scripts/doc_diff.py | 66 | except Exception as e: |
| LOW | apps/electron/resources/scripts/doc_diff.py | 227 | except Exception as e: |
| LOW | apps/electron/resources/scripts/ical_tool.py | 167 | except Exception as e: |
| LOW | apps/electron/resources/scripts/ical_tool.py | 275 | except Exception as e: |
| LOW | apps/electron/resources/scripts/ical_tool.py | 366 | except Exception as e: |
| LOW | apps/electron/resources/scripts/img_tool.py | 119 | except Exception as e: |
| LOW | apps/electron/resources/scripts/img_tool.py | 149 | except Exception as e: |
| LOW | apps/electron/resources/scripts/img_tool.py | 166 | except Exception as e: |
| LOW | apps/electron/resources/scripts/img_tool.py | 200 | except Exception as e: |
| LOW | apps/electron/resources/scripts/img_tool.py | 237 | except Exception: |
| LOW | apps/electron/resources/scripts/img_tool.py | 239 | except Exception: |
| LOW | apps/electron/resources/scripts/img_tool.py | 251 | except Exception as e: |
| LOW | apps/electron/resources/scripts/img_tool.py | 307 | except Exception: |
| LOW | apps/electron/resources/scripts/img_tool.py | 321 | except Exception as e: |
| LOW | apps/electron/resources/scripts/img_tool.py | 364 | except Exception as e: |
| LOW | apps/electron/resources/scripts/pptx_tool.py | 109 | except Exception as e: |
| LOW | apps/electron/resources/scripts/pptx_tool.py | 295 | except Exception as e: |
| LOW | apps/electron/resources/scripts/pptx_tool.py | 358 | except Exception as e: |
| Severity | File | Line | Snippet |
|---|---|---|---|
| HIGH | packages/ui/src/components/markdown/linkify.ts | 230 | // (e.g., AI-generated `[commit](https://github.com/...)` → `\`commit\``) |
| HIGH | packages/server-core/src/sessions/SessionManager.ts | 778 | // Session name (user-defined or AI-generated) |
| HIGH | apps/electron/src/renderer/atoms/sessions.ts | 86 | // Include plan messages as final responses (they're AI-generated content) |
| HIGH | apps/electron/src/renderer/utils/session.ts | 123 | // Include plan messages as final responses (they're AI-generated content) |
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | bunfig.toml | 1 | preload = ["./packages/shared/src/unified-network-interceptor.ts"] |
| LOW | scripts/install-server.sh | 1 | #!/usr/bin/env bash |
| LOW | scripts/docker-smoke-test.sh | 1 | #!/usr/bin/env bash |
| LOW | …es/ui/src/components/markdown/MarkdownMermaidBlock.tsx | 21 | // |
| LOW | packages/ui/src/components/markdown/Markdown.tsx | 181 | ) |
| LOW | packages/ui/src/components/markdown/table-export.ts | 101 | // ── XLSX Styles ────────────────────────────────────────────────────────────── |
| LOW | packages/shared/src/unified-network-interceptor.ts | 981 | }> | undefined; |
| LOW | packages/shared/src/agent/mode-manager.ts | 1001 | // Double-quoted string: fix the critical \" issue for Windows paths. |
| LOW | packages/shared/src/agent/base-agent.ts | 201 | |
| LOW | packages/shared/src/agent/tool-matching.ts | 261 | parentToolUseId: sdkParentToolUseId ?? undefined, |
| LOW | packages/shared/src/agent/claude-agent.ts | 1341 | // All permission logic is handled via the PreToolUse hook instead (see hooks.PreToolUse above). |
| LOW | packages/shared/src/agent/backend/pi/event-adapter.ts | 81 | // Mini model ID for call_llm display default (#596). |
| LOW | packages/pi-agent-server/src/index.ts | 1121 | // Log API errors for debugging and attach provider-native turn anchor for branch cutoffs. |
| LOW | …er-core/src/sessions/sendmessage-oauth-refresh.test.ts | 1 | import { afterEach, beforeEach, describe, expect, it } from 'bun:test' |
| LOW | …r-core/src/sessions/refresh-connection-runtime.test.ts | 1 | import { afterEach, beforeEach, describe, expect, it, jest } from 'bun:test' |
| LOW | packages/server-core/src/sessions/SessionManager.ts | 401 | return createTokenGetter(manager, source) |
| LOW | packages/server-core/src/sessions/SessionManager.ts | 841 | // Role/type of the last message (for badge display without loading messages) |
| LOW | packages/server-core/src/sessions/SessionManager.ts | 901 | // Parent session's sdkCwd — needed so the fork subprocess uses the correct |
| LOW | packages/server-core/src/sessions/SessionManager.ts | 5461 | await this.ensureMessagesLoaded(managed) |
| LOW | packages/server-core/src/handlers/rpc/sessions.ts | 201 | // |
| LOW | apps/webui/src/adapter/web-api.ts | 241 | // The OAuth provider redirects through the relay to our server's /api/oauth/callback, |
| LOW | apps/electron/electron-builder.yml | 61 | # and a per-platform optional dependency (`-darwin-arm64`, `-darwin-x64`, etc.) |
| LOW | apps/electron/resources/scripts/pdf_tool.py | 1 | # /// script |
| LOW | apps/electron/scripts/build-dmg.sh | 121 | cp "$TEMP_DIR/${BUN_DOWNLOAD}/bun" "$ELECTRON_DIR/vendor/bun/" |
| LOW | apps/electron/src/renderer/App.tsx | 761 | useEffect(() => { |
| LOW | …lectron/src/renderer/components/app-shell/AppShell.tsx | 1741 | // State to control which EditPopover is open (triggered from context menus). |
| LOW | …ctron/src/renderer/event-processor/handlers/session.ts | 541 | // Update existing message — clear isPending, set isQueued based on status. |
| LOW | apps/electron/src/main/index.ts | 1 | // Load user's shell environment first (before other imports that may use env) |
| LOW | apps/electron/src/main/handlers/browser.ts | 181 | } |
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | apps/electron/resources/scripts/xlsx_tool.py | 69 | |
| LOW | apps/electron/resources/scripts/xlsx_tool.py | 124 | |
| LOW | apps/electron/resources/scripts/xlsx_tool.py | 188 | |
| LOW | apps/electron/resources/scripts/xlsx_tool.py | 320 | |
| LOW | apps/electron/resources/scripts/docx_tool.py | 88 | |
| LOW | apps/electron/resources/scripts/docx_tool.py | 161 | |
| LOW | apps/electron/resources/scripts/docx_tool.py | 295 | |
| LOW | apps/electron/resources/scripts/docx_tool.py | 358 | |
| LOW | apps/electron/resources/scripts/pdf_tool.py | 71 | |
| LOW | apps/electron/resources/scripts/pdf_tool.py | 465 | |
| LOW | apps/electron/resources/scripts/pdf_tool.py | 647 | |
| LOW | apps/electron/resources/scripts/pdf_tool.py | 684 | |
| LOW | apps/electron/resources/scripts/pdf_tool.py | 1022 | |
| LOW | apps/electron/resources/scripts/pdf_tool.py | 1244 | |
| LOW | apps/electron/resources/scripts/doc_diff.py | 86 | |
| LOW | apps/electron/resources/scripts/doc_diff.py | 125 | |
| LOW | apps/electron/resources/scripts/ical_tool.py | 123 | |
| LOW | apps/electron/resources/scripts/ical_tool.py | 176 | |
| LOW | apps/electron/resources/scripts/ical_tool.py | 286 | |
| LOW | apps/electron/resources/scripts/img_tool.py | 76 | |
| LOW | apps/electron/resources/scripts/img_tool.py | 208 | |
| LOW | apps/electron/resources/scripts/img_tool.py | 264 | |
| LOW | apps/electron/resources/scripts/pptx_tool.py | 44 | |
| LOW | apps/electron/resources/scripts/pptx_tool.py | 165 | |
| LOW | apps/electron/resources/scripts/pptx_tool.py | 251 | |
| LOW | apps/electron/resources/scripts/pptx_tool.py | 305 |
| Severity | File | Line | Snippet |
|---|---|---|---|
| CRITICAL | …ectron/src/main/__tests__/browser-pane-manager.test.ts | 776 | const sendCallsAfterShow = instance.window.webContents.send.mock.calls.slice(sendsBeforeShow) |
| CRITICAL | …ectron/src/main/__tests__/browser-pane-manager.test.ts | 807 | const sendCallsAfterFinishLoad = instance.window.webContents.send.mock.calls.slice(sendsBeforeFinishLoad) |
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | …ages/shared/src/utils/__tests__/large-response.test.ts | 72 | const eightKTokenText = ('lorem ipsum dolor sit amet ').repeat(1185).slice(0, 32_000); |
| LOW | …ages/shared/src/utils/__tests__/large-response.test.ts | 72 | const eightKTokenText = ('lorem ipsum dolor sit amet ').repeat(1185).slice(0, 32_000); |
| LOW | …ages/shared/src/utils/__tests__/large-response.test.ts | 138 | const eightKTokenText = ('lorem ipsum dolor sit amet ').repeat(1185).slice(0, 32_000); |
| LOW | …ages/shared/src/utils/__tests__/large-response.test.ts | 138 | const eightKTokenText = ('lorem ipsum dolor sit amet ').repeat(1185).slice(0, 32_000); |
| LOW | …ages/shared/src/utils/__tests__/large-response.test.ts | 239 | ('Lorem ipsum dolor sit amet, consectetur adipiscing elit. ' + |
| LOW | …ages/shared/src/utils/__tests__/large-response.test.ts | 239 | ('Lorem ipsum dolor sit amet, consectetur adipiscing elit. ' + |
| LOW | …/shared/src/sources/__tests__/multi-header-e2e.test.ts | 235 | 'X-Auth-Email': 'user@example.com', |
| LOW | …/shared/src/sources/__tests__/multi-header-e2e.test.ts | 242 | expect(headers['X-Auth-Email']).toBe('user@example.com'); |
| LOW | …shared/src/sources/__tests__/multi-header-auth.test.ts | 192 | 'X-Auth-Email': 'user@example.com', |
| LOW | …shared/src/sources/__tests__/multi-header-auth.test.ts | 203 | expect(headers['X-Auth-Email']).toBe('user@example.com'); |
| LOW | apps/electron/resources/docs/data-tables.md | 35 | { "name": "Acme Corp", "revenue": 4200000, "growth": 0.152, "active": true, "tier": "Enterprise" }, |
| LOW | apps/electron/resources/docs/data-tables.md | 65 | | `text` | Any string | Plain text | `"John Doe"` | John Doe | |
| LOW | …lectron/src/renderer/playground/registry/turn-card.tsx | 1678 | name: 'Acme Corp', |
| LOW | …electron/src/renderer/playground/registry/messages.tsx | 473 | email: 'user@example.com', |
| LOW | …electron/src/renderer/playground/registry/messages.tsx | 860 | email: 'user@example.com', |
| LOW | …n/src/renderer/utils/__tests__/auth-validation.test.ts | 229 | expect(validateBasicAuthCredentials('user@example.com', 'pass', true)).toBe(true) |
| Severity | File | Line | Snippet |
|---|---|---|---|
| HIGH | apps/electron/resources/docs/sources.md | 393 | "BRAVE_API_KEY": "your-api-key" |
| HIGH | …lectron/src/renderer/playground/registry/turn-card.tsx | 1747 | Authorization: Bearer YOUR_API_KEY |
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | …ectron/resources/scripts/tests/test_pptx_tool_smoke.py | 1 | |
| LOW | …electron/resources/scripts/tests/_tool_test_harness.py | 1 | |
| LOW | …ectron/resources/scripts/tests/test_docx_tool_smoke.py | 1 | |
| LOW | …lectron/resources/scripts/tests/test_doc_diff_smoke.py | 1 | |
| LOW | …ctron/resources/scripts/tests/test_markitdown_smoke.py | 1 | |
| LOW | …lectron/resources/scripts/tests/test_pdf_tool_smoke.py | 8 | |
| LOW | …lectron/resources/scripts/tests/test_pdf_tool_smoke.py | 15 | |
| LOW | …ectron/resources/scripts/tests/test_xlsx_tool_smoke.py | 1 | |
| LOW | …ectron/resources/scripts/tests/test_ical_tool_smoke.py | 1 | |
| LOW | …lectron/resources/scripts/tests/test_img_tool_smoke.py | 1 |
| Severity | File | Line | Snippet |
|---|---|---|---|
| MEDIUM | packages/shared/src/agent/mode-manager.ts | 1877 | // Check plans folder with robust path containment (prevents sibling-prefix bypasses) |
| MEDIUM | packages/shared/src/agent/mode-manager.ts | 1883 | // Check data folder with robust path containment |
| MEDIUM | apps/electron/src/renderer/App.tsx | 776 | // This is simpler and more robust than checking event types - we just ask |
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | scripts/docker-smoke-test.sh | 53 | # Check if container is still running |
| LOW | scripts/install-app.sh | 39 | # Check if yq is available (optional, for YAML parsing) |
| LOW | scripts/install-app.sh | 88 | # Check if we're entering a new file entry |
| LOW | scripts/install-app.sh | 118 | # Check if we're entering a new file entry |
| Severity | File | Line | Snippet |
|---|---|---|---|
| HIGH | …lectron/src/renderer/playground/registry/turn-card.tsx | 1340 | elif model_type == "gradient_boosting": |
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | …ed/src/utils/__tests__/binary-detection-base64.test.ts | 26 | function processData(items: string[]): Map<string, number> { |
| LOW | packages/server-core/src/webui/node-adapter.ts | 33 | async function handleRequest( |
| LOW | apps/electron/resources/bridge-mcp-server/index.js | 2721 | function getData($data, { dataLevel, dataNames, dataPathArr }) { |
| LOW | apps/electron/resources/bridge-mcp-server/index.js | 9034 | function getData($data, { dataLevel, dataNames, dataPathArr }) { |
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | scripts/install-server.sh | 4 | # Usage: |
| LOW | scripts/docker-smoke-test.sh | 8 | # Usage: |
| Severity | File | Line | Snippet |
|---|---|---|---|
| MEDIUM | apps/electron/resources/scripts/pdf_tool.py | 897 | # Create a single-page image PDF and merge into output |