Powerful AI Client
This report summarizes scanner evidence for chatboxai/chatbox, a TypeScript project with 41,990 GitHub stars. SynthScan examined 318,432 lines of code across 1671 source files, recording 2001 pattern matches distributed across 9 syntactic categories. The legacy adjusted pattern signal is 5.9 (Moderate pattern signal); it is not an authorship estimate.
Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.
Use each vector to guide manual verification of the underlying findings.
Can maintainers explain intent, assumptions, and trade-offs? 747 finding(s).
Are imports declared and package/API names verified? 1216 finding(s).
Are wrappers, guards, and repeated structures necessary? 717 finding(s).
Which changes need focused human review? 2001 finding(s).
This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.
Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.
This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.
The scanner identified 2001 distinct pattern matches across 9 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.
Reading the findings table: The Severity column indicates the configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | test/cases/file-conversation/sample.md | 113 | "street": "123 Main St", | CODE |
| LOW⚡ | test/cases/file-conversation/sample-large.txt | 5 | Line 1: This is sample content for testing pagination. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do e | CODE |
| LOW⚡ | test/cases/file-conversation/sample-large.txt | 5 | Line 1: This is sample content for testing pagination. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do e | CODE |
| LOW⚡ | test/cases/file-conversation/sample-large.txt | 6 | Line 2: This is sample content for testing pagination. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do e | CODE |
| LOW⚡ | test/cases/file-conversation/sample-large.txt | 6 | Line 2: This is sample content for testing pagination. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do e | CODE |
| LOW⚡ | test/cases/file-conversation/sample-large.txt | 7 | Line 3: This is sample content for testing pagination. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do e | CODE |
| LOW⚡ | test/cases/file-conversation/sample-large.txt | 7 | Line 3: This is sample content for testing pagination. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do e | CODE |
| LOW⚡ | test/cases/file-conversation/sample-large.txt | 8 | Line 4: This is sample content for testing pagination. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do e | CODE |
| LOW⚡ | test/cases/file-conversation/sample-large.txt | 8 | Line 4: This is sample content for testing pagination. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do e | CODE |
| LOW⚡ | test/cases/file-conversation/sample-large.txt | 9 | Line 5: This is sample content for testing pagination. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do e | CODE |
| LOW⚡ | test/cases/file-conversation/sample-large.txt | 9 | Line 5: This is sample content for testing pagination. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do e | CODE |
| LOW⚡ | test/cases/file-conversation/sample-large.txt | 10 | Line 6: This is sample content for testing pagination. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do e | CODE |
| LOW⚡ | test/cases/file-conversation/sample-large.txt | 10 | Line 6: This is sample content for testing pagination. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do e | CODE |
| LOW⚡ | test/cases/file-conversation/sample-large.txt | 11 | Line 7: This is sample content for testing pagination. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do e | CODE |
| LOW⚡ | test/cases/file-conversation/sample-large.txt | 11 | Line 7: This is sample content for testing pagination. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do e | CODE |
| LOW⚡ | test/cases/file-conversation/sample-large.txt | 12 | Line 8: This is sample content for testing pagination. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do e | CODE |
| LOW⚡ | test/cases/file-conversation/sample-large.txt | 12 | Line 8: This is sample content for testing pagination. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do e | CODE |
| LOW⚡ | test/cases/file-conversation/sample-large.txt | 13 | Line 9: This is sample content for testing pagination. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do e | CODE |
| LOW⚡ | test/cases/file-conversation/sample-large.txt | 13 | Line 9: This is sample content for testing pagination. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do e | CODE |
| LOW⚡ | test/cases/file-conversation/sample-large.txt | 14 | Line 10: This is sample content for testing pagination. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do | CODE |
| LOW⚡ | test/cases/file-conversation/sample-large.txt | 14 | Line 10: This is sample content for testing pagination. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do | CODE |
| LOW⚡ | test/cases/file-conversation/sample-large.txt | 15 | Line 11: This is sample content for testing pagination. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do | CODE |
| LOW⚡ | test/cases/file-conversation/sample-large.txt | 15 | Line 11: This is sample content for testing pagination. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do | CODE |
| LOW⚡ | test/cases/file-conversation/sample-large.txt | 16 | Line 12: This is sample content for testing pagination. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do | CODE |
| LOW⚡ | test/cases/file-conversation/sample-large.txt | 16 | Line 12: This is sample content for testing pagination. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do | CODE |
| LOW⚡ | test/cases/file-conversation/sample-large.txt | 17 | Line 13: This is sample content for testing pagination. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do | CODE |
| LOW⚡ | test/cases/file-conversation/sample-large.txt | 17 | Line 13: This is sample content for testing pagination. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do | CODE |
| LOW⚡ | test/cases/file-conversation/sample-large.txt | 18 | Line 14: This is sample content for testing pagination. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do | CODE |
| LOW⚡ | test/cases/file-conversation/sample-large.txt | 18 | Line 14: This is sample content for testing pagination. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do | CODE |
| LOW⚡ | test/cases/file-conversation/sample-large.txt | 19 | Line 15: This is sample content for testing pagination. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do | CODE |
| LOW⚡ | test/cases/file-conversation/sample-large.txt | 19 | Line 15: This is sample content for testing pagination. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do | CODE |
| LOW⚡ | test/cases/file-conversation/sample-large.txt | 20 | Line 16: This is sample content for testing pagination. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do | CODE |
| LOW⚡ | test/cases/file-conversation/sample-large.txt | 20 | Line 16: This is sample content for testing pagination. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do | CODE |
| LOW⚡ | test/cases/file-conversation/sample-large.txt | 21 | Line 17: This is sample content for testing pagination. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do | CODE |
| LOW⚡ | test/cases/file-conversation/sample-large.txt | 21 | Line 17: This is sample content for testing pagination. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do | CODE |
| LOW⚡ | test/cases/file-conversation/sample-large.txt | 22 | Line 18: This is sample content for testing pagination. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do | CODE |
| LOW⚡ | test/cases/file-conversation/sample-large.txt | 22 | Line 18: This is sample content for testing pagination. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do | CODE |
| LOW⚡ | test/cases/file-conversation/sample-large.txt | 23 | Line 19: This is sample content for testing pagination. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do | CODE |
| LOW⚡ | test/cases/file-conversation/sample-large.txt | 23 | Line 19: This is sample content for testing pagination. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do | CODE |
| LOW⚡ | test/cases/file-conversation/sample-large.txt | 24 | Line 20: This is sample content for testing pagination. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do | CODE |
| LOW⚡ | test/cases/file-conversation/sample-large.txt | 24 | Line 20: This is sample content for testing pagination. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do | CODE |
| LOW⚡ | test/cases/file-conversation/sample-large.txt | 25 | Line 21: This is sample content for testing pagination. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do | CODE |
| LOW⚡ | test/cases/file-conversation/sample-large.txt | 25 | Line 21: This is sample content for testing pagination. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do | CODE |
| LOW⚡ | test/cases/file-conversation/sample-large.txt | 26 | Line 22: This is sample content for testing pagination. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do | CODE |
| LOW⚡ | test/cases/file-conversation/sample-large.txt | 26 | Line 22: This is sample content for testing pagination. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do | CODE |
| LOW⚡ | test/cases/file-conversation/sample-large.txt | 27 | Line 23: This is sample content for testing pagination. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do | CODE |
| LOW⚡ | test/cases/file-conversation/sample-large.txt | 27 | Line 23: This is sample content for testing pagination. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do | CODE |
| LOW⚡ | test/cases/file-conversation/sample-large.txt | 28 | Line 24: This is sample content for testing pagination. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do | CODE |
| LOW⚡ | test/cases/file-conversation/sample-large.txt | 28 | Line 24: This is sample content for testing pagination. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do | CODE |
| LOW⚡ | test/cases/file-conversation/sample-large.txt | 29 | Line 25: This is sample content for testing pagination. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do | CODE |
| LOW⚡ | test/cases/file-conversation/sample-large.txt | 29 | Line 25: This is sample content for testing pagination. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do | CODE |
| LOW⚡ | test/cases/file-conversation/sample-large.txt | 30 | Line 26: This is sample content for testing pagination. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do | CODE |
| LOW⚡ | test/cases/file-conversation/sample-large.txt | 30 | Line 26: This is sample content for testing pagination. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do | CODE |
| LOW⚡ | test/cases/file-conversation/sample-large.txt | 31 | Line 27: This is sample content for testing pagination. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do | CODE |
| LOW⚡ | test/cases/file-conversation/sample-large.txt | 31 | Line 27: This is sample content for testing pagination. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do | CODE |
| LOW⚡ | test/cases/file-conversation/sample-large.txt | 32 | Line 28: This is sample content for testing pagination. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do | CODE |
| LOW⚡ | test/cases/file-conversation/sample-large.txt | 32 | Line 28: This is sample content for testing pagination. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do | CODE |
| LOW⚡ | test/cases/file-conversation/sample-large.txt | 33 | Line 29: This is sample content for testing pagination. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do | CODE |
| LOW⚡ | test/cases/file-conversation/sample-large.txt | 33 | Line 29: This is sample content for testing pagination. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do | CODE |
| LOW⚡ | test/cases/file-conversation/sample-large.txt | 34 | Line 30: This is sample content for testing pagination. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do | CODE |
| 1151 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | electron.vite.config.ts | 101 | export function shouldBuildElectronViteTarget( | CODE |
| LOW | electron.vite.config.ts | 120 | export function getRendererDevServerConfig(env: { | CODE |
| LOW | test/integration/file-conversation/test-harness.ts | 90 | export function createUserMessageWithFiles(content: string, files: TestFile[]): Message { | CODE |
| LOW | …ration/model-provider/claude-prompt-cache-live.test.ts | 165 | function installAnthropicRequestSpy() { | CODE |
| LOW | docs/technical/code-execution.md | 106 | export function computeEffectiveAgentMode(agentModeValue, agentModeSupported) { | CODE |
| LOW | …ckages/chatbox-react/src/stores/createSettingsStore.ts | 33 | function replaceSettingsProjection(current: SettingsStoreState, settings: Settings): SettingsStoreState { | CODE |
| LOW | packages/chatbox-react/src/query/host-lifecycle.ts | 17 | export function bindReactQueryHostLifecycle(lifecycle: ReactQueryHostLifecycle): () => void { | CODE |
| LOW | …ckages/chatbox-react/src/query/session-cache-policy.ts | 3 | export function mergeCachedGeneratingMessages(updated: Session, cached: Session | null | undefined): Session { | CODE |
| LOW | …kages/chatbox-react/src/query/session-query-options.ts | 10 | export function createSessionQueryDefinitions(source: SessionQuerySource) { | CODE |
| LOW | packages/chatbox-core/src/message-approval.ts | 38 | export function listPendingApprovalToolCalls(messages: ApprovalScanMessage[]): PendingApprovalToolCall[] { | CODE |
| LOW | packages/chatbox-core/src/message-approval.ts | 75 | export function hasPendingPauseInteraction(messages: ApprovalScanMessage[]): boolean { | CODE |
| LOW | packages/chatbox-core/src/message-approval.ts | 94 | export function listPendingPauseInteractions(messages: ApprovalScanMessage[]): PendingPauseInteraction[] { | CODE |
| LOW | packages/chatbox-core/src/utils/session-sort.ts | 3 | export function areSessionsInSamePinGroup( | CODE |
| LOW | packages/chatbox-core/src/utils/chat-export.ts | 51 | export function buildSessionExportThreads( | CODE |
| LOW | …tbox-core/src/application/context/compaction-commit.ts | 9 | export function buildCompactionCommitPatch( | CODE |
| LOW | …ox-core/src/application/context/compaction-boundary.ts | 11 | export function findLastCompactionBoundaryMessage(messages: Message[]): Message | undefined { | CODE |
| LOW | …atbox-core/src/application/session/session-metadata.ts | 53 | export function getSessionMetadataSnapshot(session: Session): SessionMetadataUpdate { | CODE |
| LOW | …atbox-core/src/application/session/session-metadata.ts | 64 | export function assertNoMessageDataUpdate(update: object): void { | CODE |
| LOW | …s/chatbox-core/src/application/session/message-tree.ts | 248 | function removeMessageFromSavedForks( | CODE |
| LOW | …-core/src/ports/testing/session-repository-contract.ts | 71 | export function createSessionRepositoryContract( | CODE |
| LOW | …-core/src/ports/testing/session-repository-contract.ts | 208 | export async function runSessionRepositoryContract(createRepository: SessionRepositoryContractFactory): Promise<void> { | CODE |
| LOW | …ges/chatbox-core/src/domain/settings/merge-settings.ts | 5 | export function mergeSettingsWithDefaults(persisted: unknown): Settings { | CODE |
| LOW | packages/chatbox-core/src/generation/generation-lock.ts | 28 | export function resetSessionGenerationLocksForTests(): void { | CODE |
| LOW | …/chatbox-core/src/generation/stream-chunk-processor.ts | 91 | export function finalizeReasoningDuration(part: MessageReasoningPart | undefined): void { | CODE |
| LOW | …/chatbox-core/src/generation/stream-chunk-processor.ts | 506 | async function getPreparingToolCallProgress( | CODE |
| LOW | …s/chatbox-core/src/generation/agent-mode-suggestion.ts | 37 | export function describeUserMessageForAgentModeDecision(message: Message): string { | CODE |
| LOW | …s/chatbox-core/src/generation/agent-mode-suggestion.ts | 55 | export function parseAgentModeSuggestionDecision(text: string): AgentModeSuggestionDecision | null { | CODE |
| LOW | packages/chatbox-core/src/generation/generation-flow.ts | 30 | export function createPausedToolCallExecutionContext( | CODE |
| LOW | packages/chatbox-core/src/generation/generation-flow.ts | 119 | function isCommandEscalationApprovalPausedError(error: unknown): error is CommandEscalationPauseError { | CODE |
| LOW⚡ | packages/chatbox-core/src/generation/generation-flow.ts | 143 | function isToolCallLimitPausedError(error: unknown): error is ToolCallLimitPauseError { | CODE |
| LOW⚡ | packages/chatbox-core/src/generation/generation-flow.ts | 151 | function isUserExecApprovalPausedError(error: unknown): error is UserExecPauseError { | CODE |
| LOW⚡ | packages/chatbox-core/src/generation/generation-flow.ts | 159 | function isFileMutationApprovalPausedError(error: unknown): error is FileMutationPauseError { | CODE |
| LOW⚡ | packages/chatbox-core/src/generation/generation-flow.ts | 168 | function isAppActionApprovalPausedError(error: unknown): error is AppActionPauseError { | CODE |
| LOW | packages/chatbox-core/src/generation/generation-flow.ts | 238 | export function applyPersistentToolCallPause(state: StreamProcessorState, error: unknown): StreamProcessorState { | CODE |
| LOW | packages/chatbox-core/src/generation/generation-flow.ts | 324 | export function cancelRunningToolCallBatch( | CODE |
| LOW | packages/chatbox-core/src/generation/generation-flow.ts | 390 | export function finishPausedToolCallContinuation(message: Message, finishReason?: string): Message { | CODE |
| LOW | packages/chatbox-core/src/generation/generation-flow.ts | 404 | export function findPausedToolCallLimitBatch(message: Message, toolCallId: string): MessageContentToolCallPart[] { | CODE |
| LOW | packages/chatbox-core/src/generation/generation-flow.ts | 413 | export function getApprovalTrackingTarget(part: MessageToolCallPart) { | CODE |
| LOW | packages/chatbox-core/src/generation/generation-flow.ts | 438 | export function findLastRetryableToolCallPart(message: Message): MessageToolCallPart | undefined { | CODE |
| LOW | packages/chatbox-core/src/generation/generation-flow.ts | 455 | export function keepContentPartsThroughToolCall(message: Message, toolCallId: string): MessageContentParts { | CODE |
| LOW | packages/chatbox-core/src/generation/generation-flow.ts | 460 | export function shouldPersistStreamingChunk( | CODE |
| LOW⚡ | packages/chatbox-core/src/session/auto-title.ts | 24 | export function getCurrentThreadNamingIdentity(session: ThreadNamingIdentitySession): string { | CODE |
| LOW⚡ | packages/chatbox-core/src/session/auto-title.ts | 28 | export function buildNameGenerationAttemptKey( | CODE |
| LOW⚡ | packages/chatbox-core/src/session/auto-title.ts | 36 | export function isNameGenerationAttemptKeyForSession(key: string, sessionId: string): boolean { | CODE |
| LOW⚡ | packages/chatbox-core/src/session/auto-title.ts | 45 | export function sanitizeGeneratedSessionName(raw: string): string { | CODE |
| LOW | packages/chatbox-core/src/session/action-gates.ts | 210 | export function assertSessionActionAllowed( | CODE |
| LOW | packages/chatbox-core/src/session/action-gates.ts | 248 | export function shouldShowConcurrentReplyStop(options: { | CODE |
| LOW | packages/chatbox-core/src/session/message-success.ts | 13 | function hasMeaningfulAssistantOutput(message: Message): boolean { | CODE |
| LOW | packages/chatbox-core/src/session/message-success.ts | 24 | function isFailedOrNonReplyAssistant(message: Message): boolean { | CODE |
| LOW | packages/chatbox-core/src/session/message-success.ts | 35 | export function isSuccessfulAssistantReply(message: Message): boolean { | CODE |
| LOW | packages/chatbox-core/src/session/message-success.ts | 62 | export function hasSuccessfulUserAssistantTurn(messages: Message[]): boolean { | CODE |
| LOW | packages/chatbox-core/src/session/mode-policy.ts | 75 | export function shouldRestrictMessageEditToLastOutput(mode: SessionMode, role: MessageRole): boolean { | CODE |
| LOW | …ckages/chatbox-core/src/session/prompt-cache-policy.ts | 39 | export function shouldConfirmPromptCacheBreak( | CODE |
| LOW | …ckages/chatbox-core/src/session/prompt-cache-policy.ts | 92 | export function shouldConfirmPromptCacheBreakForDelete( | CODE |
| LOW | packages/chatbox-core/src/session/generation-state.ts | 6 | export function isCancellableGeneratingAssistantMessage( | CODE |
| LOW | packages/chatbox-core/src/session/generation-state.ts | 13 | export function countCancellableGeneratingAssistantMessages( | CODE |
| LOW | packages/chatbox-core/src/session/generation-state.ts | 30 | function createReachableMessageTraversal(): ReachableMessageTraversal { | CODE |
| LOW | packages/chatbox-core/src/session/generation-state.ts | 70 | export function getReachableSessionMessages(session: Session): Message[] { | CODE |
| LOW | packages/chatbox-core/src/session/generation-state.ts | 85 | export function getCurrentConversationMessages(session: Session): Message[] { | CODE |
| LOW | packages/chatbox-core/src/session/generation-state.ts | 126 | export function getGenerationControlMessages( | CODE |
| 619 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | …enderer/stores/session/__tests__/tools-builder.test.ts | 3 | // ── Hoisted mocks (environment + modules) ────────────────────────────────── | COMMENT |
| MEDIUM | …enderer/stores/session/__tests__/tools-builder.test.ts | 196 | // ── Helpers ──────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …enderer/stores/session/__tests__/tools-builder.test.ts | 291 | // ── Tests ────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …res/session/__tests__/agent-mode-orchestration.test.ts | 19 | // ── sandboxMode computation ─────────────────────────────────────────────── | COMMENT |
| MEDIUM | …res/session/__tests__/agent-mode-orchestration.test.ts | 48 | // ── stream persistence policy ────────────────────────────────────────────── | COMMENT |
| MEDIUM | src/renderer/components/stories/HeaderReal.stories.tsx | 40 | // ─── Mock Data Factory ────────────────────────────────────────────── | COMMENT |
| MEDIUM | src/renderer/components/stories/HeaderReal.stories.tsx | 56 | // ─── Stories ──────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …er/components/stories/ReasoningContentReal.stories.tsx | 31 | // ─── Mock Data Factories ──────────────────────────────────────────── | COMMENT |
| MEDIUM | …er/components/stories/ReasoningContentReal.stories.tsx | 53 | // ─── Stories ──────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …nderer/components/stories/ToolCallPartReal.stories.tsx | 7 | // ─── ToolCallPartUI Stories ───────────────────────────────────────── | COMMENT |
| MEDIUM | …nderer/components/stories/ToolCallPartReal.stories.tsx | 32 | // ─── Mock Data Factories ──────────────────────────────────────────── | COMMENT |
| MEDIUM | …nderer/components/stories/ToolCallPartReal.stories.tsx | 45 | // ─── Stories ──────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …erer/components/stories/MessageErrTipsReal.stories.tsx | 31 | // ─── Mock Data Factory ────────────────────────────────────────────── | COMMENT |
| MEDIUM | …erer/components/stories/MessageErrTipsReal.stories.tsx | 44 | // ─── Stories ──────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …c/renderer/components/message-parts/ToolCallPartUI.tsx | 82 | // ─── Tool Error Result ────────────────────────────────────────────── | COMMENT |
| MEDIUM | …c/renderer/components/message-parts/ToolCallPartUI.tsx | 230 | // ─── Tool Icon Mapping ────────────────────────────────────────────── | COMMENT |
| MEDIUM | …c/renderer/components/message-parts/ToolCallPartUI.tsx | 286 | // ─── Pill Header (shared) ─────────────────────────────────────────── | COMMENT |
| MEDIUM | …c/renderer/components/message-parts/ToolCallPartUI.tsx | 354 | // ─── Web Search ───────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …c/renderer/components/message-parts/ToolCallPartUI.tsx | 565 | // ─── Parse Link ───────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …c/renderer/components/message-parts/ToolCallPartUI.tsx | 684 | // ─── General Tool Call ────────────────────────────────────────────── | COMMENT |
| MEDIUM | …c/renderer/components/message-parts/ToolCallPartUI.tsx | 752 | // ─── Create Download ───────────────────────────────────────────────── | COMMENT |
| MEDIUM | …c/renderer/components/message-parts/ToolCallPartUI.tsx | 1077 | // ─── User Exec ────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …c/renderer/components/message-parts/ToolCallPartUI.tsx | 1227 | // ─── Entry Point ──────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …c/renderer/components/message-parts/ToolCallPartUI.tsx | 1257 | // ─── Tool Call Timeline (consecutive tool calls) ───────────────── | COMMENT |
| MEDIUM | …c/renderer/components/message-parts/ToolCallPartUI.tsx | 1422 | // ─── View Image ───────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …c/renderer/components/message-parts/ToolCallPartUI.tsx | 2015 | // ─── Reasoning / Thinking (Minimal Inline) ────────────────────────── | COMMENT |
| MEDIUM | src/renderer/packages/user-exec-whitelist.ts | 17 | // ── Simple read-only commands (no subcommand check needed) ────────── | COMMENT |
| MEDIUM | src/renderer/packages/user-exec-whitelist.ts | 126 | // ── Subcommand-aware rules ────────────────────────────────────────── | COMMENT |
| MEDIUM | src/renderer/packages/user-exec-whitelist.ts | 167 | // ── Dangerous flags that make otherwise-safe commands unsafe ──────── | COMMENT |
| MEDIUM | src/renderer/packages/user-exec-whitelist.ts | 179 | // ── Shell metacharacter detection ─────────────────────────────────── | COMMENT |
| MEDIUM | src/renderer/packages/user-exec-whitelist.ts | 201 | // ── Core logic ────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | src/main/sandbox/manager.ts | 77 | // ─── Per-session sandbox instances ─────────────────────────────────── | COMMENT |
| MEDIUM | src/main/sandbox/manager.ts | 190 | // ─── Helpers ───────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | src/main/sandbox/manager.ts | 618 | // ─── Sandbox lifecycle ─────────────────────────────────────────────── | COMMENT |
| MEDIUM | src/main/sandbox/manager.ts | 1441 | // ─── File operations ───────────────────────────────────────────────── | COMMENT |
| MEDIUM | src/main/sandbox/manager.ts | 1679 | // ─── Sandbox lifecycle (continued) ─────────────────────────────────── | COMMENT |
| MEDIUM | src/main/sandbox/manager.ts | 1768 | // ─── Temp directory management ─────────────────────────────────────── | COMMENT |
| MEDIUM | src/main/sandbox/manager.ts | 2197 | // ─── Temp directory cleanup ────────────────────────────────────────── | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | docs/adding-new-provider.md | 18 | ### Step 1: Add Provider to Enum | COMMENT |
| LOW | docs/adding-new-provider.md | 31 | ### Step 2: Create the Model Class | COMMENT |
| LOW | docs/adding-new-provider.md | 78 | ### Step 3: Create the Provider Definition | COMMENT |
| LOW | docs/adding-new-provider.md | 148 | ### Step 4: Register the Provider | COMMENT |
| LOW | docs/adding-new-provider.md | 160 | ### Step 5: Add Provider Icon (Optional but Recommended) | COMMENT |
| LOW⚡ | src/renderer/stores/session/steering.test.ts | 170 | // Step 1: consume m1 at the tail of the current context. | COMMENT |
| LOW⚡ | src/renderer/stores/session/steering.test.ts | 175 | // Step 2: the SDK appended its own assistant output and tool result to the | COMMENT |
| LOW | src/renderer/stores/session/steering.test.ts | 194 | // Step 3: nothing new to consume; both records stay at their positions. | COMMENT |
| LOW⚡ | src/renderer/packages/latex.ts | 10 | // Step 1: Protect code blocks | COMMENT |
| LOW⚡ | src/renderer/packages/latex.ts | 17 | // Step 2: Protect existing LaTeX expressions | COMMENT |
| LOW⚡ | src/renderer/packages/latex.ts | 24 | // Step 3: Escape dollar signs that are likely currency indicators | COMMENT |
| LOW⚡ | src/renderer/packages/latex.ts | 27 | // Step 4: Restore LaTeX expressions | COMMENT |
| LOW⚡ | src/renderer/packages/latex.ts | 30 | // Step 5: Restore code blocks | COMMENT |
| LOW⚡ | src/renderer/packages/latex.ts | 33 | // Step 6: Apply additional escaping functions | COMMENT |
| LOW⚡ | …renderer/packages/context-management/context-tokens.ts | 104 | // Step 1: Call buildContextForSession to get base context messages | COMMENT |
| LOW⚡ | …renderer/packages/context-management/context-tokens.ts | 107 | // Step 2: Apply selectMessagesForSendContext filtering | COMMENT |
| LOW⚡ | src/main/knowledge-base/remote-file-parser.ts | 156 | // Step 1: Generate upload URL | COMMENT |
| LOW⚡ | src/main/knowledge-base/remote-file-parser.ts | 160 | // Step 2: Upload file to COS | COMMENT |
| LOW⚡ | src/main/knowledge-base/remote-file-parser.ts | 164 | // Step 3: Create file record and get parsed content | COMMENT |
| LOW⚡ | src/main/skills/builtin/data-analysis.ts | 30 | ### Step 1: Understand the Data | COMMENT |
| LOW⚡ | src/main/skills/builtin/data-analysis.ts | 37 | ### Step 2: Data Quality Assessment | COMMENT |
| LOW⚡ | src/main/skills/builtin/data-analysis.ts | 49 | ### Step 3: Exploratory Analysis | COMMENT |
| LOW⚡ | src/main/skills/builtin/data-analysis.ts | 59 | ### Step 4: Deep Analysis | COMMENT |
| LOW | src/main/skills/builtin/data-analysis.ts | 70 | ### Step 5: Generate Insights and Recommendations | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | src/renderer/stores/session/steering.test.ts | 170 | // Step 1: consume m1 at the tail of the current context. | COMMENT |
| LOW⚡ | src/renderer/stores/session/steering.test.ts | 175 | // Step 2: the SDK appended its own assistant output and tool result to the | COMMENT |
| LOW | src/renderer/stores/session/steering.test.ts | 194 | // Step 3: nothing new to consume; both records stay at their positions. | COMMENT |
| LOW⚡ | src/renderer/packages/latex.ts | 10 | // Step 1: Protect code blocks | COMMENT |
| LOW⚡ | src/renderer/packages/latex.ts | 17 | // Step 2: Protect existing LaTeX expressions | COMMENT |
| LOW⚡ | src/renderer/packages/latex.ts | 24 | // Step 3: Escape dollar signs that are likely currency indicators | COMMENT |
| LOW⚡ | src/renderer/packages/latex.ts | 27 | // Step 4: Restore LaTeX expressions | COMMENT |
| LOW⚡ | src/renderer/packages/latex.ts | 30 | // Step 5: Restore code blocks | COMMENT |
| LOW⚡ | src/renderer/packages/latex.ts | 33 | // Step 6: Apply additional escaping functions | COMMENT |
| LOW⚡ | …renderer/packages/context-management/context-tokens.ts | 104 | // Step 1: Call buildContextForSession to get base context messages | COMMENT |
| LOW⚡ | …renderer/packages/context-management/context-tokens.ts | 107 | // Step 2: Apply selectMessagesForSendContext filtering | COMMENT |
| LOW⚡ | src/main/knowledge-base/remote-file-parser.ts | 156 | // Step 1: Generate upload URL | COMMENT |
| LOW⚡ | src/main/knowledge-base/remote-file-parser.ts | 160 | // Step 2: Upload file to COS | COMMENT |
| LOW⚡ | src/main/knowledge-base/remote-file-parser.ts | 164 | // Step 3: Create file record and get parsed content | COMMENT |
| LOW⚡ | src/main/skills/builtin/data-analysis.ts | 30 | ### Step 1: Understand the Data | COMMENT |
| LOW⚡ | src/main/skills/builtin/data-analysis.ts | 37 | ### Step 2: Data Quality Assessment | COMMENT |
| LOW⚡ | src/main/skills/builtin/data-analysis.ts | 49 | ### Step 3: Exploratory Analysis | COMMENT |
| LOW⚡ | src/main/skills/builtin/data-analysis.ts | 59 | ### Step 4: Deep Analysis | COMMENT |
| LOW | src/main/skills/builtin/data-analysis.ts | 70 | ### Step 5: Generate Insights and Recommendations | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | docs/technical/session-attachment-rag-eval.md | 49 | CHATBOX_EVAL_API_KEY="your-api-key" \ | CODE |
| HIGH | scripts/session-rag-eval/README.md | 20 | CHATBOX_EVAL_API_KEY="your-api-key" \ | CODE |
| HIGH | src/renderer/components/settings/mcp/registries.ts | 110 | GITHUB_PERSONAL_ACCESS_TOKEN: '<YOUR_TOKEN>', | CODE |
| HIGH | src/renderer/components/settings/mcp/registries.ts | 124 | GITLAB_PERSONAL_ACCESS_TOKEN: '<YOUR_TOKEN>', | CODE |
| HIGH | src/renderer/components/settings/mcp/registries.ts | 402 | args: ['logfire-mcp', '--read-token=YOUR_TOKEN_HERE'], | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …es/chatbox-core/src/domain/settings/settings-schema.ts | 201 | claudePromptCacheTTL: z.enum(['5m', '1h']).optional().catch(undefined), | COMMENT |
| LOW | …kages/chatbox-core/src/generation/GenerationService.ts | 541 | // | COMMENT |
| LOW | packages/chatbox-core/src/session/action-gates.ts | 161 | return generationLocked ? blocked('generating') : ALLOWED | COMMENT |
| LOW | .erb/scripts/check-native-dep.js | 61 | COMMENT | |
| LOW | src/renderer/setupTests.ts | 1 | // jest-dom adds custom jest matchers for asserting on DOM nodes. | COMMENT |
| LOW | src/renderer/stores/migration.test.ts | 821 | COMMENT | |
| LOW | src/renderer/stores/session/agent-harness.ts | 441 | ...promptMsgs, | COMMENT |
| LOW | src/renderer/components/common/PopoverConfirm.tsx | 61 | // return ( | COMMENT |
| LOW | src/renderer/components/InputBox/QueuedMessagesBar.tsx | 241 | COMMENT | |
| LOW | src/renderer/packages/token_config.ts | 1 | // import { ModelProvider, SessionSettings } from '../../shared/types' | COMMENT |
| LOW | src/renderer/packages/token_config.ts | 21 | // settings.openaiMaxTokens = defaults.settings().openaiMaxTokens | COMMENT |
| LOW | src/renderer/packages/token_config.ts | 41 | // return settings | COMMENT |
| LOW | src/renderer/packages/remote.ts | 161 | // } | COMMENT |
| LOW | …enderer/packages/model-calls/toolsets/sandbox-paths.ts | 1 | import type { SandboxProvider } from '@shared/sandbox-provider' | COMMENT |
| LOW | src/shared/types/agent-persona.ts | 101 | // session's directories change, the workspace part is re-captured (user-explicit | COMMENT |
| LOW | src/main/main.ts | 421 | // const installExtensions = async () => { | COMMENT |
| LOW | src/main/menu.ts | 161 | // }, | COMMENT |
| LOW | src/main/pdfjs-globals.ts | 1 | // pdfjs-dist (used by file-parser.ts for local PDF text extraction) references | COMMENT |
| LOW | src/main/readability.ts | 1 | // import { Readability } from '@mozilla/readability' | COMMENT |
| LOW | src/main/readability.ts | 21 | // title, | COMMENT |
| LOW | src/main/deeplinks.ts | 21 | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | docs/technical/session-attachment-rag-eval.md | 1 | # Session Attachment RAG Evaluation | COMMENT |
| MEDIUM | scripts/session-rag-eval/README.md | 1 | # Session Attachment RAG Model Eval PoC | COMMENT |
| MEDIUM | scripts/session-rag-eval/SKILL.md | 6 | # Session Attachment RAG Eval | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | src/main/sandbox/preview-server.ts | 128 | async function handleRequest(req: IncomingMessage, res: ServerResponse): Promise<void> { | CODE |