ad8ac7970d
* fix: distinguish connection errors from collection-not-found in ChromaSync Previously, ensureCollection() caught ALL errors from chroma_get_collection_info and assumed they meant "collection doesn't exist". This caused connection errors like "Not connected" to trigger unnecessary collection creation attempts. Now connection-related errors are re-thrown immediately instead of being misinterpreted as missing collections. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * fix: improve error handling for Chroma connection and collection creation * fix: remove dead last_user_message from summarize flow The last_user_message field was extracted from transcripts but never used. In Claude Code transcripts, "user" type messages are mostly tool_results, not actual user input. The user's original request is already stored in user_prompts table. This removes the false warning "Missing last_user_message when queueing summary" which was complaining about missing data that didn't exist and wasn't needed. Changes: - summary-hook: Only extract last_assistant_message - SessionRoutes: Remove last_user_message from request body handling - SessionManager.queueSummarize: Remove lastUserMessage parameter - PendingMessage interface: Remove last_user_message field - SDKSession interface: Remove last_user_message field - All agents: Remove last_user_message from buildSummaryPrompt calls 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * build artifacts for plugin * Enhance error handling across multiple services - Improved logging in `BranchManager.ts` to capture recovery checkout failures. - Updated `PaginationHelper.ts` to log when file paths are plain strings instead of valid JSON. - Enhanced error logging in `SDKAgent.ts` for Claude executable detection failures. - Added logging for plain string handling in `SearchManager.ts` for files read and edited. - Improved logging in `paths.ts` for git root detection failures. - Enhanced JSON parsing error handling in `timeline-formatting.ts` with previews of failed inputs. - Updated `transcript-parser.ts` to log summary of parse errors after processing transcript lines. - Established a baseline for error handling practices in `error-handling-baseline.txt`. - Documented error handling anti-pattern rules in `CLAUDE.md` to prevent silent failures and improve code quality. * Add error handling anti-pattern detection script and guidelines - Introduced `detect-error-handling-antipatterns.ts` to identify common error handling issues in TypeScript code. - Created comprehensive documentation in `CLAUDE.md` outlining forbidden patterns, allowed patterns, and critical path protection rules. - Implemented checks for empty catch blocks, logging practices, and try-catch block sizes to prevent silent failures and improve debugging. - Established a reporting mechanism to summarize detected anti-patterns with severity levels. * feat: add console filter bar and log line parsing with filtering capabilities - Introduced a console filter bar with options to filter logs by level and component. - Implemented parsing of log lines to extract structured data including timestamp, level, component, and correlation ID. - Added functionality to toggle individual and all levels/components for filtering. - Enhanced log line rendering with color coding based on log level and special message types. - Improved responsiveness of the filter bar for smaller screens. --------- Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
689 lines
28 KiB
Plaintext
689 lines
28 KiB
Plaintext
🔍 Scanning for error handling anti-patterns...
|
|
|
|
Found 80 TypeScript files
|
|
|
|
|
|
═══════════════════════════════════════════════════════════════
|
|
ERROR HANDLING ANTI-PATTERNS DETECTED
|
|
═══════════════════════════════════════════════════════════════
|
|
|
|
Found 153 anti-patterns:
|
|
🔴 CRITICAL: 26
|
|
🟠 HIGH: 47
|
|
🟡 MEDIUM: 80
|
|
|
|
🔴 CRITICAL ISSUES (Fix immediately - these cause silent failures):
|
|
─────────────────────────────────────────────────────────────
|
|
|
|
📁 src/utils/transcript-parser.ts:44
|
|
❌ NO_LOGGING_IN_CATCH
|
|
Catch block has no logging - errors occur invisibly.
|
|
|
|
Code:
|
|
} catch (error) {
|
|
// [POSSIBLY RELEVANT]: Parse errors accumulated in parseErrors array for batch access, logging each line would be excessive
|
|
this.parseErrors.push({
|
|
lineNumber: index + 1,
|
|
error: error instanceof Error ? error.message : String(error),
|
|
... (2 more lines)
|
|
|
|
📁 src/shared/timeline-formatting.ts:18
|
|
❌ NO_LOGGING_IN_CATCH
|
|
Catch block has no logging - errors occur invisibly.
|
|
|
|
Code:
|
|
} catch (err) {
|
|
// [POSSIBLY RELEVANT]: Expected JSON parse failures for malformed data fields, too frequent to log
|
|
return [];
|
|
}
|
|
|
|
📁 src/shared/paths.ts:105
|
|
❌ NO_LOGGING_IN_CATCH
|
|
Catch block has no logging - errors occur invisibly.
|
|
|
|
Code:
|
|
} catch (error) {
|
|
// [POSSIBLY RELEVANT]: Expected when not in git repo or git unavailable, common fallback path
|
|
return basename(process.cwd());
|
|
}
|
|
|
|
📁 src/sdk/prompts.ts:98
|
|
❌ NO_LOGGING_IN_CATCH
|
|
Catch block has no logging - errors occur invisibly.
|
|
|
|
Code:
|
|
} catch (error) {
|
|
// [POSSIBLY RELEVANT]: Expected JSON parse failures for plain string tool inputs, normal fallback
|
|
toolInput = obs.tool_input;
|
|
}
|
|
|
|
📁 src/sdk/prompts.ts:105
|
|
❌ NO_LOGGING_IN_CATCH
|
|
Catch block has no logging - errors occur invisibly.
|
|
|
|
Code:
|
|
} catch (error) {
|
|
// [POSSIBLY RELEVANT]: Expected JSON parse failures for plain string tool outputs, normal fallback
|
|
toolOutput = obs.tool_output;
|
|
}
|
|
|
|
📁 src/services/worker-service.ts:68
|
|
❌ CATCH_AND_CONTINUE_CRITICAL_PATH
|
|
Critical path continues after error - may cause silent data corruption.
|
|
|
|
Code:
|
|
} catch (error) {
|
|
// [POSSIBLY RELEVANT]: PID file cleanup is non-critical, log full error and continue shutdown
|
|
logger.warn('SYSTEM', 'Failed to remove PID file', { path: PID_FILE }, error as Error);
|
|
}
|
|
|
|
📁 src/services/worker-service.ts:131
|
|
❌ CATCH_AND_CONTINUE_CRITICAL_PATH
|
|
Critical path continues after error - may cause silent data corruption.
|
|
|
|
Code:
|
|
} catch (error) {
|
|
// [POSSIBLY RELEVANT]: Context update is non-critical, log full error and continue
|
|
logger.warn('CURSOR', 'Failed to update context file', { projectName }, error as Error);
|
|
}
|
|
|
|
📁 src/services/worker-service.ts:152
|
|
❌ NO_LOGGING_IN_CATCH
|
|
Catch block has no logging - errors occur invisibly.
|
|
|
|
Code:
|
|
} catch (error) {
|
|
// [POSSIBLY RELEVANT]: Expected failure when port is free, called frequently for health checks
|
|
return false;
|
|
}
|
|
|
|
📁 src/services/worker-service.ts:165
|
|
❌ CATCH_AND_CONTINUE_CRITICAL_PATH
|
|
Critical path continues after error - may cause silent data corruption.
|
|
|
|
Code:
|
|
} catch (error) {
|
|
// [POSSIBLY RELEVANT]: Expected failures during startup health check, will retry
|
|
logger.debug('SYSTEM', 'Service not ready yet, will retry', { port }, error as Error);
|
|
}
|
|
|
|
📁 src/services/worker-service.ts:368
|
|
❌ CATCH_AND_CONTINUE_CRITICAL_PATH
|
|
Critical path continues after error - may cause silent data corruption.
|
|
|
|
Code:
|
|
} catch (error) {
|
|
// [POSSIBLY RELEVANT]: Shutdown must complete, log error and exit with failure code
|
|
logger.error('SYSTEM', 'Error during shutdown', {}, error as Error);
|
|
process.exit(1);
|
|
}
|
|
|
|
📁 src/services/worker-service.ts:623
|
|
❌ CATCH_AND_CONTINUE_CRITICAL_PATH
|
|
Critical path continues after error - may cause silent data corruption.
|
|
|
|
Code:
|
|
} catch (error) {
|
|
// [POSSIBLY RELEVANT]: Process may have already exited during cleanup, expected failure
|
|
logger.debug('SYSTEM', 'Failed to kill process, may have already exited', { pid }, error as Error);
|
|
}
|
|
|
|
📁 src/services/worker-service.ts:632
|
|
❌ CATCH_AND_CONTINUE_CRITICAL_PATH
|
|
Critical path continues after error - may cause silent data corruption.
|
|
|
|
Code:
|
|
} catch (error) {
|
|
// [POSSIBLY RELEVANT]: Process may have already exited during cleanup, expected failure
|
|
logger.debug('SYSTEM', 'Process already exited', { pid }, error as Error);
|
|
}
|
|
|
|
📁 src/services/worker-service.ts:838
|
|
❌ CATCH_AND_CONTINUE_CRITICAL_PATH
|
|
Critical path continues after error - may cause silent data corruption.
|
|
|
|
Code:
|
|
} catch (error) {
|
|
// Recovery is best-effort - skip failed sessions and continue with others
|
|
logger.warn('SYSTEM', `Failed to process session ${sessionDbId}`, {}, error as Error);
|
|
result.sessionsSkipped++;
|
|
}
|
|
|
|
📁 src/services/worker-service.ts:987
|
|
❌ CATCH_AND_CONTINUE_CRITICAL_PATH
|
|
Critical path continues after error - may cause silent data corruption.
|
|
|
|
Code:
|
|
} catch {
|
|
// Process may have already exited - continue shutdown
|
|
logger.debug('SYSTEM', 'Process already exited during force kill', { pid });
|
|
}
|
|
|
|
📁 src/services/worker-service.ts:1004
|
|
❌ NO_LOGGING_IN_CATCH
|
|
Catch block has no logging - errors occur invisibly.
|
|
|
|
Code:
|
|
} catch (error) {
|
|
// Expected: process has exited
|
|
// Not logging - this is called in a tight loop during cleanup
|
|
return false;
|
|
}
|
|
|
|
📁 src/services/worker-service.ts:1095
|
|
❌ EMPTY_CATCH
|
|
Empty catch block - errors are silently swallowed. User will waste hours debugging.
|
|
|
|
Code:
|
|
} catch {
|
|
// Start fresh if corrupt
|
|
}
|
|
|
|
📁 src/services/worker-service.ts:1301
|
|
❌ EMPTY_CATCH
|
|
Empty catch block - errors are silently swallowed. User will waste hours debugging.
|
|
|
|
Code:
|
|
} catch {
|
|
// CLI not found
|
|
}
|
|
|
|
📁 src/services/worker-service.ts:1413
|
|
❌ CATCH_AND_CONTINUE_CRITICAL_PATH
|
|
Critical path continues after error - may cause silent data corruption.
|
|
|
|
Code:
|
|
} catch (error) {
|
|
// Start fresh if corrupt
|
|
logger.warn('SYSTEM', 'Corrupt mcp.json, creating new config', { path: mcpJsonPath, error: error instanceof Error ? error.message : String(error) });
|
|
config = { mcpServers: {} };
|
|
}
|
|
|
|
📁 src/services/worker-service.ts:1670
|
|
❌ EMPTY_CATCH
|
|
Empty catch block - errors are silently swallowed. User will waste hours debugging.
|
|
|
|
Code:
|
|
} catch {
|
|
// Worker not running - that's ok, context will be generated after first session
|
|
}
|
|
|
|
📁 src/services/worker-service.ts:2050
|
|
❌ PROMISE_CATCH_NO_LOGGING
|
|
Promise .catch() without logging - errors are silently swallowed.
|
|
|
|
Code:
|
|
.catch((error) => {
|
|
logger.failure('SYSTEM', 'Worker failed to start', {}, error as Error);
|
|
removePidFile();
|
|
process.exit(1);
|
|
});
|
|
|
|
📁 src/services/worker/SDKAgent.ts:545
|
|
❌ CATCH_AND_CONTINUE_CRITICAL_PATH
|
|
Critical path continues after error - may cause silent data corruption.
|
|
|
|
Code:
|
|
} catch (error) {
|
|
// [POSSIBLY RELEVANT]: Expected failure when claude not in PATH, falls through to clear error message below
|
|
logger.debug('SDK', 'Claude executable auto-detection failed', {}, error as Error);
|
|
}
|
|
|
|
📁 src/services/worker/SearchManager.ts:1403
|
|
❌ NO_LOGGING_IN_CATCH
|
|
Catch block has no logging - errors occur invisibly.
|
|
|
|
Code:
|
|
} catch (error) {
|
|
// [POSSIBLY RELEVANT]: Expected JSON parse failures for plain string file lists, normal fallback
|
|
if (summary.files_read.trim()) {
|
|
lines.push(`**Files Read:** ${summary.files_read}`);
|
|
}
|
|
... (1 more lines)
|
|
|
|
📁 src/services/worker/SearchManager.ts:1418
|
|
❌ NO_LOGGING_IN_CATCH
|
|
Catch block has no logging - errors occur invisibly.
|
|
|
|
Code:
|
|
} catch (error) {
|
|
// [POSSIBLY RELEVANT]: Expected JSON parse failures for plain string file lists, normal fallback
|
|
if (summary.files_edited.trim()) {
|
|
lines.push(`**Files Edited:** ${summary.files_edited}`);
|
|
}
|
|
... (1 more lines)
|
|
|
|
📁 src/services/worker/PaginationHelper.ts:54
|
|
❌ NO_LOGGING_IN_CATCH
|
|
Catch block has no logging - errors occur invisibly.
|
|
|
|
Code:
|
|
} catch (err) {
|
|
// [POSSIBLY RELEVANT]: Expected JSON parse failures for plain string file paths, normal fallback
|
|
return filePathsStr;
|
|
}
|
|
|
|
📁 src/services/context-generator.ts:202
|
|
❌ NO_LOGGING_IN_CATCH
|
|
Catch block has no logging - errors occur invisibly.
|
|
|
|
Code:
|
|
} catch (parseError) {
|
|
// [POSSIBLY RELEVANT]: Expected malformed JSON lines in transcript, logging each would be excessive
|
|
continue;
|
|
}
|
|
|
|
📁 src/services/context-generator.ts:226
|
|
❌ NO_LOGGING_IN_CATCH
|
|
Catch block has no logging - errors occur invisibly.
|
|
|
|
Code:
|
|
} catch (error: any) {
|
|
if (error.code === 'ERR_DLOPEN_FAILED') {
|
|
unlinkSync(VERSION_MARKER_PATH);
|
|
} catch (unlinkError) {
|
|
// [POSSIBLY RELEVANT]: Marker file may not exist during first run, expected cleanup failure
|
|
... (1 more lines)
|
|
|
|
🟠 HIGH PRIORITY:
|
|
─────────────────────────────────────────────────────────────
|
|
|
|
📁 src/ui/viewer/hooks/useSSE.ts:50 - LARGE_TRY_BLOCK
|
|
Try block has 33 lines - too broad. Multiple errors lumped together.
|
|
|
|
📁 src/ui/viewer/hooks/usePagination.ts:54 - LARGE_TRY_BLOCK
|
|
Try block has 19 lines - too broad. Multiple errors lumped together.
|
|
|
|
📁 src/ui/viewer/hooks/useSettings.ts:64 - LARGE_TRY_BLOCK
|
|
Try block has 14 lines - too broad. Multiple errors lumped together.
|
|
|
|
📁 src/ui/viewer/hooks/useContextPreview.ts:47 - LARGE_TRY_BLOCK
|
|
Try block has 11 lines - too broad. Multiple errors lumped together.
|
|
|
|
📁 src/bin/import-xml-observations.ts:62 - LARGE_TRY_BLOCK
|
|
Try block has 12 lines - too broad. Multiple errors lumped together.
|
|
|
|
📁 src/bin/import-xml-observations.ts:134 - LARGE_TRY_BLOCK
|
|
Try block has 15 lines - too broad. Multiple errors lumped together.
|
|
|
|
📁 src/bin/import-xml-observations.ts:167 - LARGE_TRY_BLOCK
|
|
Try block has 13 lines - too broad. Multiple errors lumped together.
|
|
|
|
📁 src/servers/mcp-server.ts:52 - LARGE_TRY_BLOCK
|
|
Try block has 14 lines - too broad. Multiple errors lumped together.
|
|
|
|
📁 src/servers/mcp-server.ts:97 - LARGE_TRY_BLOCK
|
|
Try block has 21 lines - too broad. Multiple errors lumped together.
|
|
|
|
📁 src/services/sqlite/SessionStore.ts:55 - LARGE_TRY_BLOCK
|
|
Try block has 67 lines - too broad. Multiple errors lumped together.
|
|
|
|
📁 src/services/sqlite/SessionStore.ts:227 - LARGE_TRY_BLOCK
|
|
Try block has 38 lines - too broad. Multiple errors lumped together.
|
|
|
|
📁 src/services/sqlite/SessionStore.ts:346 - LARGE_TRY_BLOCK
|
|
Try block has 40 lines - too broad. Multiple errors lumped together.
|
|
|
|
📁 src/services/sqlite/SessionStore.ts:427 - LARGE_TRY_BLOCK
|
|
Try block has 43 lines - too broad. Multiple errors lumped together.
|
|
|
|
📁 src/services/sqlite/SessionStore.ts:495 - LARGE_TRY_BLOCK
|
|
Try block has 15 lines - too broad. Multiple errors lumped together.
|
|
|
|
📁 src/services/sqlite/SessionStore.ts:532 - LARGE_TRY_BLOCK
|
|
Try block has 35 lines - too broad. Multiple errors lumped together.
|
|
|
|
📁 src/services/sqlite/SessionStore.ts:599 - LARGE_TRY_BLOCK
|
|
Try block has 13 lines - too broad. Multiple errors lumped together.
|
|
|
|
📁 src/services/sqlite/SessionStore.ts:1550 - LARGE_TRY_BLOCK
|
|
Try block has 27 lines - too broad. Multiple errors lumped together.
|
|
|
|
📁 src/services/worker-service.ts:438 - LARGE_TRY_BLOCK
|
|
Try block has 16 lines - too broad. Multiple errors lumped together.
|
|
|
|
📁 src/services/worker-service.ts:526 - LARGE_TRY_BLOCK
|
|
Try block has 11 lines - too broad. Multiple errors lumped together.
|
|
|
|
📁 src/services/worker-service.ts:666 - LARGE_TRY_BLOCK
|
|
Try block has 56 lines - too broad. Multiple errors lumped together.
|
|
|
|
📁 src/services/worker-service.ts:814 - LARGE_TRY_BLOCK
|
|
Try block has 15 lines - too broad. Multiple errors lumped together.
|
|
|
|
📁 src/services/worker-service.ts:1638 - LARGE_TRY_BLOCK
|
|
Try block has 24 lines - too broad. Multiple errors lumped together.
|
|
|
|
📁 src/services/worker-service.ts:1753 - LARGE_TRY_BLOCK
|
|
Try block has 28 lines - too broad. Multiple errors lumped together.
|
|
|
|
📁 src/services/sync/ChromaSync.ts:99 - LARGE_TRY_BLOCK
|
|
Try block has 28 lines - too broad. Multiple errors lumped together.
|
|
|
|
📁 src/services/sync/ChromaSync.ts:344 - LARGE_TRY_BLOCK
|
|
Try block has 14 lines - too broad. Multiple errors lumped together.
|
|
|
|
📁 src/services/sync/ChromaSync.ts:534 - LARGE_TRY_BLOCK
|
|
Try block has 32 lines - too broad. Multiple errors lumped together.
|
|
|
|
📁 src/services/sync/ChromaSync.ts:609 - LARGE_TRY_BLOCK
|
|
Try block has 106 lines - too broad. Multiple errors lumped together.
|
|
|
|
📁 src/services/worker/GeminiAgent.ts:144 - LARGE_TRY_BLOCK
|
|
Try block has 76 lines - too broad. Multiple errors lumped together.
|
|
|
|
📁 src/services/worker/BranchManager.ts:120 - LARGE_TRY_BLOCK
|
|
Try block has 13 lines - too broad. Multiple errors lumped together.
|
|
|
|
📁 src/services/worker/BranchManager.ts:268 - LARGE_TRY_BLOCK
|
|
Try block has 21 lines - too broad. Multiple errors lumped together.
|
|
|
|
📁 src/services/worker/SearchManager.ts:120 - LARGE_TRY_BLOCK
|
|
Try block has 43 lines - too broad. Multiple errors lumped together.
|
|
|
|
📁 src/services/worker/SearchManager.ts:382 - LARGE_TRY_BLOCK
|
|
Try block has 13 lines - too broad. Multiple errors lumped together.
|
|
|
|
📁 src/services/worker/SearchManager.ts:642 - LARGE_TRY_BLOCK
|
|
Try block has 22 lines - too broad. Multiple errors lumped together.
|
|
|
|
📁 src/services/worker/SearchManager.ts:726 - LARGE_TRY_BLOCK
|
|
Try block has 18 lines - too broad. Multiple errors lumped together.
|
|
|
|
📁 src/services/worker/SearchManager.ts:818 - LARGE_TRY_BLOCK
|
|
Try block has 14 lines - too broad. Multiple errors lumped together.
|
|
|
|
📁 src/services/worker/SearchManager.ts:888 - LARGE_TRY_BLOCK
|
|
Try block has 16 lines - too broad. Multiple errors lumped together.
|
|
|
|
📁 src/services/worker/SearchManager.ts:958 - LARGE_TRY_BLOCK
|
|
Try block has 16 lines - too broad. Multiple errors lumped together.
|
|
|
|
📁 src/services/worker/SearchManager.ts:1028 - LARGE_TRY_BLOCK
|
|
Try block has 16 lines - too broad. Multiple errors lumped together.
|
|
|
|
📁 src/services/worker/SearchManager.ts:1098 - LARGE_TRY_BLOCK
|
|
Try block has 16 lines - too broad. Multiple errors lumped together.
|
|
|
|
📁 src/services/worker/SearchManager.ts:1181 - LARGE_TRY_BLOCK
|
|
Try block has 17 lines - too broad. Multiple errors lumped together.
|
|
|
|
📁 src/services/worker/SearchManager.ts:1282 - LARGE_TRY_BLOCK
|
|
Try block has 16 lines - too broad. Multiple errors lumped together.
|
|
|
|
📁 src/services/worker/SearchManager.ts:1493 - LARGE_TRY_BLOCK
|
|
Try block has 147 lines - too broad. Multiple errors lumped together.
|
|
|
|
📁 src/services/worker/SearchManager.ts:1725 - LARGE_TRY_BLOCK
|
|
Try block has 15 lines - too broad. Multiple errors lumped together.
|
|
|
|
📁 src/services/worker/OpenRouterAgent.ts:104 - LARGE_TRY_BLOCK
|
|
Try block has 77 lines - too broad. Multiple errors lumped together.
|
|
|
|
📁 src/services/worker/http/routes/SessionRoutes.ts:151 - LARGE_TRY_BLOCK
|
|
Try block has 13 lines - too broad. Multiple errors lumped together.
|
|
|
|
📁 src/services/worker/http/routes/SessionRoutes.ts:185 - LARGE_TRY_BLOCK
|
|
Try block has 20 lines - too broad. Multiple errors lumped together.
|
|
|
|
📁 src/services/context-generator.ts:182 - LARGE_TRY_BLOCK
|
|
Try block has 15 lines - too broad. Multiple errors lumped together.
|
|
|
|
🟡 MEDIUM PRIORITY:
|
|
─────────────────────────────────────────────────────────────
|
|
|
|
📁 src/ui/viewer/hooks/useStats.ts:13 - GENERIC_CATCH
|
|
Catch block handles all errors identically - no error type discrimination.
|
|
|
|
📁 src/ui/viewer/hooks/useSSE.ts:93 - GENERIC_CATCH
|
|
Catch block handles all errors identically - no error type discrimination.
|
|
|
|
📁 src/ui/viewer/hooks/useTheme.ts:19 - GENERIC_CATCH
|
|
Catch block handles all errors identically - no error type discrimination.
|
|
|
|
📁 src/ui/viewer/hooks/useTheme.ts:64 - GENERIC_CATCH
|
|
Catch block handles all errors identically - no error type discrimination.
|
|
|
|
📁 src/ui/viewer/hooks/usePagination.ts:84 - GENERIC_CATCH
|
|
Catch block handles all errors identically - no error type discrimination.
|
|
|
|
📁 src/ui/viewer/hooks/useContextPreview.ts:31 - GENERIC_CATCH
|
|
Catch block handles all errors identically - no error type discrimination.
|
|
|
|
📁 src/ui/viewer/hooks/useContextPreview.ts:60 - GENERIC_CATCH
|
|
Catch block handles all errors identically - no error type discrimination.
|
|
|
|
📁 src/bin/import-xml-observations.ts:152 - GENERIC_CATCH
|
|
Catch block handles all errors identically - no error type discrimination.
|
|
|
|
📁 src/bin/import-xml-observations.ts:183 - GENERIC_CATCH
|
|
Catch block handles all errors identically - no error type discrimination.
|
|
|
|
📁 src/bin/import-xml-observations.ts:329 - GENERIC_CATCH
|
|
Catch block handles all errors identically - no error type discrimination.
|
|
|
|
📁 src/bin/import-xml-observations.ts:361 - GENERIC_CATCH
|
|
Catch block handles all errors identically - no error type discrimination.
|
|
|
|
📁 src/utils/logger.ts:55 - GENERIC_CATCH
|
|
Catch block handles all errors identically - no error type discrimination.
|
|
|
|
📁 src/utils/logger.ts:74 - GENERIC_CATCH
|
|
Catch block handles all errors identically - no error type discrimination.
|
|
|
|
📁 src/utils/logger.ts:269 - GENERIC_CATCH
|
|
Catch block handles all errors identically - no error type discrimination.
|
|
|
|
📁 src/shared/timeline-formatting.ts:18 - GENERIC_CATCH
|
|
Catch block handles all errors identically - no error type discrimination.
|
|
|
|
📁 src/shared/SettingsDefaultsManager.ts:152 - GENERIC_CATCH
|
|
Catch block handles all errors identically - no error type discrimination.
|
|
|
|
📁 src/shared/paths.ts:105 - GENERIC_CATCH
|
|
Catch block handles all errors identically - no error type discrimination.
|
|
|
|
📁 src/sdk/prompts.ts:98 - GENERIC_CATCH
|
|
Catch block handles all errors identically - no error type discrimination.
|
|
|
|
📁 src/sdk/prompts.ts:105 - GENERIC_CATCH
|
|
Catch block handles all errors identically - no error type discrimination.
|
|
|
|
📁 src/servers/mcp-server.ts:76 - GENERIC_CATCH
|
|
Catch block handles all errors identically - no error type discrimination.
|
|
|
|
📁 src/servers/mcp-server.ts:123 - GENERIC_CATCH
|
|
Catch block handles all errors identically - no error type discrimination.
|
|
|
|
📁 src/servers/mcp-server.ts:269 - GENERIC_CATCH
|
|
Catch block handles all errors identically - no error type discrimination.
|
|
|
|
📁 src/services/sqlite/SessionStore.ts:138 - GENERIC_CATCH
|
|
Catch block handles all errors identically - no error type discrimination.
|
|
|
|
📁 src/services/sqlite/SessionStore.ts:278 - GENERIC_CATCH
|
|
Catch block handles all errors identically - no error type discrimination.
|
|
|
|
📁 src/services/sqlite/SessionStore.ts:399 - GENERIC_CATCH
|
|
Catch block handles all errors identically - no error type discrimination.
|
|
|
|
📁 src/services/sqlite/SessionStore.ts:482 - GENERIC_CATCH
|
|
Catch block handles all errors identically - no error type discrimination.
|
|
|
|
📁 src/services/sqlite/SessionStore.ts:520 - GENERIC_CATCH
|
|
Catch block handles all errors identically - no error type discrimination.
|
|
|
|
📁 src/services/sqlite/SessionStore.ts:575 - GENERIC_CATCH
|
|
Catch block handles all errors identically - no error type discrimination.
|
|
|
|
📁 src/services/sqlite/SessionStore.ts:619 - GENERIC_CATCH
|
|
Catch block handles all errors identically - no error type discrimination.
|
|
|
|
📁 src/services/sqlite/SessionStore.ts:1489 - GENERIC_CATCH
|
|
Catch block handles all errors identically - no error type discrimination.
|
|
|
|
📁 src/services/sqlite/SessionStore.ts:1521 - GENERIC_CATCH
|
|
Catch block handles all errors identically - no error type discrimination.
|
|
|
|
📁 src/services/sqlite/SessionStore.ts:1577 - GENERIC_CATCH
|
|
Catch block handles all errors identically - no error type discrimination.
|
|
|
|
📁 src/services/worker-service.ts:59 - GENERIC_CATCH
|
|
Catch block handles all errors identically - no error type discrimination.
|
|
|
|
📁 src/services/worker-service.ts:68 - GENERIC_CATCH
|
|
Catch block handles all errors identically - no error type discrimination.
|
|
|
|
📁 src/services/worker-service.ts:131 - GENERIC_CATCH
|
|
Catch block handles all errors identically - no error type discrimination.
|
|
|
|
📁 src/services/worker-service.ts:152 - GENERIC_CATCH
|
|
Catch block handles all errors identically - no error type discrimination.
|
|
|
|
📁 src/services/worker-service.ts:165 - GENERIC_CATCH
|
|
Catch block handles all errors identically - no error type discrimination.
|
|
|
|
📁 src/services/worker-service.ts:185 - GENERIC_CATCH
|
|
Catch block handles all errors identically - no error type discrimination.
|
|
|
|
📁 src/services/worker-service.ts:368 - GENERIC_CATCH
|
|
Catch block handles all errors identically - no error type discrimination.
|
|
|
|
📁 src/services/worker-service.ts:623 - GENERIC_CATCH
|
|
Catch block handles all errors identically - no error type discrimination.
|
|
|
|
📁 src/services/worker-service.ts:632 - GENERIC_CATCH
|
|
Catch block handles all errors identically - no error type discrimination.
|
|
|
|
📁 src/services/worker-service.ts:743 - GENERIC_CATCH
|
|
Catch block handles all errors identically - no error type discrimination.
|
|
|
|
📁 src/services/worker-service.ts:838 - GENERIC_CATCH
|
|
Catch block handles all errors identically - no error type discrimination.
|
|
|
|
📁 src/services/worker-service.ts:963 - GENERIC_CATCH
|
|
Catch block handles all errors identically - no error type discrimination.
|
|
|
|
📁 src/services/worker-service.ts:1004 - GENERIC_CATCH
|
|
Catch block handles all errors identically - no error type discrimination.
|
|
|
|
📁 src/services/worker-service.ts:1797 - GENERIC_CATCH
|
|
Catch block handles all errors identically - no error type discrimination.
|
|
|
|
📁 src/services/queue/SessionQueueProcessor.ts:31 - GENERIC_CATCH
|
|
Catch block handles all errors identically - no error type discrimination.
|
|
|
|
📁 src/services/sync/ChromaSync.ts:578 - GENERIC_CATCH
|
|
Catch block handles all errors identically - no error type discrimination.
|
|
|
|
📁 src/services/sync/ChromaSync.ts:808 - GENERIC_CATCH
|
|
Catch block handles all errors identically - no error type discrimination.
|
|
|
|
📁 src/services/worker/SettingsManager.ts:45 - GENERIC_CATCH
|
|
Catch block handles all errors identically - no error type discrimination.
|
|
|
|
📁 src/services/worker/BranchManager.ts:138 - GENERIC_CATCH
|
|
Catch block handles all errors identically - no error type discrimination.
|
|
|
|
📁 src/services/worker/BranchManager.ts:243 - GENERIC_CATCH
|
|
Catch block handles all errors identically - no error type discrimination.
|
|
|
|
📁 src/services/worker/BranchManager.ts:300 - GENERIC_CATCH
|
|
Catch block handles all errors identically - no error type discrimination.
|
|
|
|
📁 src/services/worker/SDKAgent.ts:545 - GENERIC_CATCH
|
|
Catch block handles all errors identically - no error type discrimination.
|
|
|
|
📁 src/services/worker/SearchManager.ts:185 - GENERIC_CATCH
|
|
Catch block handles all errors identically - no error type discrimination.
|
|
|
|
📁 src/services/worker/SearchManager.ts:398 - GENERIC_CATCH
|
|
Catch block handles all errors identically - no error type discrimination.
|
|
|
|
📁 src/services/worker/SearchManager.ts:676 - GENERIC_CATCH
|
|
Catch block handles all errors identically - no error type discrimination.
|
|
|
|
📁 src/services/worker/SearchManager.ts:754 - GENERIC_CATCH
|
|
Catch block handles all errors identically - no error type discrimination.
|
|
|
|
📁 src/services/worker/SearchManager.ts:838 - GENERIC_CATCH
|
|
Catch block handles all errors identically - no error type discrimination.
|
|
|
|
📁 src/services/worker/SearchManager.ts:912 - GENERIC_CATCH
|
|
Catch block handles all errors identically - no error type discrimination.
|
|
|
|
📁 src/services/worker/SearchManager.ts:982 - GENERIC_CATCH
|
|
Catch block handles all errors identically - no error type discrimination.
|
|
|
|
📁 src/services/worker/SearchManager.ts:1052 - GENERIC_CATCH
|
|
Catch block handles all errors identically - no error type discrimination.
|
|
|
|
📁 src/services/worker/SearchManager.ts:1127 - GENERIC_CATCH
|
|
Catch block handles all errors identically - no error type discrimination.
|
|
|
|
📁 src/services/worker/SearchManager.ts:1214 - GENERIC_CATCH
|
|
Catch block handles all errors identically - no error type discrimination.
|
|
|
|
📁 src/services/worker/SearchManager.ts:1311 - GENERIC_CATCH
|
|
Catch block handles all errors identically - no error type discrimination.
|
|
|
|
📁 src/services/worker/SearchManager.ts:1403 - GENERIC_CATCH
|
|
Catch block handles all errors identically - no error type discrimination.
|
|
|
|
📁 src/services/worker/SearchManager.ts:1418 - GENERIC_CATCH
|
|
Catch block handles all errors identically - no error type discrimination.
|
|
|
|
📁 src/services/worker/SearchManager.ts:1700 - GENERIC_CATCH
|
|
Catch block handles all errors identically - no error type discrimination.
|
|
|
|
📁 src/services/worker/SearchManager.ts:1745 - GENERIC_CATCH
|
|
Catch block handles all errors identically - no error type discrimination.
|
|
|
|
📁 src/services/worker/PaginationHelper.ts:54 - GENERIC_CATCH
|
|
Catch block handles all errors identically - no error type discrimination.
|
|
|
|
📁 src/services/worker/http/BaseRouteHandler.ts:28 - GENERIC_CATCH
|
|
Catch block handles all errors identically - no error type discrimination.
|
|
|
|
📁 src/services/worker/http/routes/SettingsRoutes.ts:76 - GENERIC_CATCH
|
|
Catch block handles all errors identically - no error type discrimination.
|
|
|
|
📁 src/services/worker/http/routes/SessionRoutes.ts:165 - GENERIC_CATCH
|
|
Catch block handles all errors identically - no error type discrimination.
|
|
|
|
📁 src/services/worker/SessionManager.ts:208 - GENERIC_CATCH
|
|
Catch block handles all errors identically - no error type discrimination.
|
|
|
|
📁 src/services/worker/SessionManager.ts:256 - GENERIC_CATCH
|
|
Catch block handles all errors identically - no error type discrimination.
|
|
|
|
📁 src/services/domain/ModeManager.ts:146 - GENERIC_CATCH
|
|
Catch block handles all errors identically - no error type discrimination.
|
|
|
|
📁 src/services/domain/ModeManager.ts:163 - GENERIC_CATCH
|
|
Catch block handles all errors identically - no error type discrimination.
|
|
|
|
📁 src/services/domain/ModeManager.ts:173 - GENERIC_CATCH
|
|
Catch block handles all errors identically - no error type discrimination.
|
|
|
|
📁 src/services/context-generator.ts:202 - GENERIC_CATCH
|
|
Catch block handles all errors identically - no error type discrimination.
|
|
|
|
📁 src/services/context-generator.ts:226 - GENERIC_CATCH
|
|
Catch block handles all errors identically - no error type discrimination.
|
|
|
|
═══════════════════════════════════════════════════════════════
|
|
REMINDER: Every try-catch must answer these questions:
|
|
1. What SPECIFIC error am I catching? (Name it)
|
|
2. Show me documentation proving this error can occur
|
|
3. Why can't this error be prevented?
|
|
4. What will the catch block DO? (Log + rethrow? Fallback?)
|
|
5. Why shouldn't this error propagate to the caller?
|
|
|
|
To approve an anti-pattern, add: // [APPROVED OVERRIDE]: reason
|
|
═══════════════════════════════════════════════════════════════
|
|
|
|
|
|
❌ FAILED: 26 critical error handling anti-patterns must be fixed.
|
|
|