Files
claude-mem/error-handling-baseline.txt
T
Alex Newman ad8ac7970d fix: Chroma connection errors and remove dead last_user_message code (#525)
* 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>
2026-01-02 14:45:50 -05:00

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.