Cleanup worker-service.ts: remove dead code and fallback concept (#706)

* refactor(worker): remove dead code from worker-service.ts

Remove ~216 lines of unreachable code:
- Delete `runInteractiveSetup` function (defined but never called)
- Remove unused imports: fs namespace, spawn, homedir, readline,
  existsSync/writeFileSync/readFileSync/mkdirSync
- Clean up CursorHooksInstaller imports (keep only used exports)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* fix(worker): only enable SDK fallback when Claude is configured

Add isConfigured() method to SDKAgent that checks for ANTHROPIC_API_KEY
or claude CLI availability. Worker now only sets SDK agent as fallback
for third-party providers when credentials exist, preventing cascading
failures for users who intentionally use Gemini/OpenRouter without Claude.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* refactor(worker): remove misleading re-export indirection

Remove unnecessary re-export of updateCursorContextForProject from
worker-service.ts. ResponseProcessor now imports directly from
CursorHooksInstaller.ts where the function is defined. This eliminates
misleading indirection that suggested a circular dependency existed.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* refactor(mcp): use build-time injected version instead of hardcoded strings

Replace hardcoded '1.0.0' version strings with __DEFAULT_PACKAGE_VERSION__
constant that esbuild replaces at build time. This ensures MCP server and
client versions stay synchronized with package.json.

- worker-service.ts: MCP client version now uses packageVersion
- ChromaSync.ts: MCP client version now uses packageVersion
- mcp-server.ts: MCP server version now uses packageVersion
- Added clarifying comments for empty MCP capabilities objects

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* feat: Implement cleanup and validation plans for worker-service.ts

- Added a comprehensive cleanup plan addressing 23 identified issues in worker-service.ts, focusing on safe deletions, low-risk simplifications, and medium-risk improvements.
- Created an execution plan for validating intentional patterns in worker-service.ts, detailing necessary actions and priorities.
- Generated a report on unjustified logic in worker-service.ts, categorizing issues by severity and providing recommendations for immediate and short-term actions.
- Introduced documentation for recent activity in the mem-search plugin, enhancing traceability and context for changes.

* fix(sdk): remove dangerous ANTHROPIC_API_KEY check from isConfigured

Claude Code uses CLI authentication, not direct API calls. Checking for
ANTHROPIC_API_KEY could accidentally use a user's API key (from other
projects) which costs 20x more than Claude Code's pricing.

Now only checks for claude CLI availability.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* fix(worker): remove fallback agent concept entirely

Users who choose Gemini/OpenRouter want those providers, not secret
fallback behavior. Removed setFallbackAgent calls and the unused
isConfigured() method.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
Alex Newman
2026-01-13 23:30:13 -05:00
committed by GitHub
parent c314946204
commit 05323c9db5
18 changed files with 1836 additions and 882 deletions
@@ -13,7 +13,7 @@
import { logger } from '../../../utils/logger.js';
import { parseObservations, parseSummary, type ParsedObservation, type ParsedSummary } from '../../../sdk/parser.js';
import { updateCursorContextForProject } from '../../worker-service.js';
import { updateCursorContextForProject } from '../../integrations/CursorHooksInstaller.js';
import { updateFolderClaudeMdFiles } from '../../../utils/claude-md-utils.js';
import { getWorkerPort } from '../../../shared/worker-utils.js';
import type { ActiveSession } from '../../worker-types.js';
+1 -81
View File
@@ -3,85 +3,5 @@
<!-- This section is auto-generated by claude-mem. Edit content outside the tags. -->
### Dec 7, 2025
**SessionEventBroadcaster.ts**
| ID | Time | T | Title | Read |
|----|------|---|-------|------|
| #21829 | 11:05 PM | 🔄 | Massive refactor adds 8,671 lines and removes 5,585 lines across 60 files | ~619 |
| #21824 | 10:59 PM | 🔵 | SessionEventBroadcaster methods called 7 times across SessionRoutes and SessionCompletionHandler | ~398 |
| #21822 | " | 🔵 | SessionEventBroadcaster instantiated in WorkerService and injected into routes and handlers | ~372 |
| #21816 | 10:58 PM | 🔵 | SessionEventBroadcaster provides semantic SSE event broadcasting | ~398 |
| #21807 | 10:49 PM | ⚖️ | KISS Audit Identified 587 Lines of Ceremonial Complexity | ~699 |
| #21796 | 10:46 PM | 🔵 | SessionEventBroadcaster Duplicates Processing Status Updates | ~388 |
| #21743 | 10:16 PM | 🟣 | Created SessionEventBroadcaster for Semantic Session Event Broadcasting | ~514 |
### Dec 8, 2025
**SessionEventBroadcaster.ts**
| ID | Time | T | Title | Read |
|----|------|---|-------|------|
| #22107 | 6:47 PM | 🔵 | SessionEventBroadcaster Has observation_queued But No observation_completed Event | ~429 |
| #22049 | 6:04 PM | 🔵 | broadcastProcessingStatus method synchronizes queue state across six system components | ~477 |
| #22043 | 6:02 PM | 🔵 | SessionEventBroadcaster provides semantic event broadcasting with SSE and processing status updates | ~449 |
| #22036 | 6:00 PM | 🔵 | Found processing_status tracking across UI, hooks, and event systems | ~312 |
### Dec 11, 2025
**SessionEventBroadcaster.ts**
| ID | Time | T | Title | Read |
|----|------|---|-------|------|
| #23962 | 1:59 PM | 🔵 | Services Layer Implements Full Backend Architecture | ~490 |
### Dec 20, 2025
**session-events.ts**
| ID | Time | T | Title | Read |
|----|------|---|-------|------|
| #30609 | 5:01 PM | 🔄 | Phase 4: Eliminated Over-Engineering in Hook/Worker System | ~504 |
| #30567 | 4:56 PM | 🟣 | Session Event Broadcasting Utilities | ~313 |
**SessionEventBroadcaster.ts**
| ID | Time | T | Title | Read |
|----|------|---|-------|------|
| #30593 | 4:59 PM | 🔄 | Deleted SessionEventBroadcaster Class File | ~298 |
| #30548 | 4:53 PM | 🔵 | SessionEventBroadcaster SSE Notification Layer | ~338 |
### Dec 25, 2025
**SessionEventBroadcaster.ts**
| ID | Time | T | Title | Read |
|----|------|---|-------|------|
| #32597 | 8:40 PM | 🔵 | Identified session completion mechanism and potential method discrepancy | ~470 |
| #32580 | 8:22 PM | 🔵 | Grep for resetStuckMessages and processing | ~242 |
### Dec 28, 2025
**SessionEventBroadcaster.ts**
| ID | Time | T | Title | Read |
|----|------|---|-------|------|
| #33439 | 10:15 PM | 🔄 | Extended Session ID Renaming to Additional Codebase Components | ~352 |
| #33328 | 3:10 PM | 🟣 | Merged centralized logger and session continuity diagnostics to main | ~397 |
| #33280 | 3:07 PM | 🔄 | Logger coverage refactor for background services | ~428 |
### Dec 30, 2025
**SessionEventBroadcaster.ts**
| ID | Time | T | Title | Read |
|----|------|---|-------|------|
| #34550 | 4:53 PM | 🔵 | Phase 2 Review Reveals Critical Incomplete Error Handling | ~577 |
### Dec 31, 2025
**SessionEventBroadcaster.ts**
| ID | Time | T | Title | Read |
|----|------|---|-------|------|
| #34558 | 2:32 PM | 🔵 | Code Quality Fix Plan Created for Seven Identified Issues | ~629 |
### Jan 2, 2026
**SessionEventBroadcaster.ts**
| ID | Time | T | Title | Read |
|----|------|---|-------|------|
| #35951 | 4:42 PM | 🔵 | Multi-Layer Service Architecture Discovery | ~395 |
*No recent activity*
</claude-mem-context>
+80 -42
View File
@@ -3,57 +3,95 @@
<!-- This section is auto-generated by claude-mem. Edit content outside the tags. -->
### Jan 4, 2026
### Dec 5, 2025
| ID | Time | T | Title | Read |
|----|------|---|-------|------|
| #37327 | 11:44 PM | | Cleaned Up Auto-Generated CLAUDE.md Files | ~352 |
| #37326 | " | | Staged All Changes for Commit | ~386 |
| #37325 | " | | Staged PR #554 Implementation Files | ~373 |
| #37324 | " | ✅ | Cleaned Up Auto-Generated CLAUDE.md Files | ~392 |
| #37323 | " | ✅ | Cleanup Completed - 31 Auto-Generated CLAUDE.md Files Deleted | ~411 |
| #37286 | 11:07 PM | ✅ | Phase 1 Settings Patch Applied Successfully | ~249 |
| #37282 | 11:06 PM | ✅ | Phase 1 Settings Patch Created | ~284 |
| #37280 | " | 🔵 | Feature Branch Missing FOLDER_CLAUDEMD_ENABLED Setting | ~251 |
| #37272 | 11:02 PM | ✅ | Phase 1 Verification Complete - All Checks Pass | ~275 |
| #37270 | " | 🔵 | Settings Routes Already Include FOLDER_CLAUDEMD_ENABLED | ~333 |
| #37267 | 11:00 PM | ✅ | Added CLAUDE_MEM_FOLDER_CLAUDEMD_ENABLED to Settings Validation | ~284 |
| #37266 | 10:59 PM | 🟣 | Added FOLDER_CLAUDEMD_ENABLED to Settings Routes Handler | ~329 |
| #37259 | 10:32 PM | ⚖️ | Implementation Plan Created for PR #554 Enhancements | ~621 |
| #37258 | 10:31 PM | ⚖️ | Comprehensive Implementation Plan Created for PR #554 Review Fixes | ~722 |
| #37257 | 10:29 PM | 🔵 | Regenerate Script and Settings Infrastructure Analyzed | ~563 |
| #37255 | " | 🔵 | Folder CLAUDE.md Integration Flow Mapped | ~550 |
| #20734 | 9:08 PM | 🔵 | SearchRoutes Context Injection Endpoint with Dynamic Import | ~614 |
| #20548 | 8:21 PM | 🔵 | Context generator imported from services directory in worker | ~334 |
| #20547 | " | 🔵 | Context injection route implementation in SearchRoutes.ts | ~289 |
### Jan 5, 2026
### Dec 7, 2025
| ID | Time | T | Title | Read |
|----|------|---|-------|------|
| #37947 | 8:10 PM | 🔵 | Context injection generates formatted context via generateContext function | ~332 |
| #37838 | 6:55 PM | 🔵 | Complete Hook Architecture Technical Specification | ~704 |
| #37836 | 6:54 PM | 🔵 | Worker Service HTTP API Architecture and Hook Integration Pattern | ~639 |
| #37702 | 6:01 PM | 🔵 | Codebase uses path.join() exclusively with known anchors, no project root resolution pattern exists | ~489 |
| #37701 | " | 🔵 | Complete cwd data flow traced from hooks through observation processing | ~447 |
| #37694 | 5:55 PM | 🔵 | Sessions initialized via SessionManager.initializeSession() with cwd from request body | ~361 |
| #37440 | 1:13 AM | 🔵 | Comprehensive Analysis of Settings and Hard-Coded Limit | ~389 |
| #37435 | " | 🔵 | Settings Validation Limits CLAUDE_MEM_CONTEXT_OBSERVATIONS to 1-200 | ~307 |
| #37421 | 1:06 AM | 🔵 | Identified by-file API endpoint usage across codebase | ~406 |
| #37408 | 12:58 AM | 🔵 | SearchRoutes API Architecture with Worktree Support | ~543 |
| #37391 | 12:48 AM | ✅ | Staged 23 CLAUDE.md files with mix of new and modified content | ~400 |
| #37390 | 12:47 AM | ✅ | Regenerated 23 CLAUDE.md files in budapest workspace | ~365 |
| #21742 | 10:16 PM | 🔵 | SessionRoutes Analysis: Identified 10+ Scattered Broadcast Calls | ~540 |
### Jan 7, 2026
### Dec 8, 2025
| ID | Time | T | Title | Read |
|----|------|---|-------|------|
| #38467 | 10:29 PM | ⚖️ | Log Level Audit Strategy: Tighten ERROR Messages for Runtime Issue Discovery | ~464 |
| #38456 | 10:26 PM | 🔵 | happyPathError Inline Fallback: Missing CWD When Queueing Observations | ~463 |
| #38453 | " | 🔵 | Generator Exit Patterns: Distinguishing Aborts from Unexpected Failures | ~454 |
| #38437 | 10:24 PM | 🔵 | Claude-mem core functionality and logging patterns identified | ~710 |
| #38431 | " | 🔵 | ERROR-Level Logging Used Across 21 Source Files | ~480 |
| #38405 | 10:07 PM | ⚖️ | DEBUG Log Level Analysis - One Message Requires WARN Promotion | ~819 |
| #38404 | 10:06 PM | ⚖️ | Log Level Audit Analysis - WARN to ERROR Promotion Criteria Established | ~769 |
| #38372 | 9:43 PM | 🔵 | Logging Anti-Pattern Found: Critical Errors Logged as DEBUG Instead of ERROR | ~464 |
| #38356 | 9:16 PM | 🔴 | Fixed AbortController Leak During Crash Recovery | ~384 |
| #38354 | 9:10 PM | 🔵 | Provider Selection Architecture and Default Settings Location | ~478 |
| #38351 | 9:09 PM | 🔵 | AbortController Replacement Without Abort Confirmed at Line 191 | ~434 |
| #22301 | 9:44 PM | 🔵 | Privacy Validation in Observation Processing | ~399 |
| #22296 | 9:43 PM | 🔵 | SessionRoutes HTTP Endpoints and SDK Agent Lifecycle | ~442 |
| #22222 | 8:29 PM | 🔵 | Found waiting logic in SessionRoutes but it may not be working correctly | ~359 |
| #22005 | 5:40 PM | 🔵 | handleObservationsByClaudeId Current Implementation | ~443 |
| #22004 | " | 🔵 | Legacy Observation Handling Pattern Identified | ~337 |
| #22003 | " | 🔵 | SessionRoutes Architecture Confirmed | ~354 |
| #21969 | 5:22 PM | 🟣 | Worker Routes Pass tool_use_id to SessionManager Queue | ~290 |
| #21968 | " | | Worker Endpoint Extracts toolUseId from Observation Request | ~243 |
| #21962 | 5:21 PM | 🟣 | Implemented handleGetObservationsForToolUse Endpoint Handler | ~325 |
| #21961 | " | 🟣 | Added GET Endpoint for Fetching Observations by Tool Use ID | ~272 |
| #21951 | 5:18 PM | 🔵 | Worker SessionRoutes Architecture and Endpoints Reviewed | ~418 |
| #21948 | 5:09 PM | 🟣 | Implemented PreToolUse Endpoint Handler | ~334 |
| #21947 | 5:07 PM | 🟣 | Added PreToolUse Route Registration | ~287 |
### Dec 9, 2025
| ID | Time | T | Title | Read |
|----|------|---|-------|------|
| #23143 | 6:42 PM | ✅ | Updated Skip Tools Logic to Use USER_SETTINGS_PATH Constant | ~150 |
| #23142 | " | ✅ | Fixed Settings Path Import in SessionRoutes | ~148 |
| #23140 | 6:41 PM | 🟣 | Implemented Skip Tools Filtering in Observations Endpoint | ~386 |
| #23138 | " | ✅ | Added SettingsDefaultsManager and Paths Imports to SessionRoutes | ~222 |
| #23136 | " | 🔵 | SessionRoutes handleObservationsByClaudeId Handler Structure | ~329 |
| #23007 | 4:02 PM | 🔵 | Settings Write Implementation Using Nested Schema | ~398 |
| #22859 | 2:28 PM | 🔴 | Fixed Python Version Validation to Support 3.10+ | ~322 |
| #22854 | 2:27 PM | 🔵 | Located Python Version Validation Regex in SettingsRoutes | ~316 |
### Dec 10, 2025
| ID | Time | T | Title | Read |
|----|------|---|-------|------|
| #23593 | 5:52 PM | 🔵 | SearchRoutes Handler Pattern | ~268 |
| #23588 | 5:51 PM | 🔵 | Search Routes HTTP API Integration | ~281 |
### Dec 14, 2025
| ID | Time | T | Title | Read |
|----|------|---|-------|------|
| #26253 | 8:31 PM | 🔵 | SearchRoutes Confirms Context Endpoints Use generateContext, Search Uses SearchManager | ~397 |
| #25689 | 4:23 PM | 🔵 | SessionRoutes queueSummarize receives messages but doesn't persist them to database | ~496 |
### Dec 15, 2025
| ID | Time | T | Title | Read |
|----|------|---|-------|------|
| #27043 | 6:04 PM | 🔵 | Subagent confirms no version switcher UI exists, only orphaned backend infrastructure | ~539 |
| #27041 | 6:03 PM | 🔵 | Branch switching code isolated to two backend files, no frontend UI components | ~473 |
| #27037 | 6:02 PM | 🔵 | Branch switching functionality exists in SettingsRoutes with UI switcher removal intent | ~463 |
### Dec 16, 2025
| ID | Time | T | Title | Read |
|----|------|---|-------|------|
| #27414 | 3:25 PM | 🔵 | Batch Observations Endpoint Already Implemented | ~330 |
### Dec 19, 2025
| ID | Time | T | Title | Read |
|----|------|---|-------|------|
| #30077 | 8:05 PM | 🔵 | SessionRoutes HTTP API Manages SDK Agent Lifecycle and Message Queue | ~516 |
### Dec 26, 2025
| ID | Time | T | Title | Read |
|----|------|---|-------|------|
| #32949 | 10:55 PM | 🔵 | Complete settings persistence flow for Xiaomi MIMO v2 Flash model | ~320 |
| #32939 | 10:53 PM | 🔵 | Settings API routes handle model configuration persistence | ~288 |
### Dec 30, 2025
| ID | Time | T | Title | Read |
|----|------|---|-------|------|
| #34491 | 2:28 PM | 🔵 | SessionRoutes Implements Multi-Provider Agent Management | ~635 |
</claude-mem-context>