fix: respect CLAUDE_MEM_FOLDER_CLAUDEMD_ENABLED setting

The CLAUDE_MEM_FOLDER_CLAUDEMD_ENABLED setting was documented but never
actually checked in code. The folder CLAUDE.md generation ran
unconditionally whenever files were touched.

Changes:
- Add CLAUDE_MEM_FOLDER_CLAUDEMD_ENABLED to SettingsDefaults interface
- Add default value 'false' to DEFAULTS object
- Check setting in ResponseProcessor before calling updateFolderClaudeMdFiles

Fixes the issue identified in issue-600-documentation-audit-features-not-implemented.md:
"The setting CLAUDE_MEM_FOLDER_CLAUDEMD_ENABLED is never read."
This commit is contained in:
Michel Tomas
2026-02-04 02:09:54 +01:00
committed by Alex Newman
parent ab3d4ca865
commit 9907df1db8
2 changed files with 24 additions and 14 deletions
@@ -16,6 +16,8 @@ import { parseObservations, parseSummary, type ParsedObservation, type ParsedSum
import { updateCursorContextForProject } from '../../integrations/CursorHooksInstaller.js'; import { updateCursorContextForProject } from '../../integrations/CursorHooksInstaller.js';
import { updateFolderClaudeMdFiles } from '../../../utils/claude-md-utils.js'; import { updateFolderClaudeMdFiles } from '../../../utils/claude-md-utils.js';
import { getWorkerPort } from '../../../shared/worker-utils.js'; import { getWorkerPort } from '../../../shared/worker-utils.js';
import { SettingsDefaultsManager } from '../../../shared/SettingsDefaultsManager.js';
import { USER_SETTINGS_PATH } from '../../../shared/paths.js';
import type { ActiveSession } from '../../worker-types.js'; import type { ActiveSession } from '../../worker-types.js';
import type { DatabaseManager } from '../DatabaseManager.js'; import type { DatabaseManager } from '../DatabaseManager.js';
import type { SessionManager } from '../SessionManager.js'; import type { SessionManager } from '../SessionManager.js';
@@ -215,6 +217,11 @@ async function syncAndBroadcastObservations(
// Update folder CLAUDE.md files for touched folders (fire-and-forget) // Update folder CLAUDE.md files for touched folders (fire-and-forget)
// This runs per-observation batch to ensure folders are updated as work happens // This runs per-observation batch to ensure folders are updated as work happens
// Only runs if CLAUDE_MEM_FOLDER_CLAUDEMD_ENABLED is true (default: false)
const settings = SettingsDefaultsManager.loadFromFile(USER_SETTINGS_PATH);
const folderClaudeMdEnabled = settings.CLAUDE_MEM_FOLDER_CLAUDEMD_ENABLED === 'true';
if (folderClaudeMdEnabled) {
const allFilePaths: string[] = []; const allFilePaths: string[] = [];
for (const obs of observations) { for (const obs of observations) {
allFilePaths.push(...(obs.files_modified || [])); allFilePaths.push(...(obs.files_modified || []));
@@ -232,6 +239,7 @@ async function syncAndBroadcastObservations(
}); });
} }
} }
}
/** /**
* Sync summary to Chroma and broadcast to SSE clients * Sync summary to Chroma and broadcast to SSE clients
+2
View File
@@ -51,6 +51,7 @@ export interface SettingsDefaults {
// Feature Toggles // Feature Toggles
CLAUDE_MEM_CONTEXT_SHOW_LAST_SUMMARY: string; CLAUDE_MEM_CONTEXT_SHOW_LAST_SUMMARY: string;
CLAUDE_MEM_CONTEXT_SHOW_LAST_MESSAGE: string; CLAUDE_MEM_CONTEXT_SHOW_LAST_MESSAGE: string;
CLAUDE_MEM_FOLDER_CLAUDEMD_ENABLED: string;
} }
export class SettingsDefaultsManager { export class SettingsDefaultsManager {
@@ -96,6 +97,7 @@ export class SettingsDefaultsManager {
// Feature Toggles // Feature Toggles
CLAUDE_MEM_CONTEXT_SHOW_LAST_SUMMARY: 'true', CLAUDE_MEM_CONTEXT_SHOW_LAST_SUMMARY: 'true',
CLAUDE_MEM_CONTEXT_SHOW_LAST_MESSAGE: 'false', CLAUDE_MEM_CONTEXT_SHOW_LAST_MESSAGE: 'false',
CLAUDE_MEM_FOLDER_CLAUDEMD_ENABLED: 'false',
}; };
/** /**