diff --git a/.cursor/skills/strategic-compact/suggest-compact.sh b/.cursor/skills/strategic-compact/suggest-compact.sh index ea14920..38f5aa9 100755 --- a/.cursor/skills/strategic-compact/suggest-compact.sh +++ b/.cursor/skills/strategic-compact/suggest-compact.sh @@ -28,7 +28,9 @@ # - Plan has been finalized # Track tool call count (increment in a temp file) -COUNTER_FILE="/tmp/claude-tool-count-$$" +# Use CLAUDE_SESSION_ID for session-specific counter (not $$ which changes per invocation) +SESSION_ID="${CLAUDE_SESSION_ID:-${PPID:-default}}" +COUNTER_FILE="/tmp/claude-tool-count-${SESSION_ID}" THRESHOLD=${COMPACT_THRESHOLD:-50} # Initialize or increment counter diff --git a/scripts/lib/session-aliases.js b/scripts/lib/session-aliases.js index f6172e2..af721bb 100644 --- a/scripts/lib/session-aliases.js +++ b/scripts/lib/session-aliases.js @@ -154,6 +154,8 @@ function saveAliases(aliases) { * @returns {object|null} Alias data or null if not found */ function resolveAlias(alias) { + if (!alias) return null; + // Validate alias name (alphanumeric, dash, underscore) if (!/^[a-zA-Z0-9_-]+$/.test(alias)) { return null; @@ -399,6 +401,10 @@ function getAliasesForSession(sessionPath) { * @returns {object} Cleanup result */ function cleanupAliases(sessionExists) { + if (typeof sessionExists !== 'function') { + return { totalChecked: 0, removed: 0, removedAliases: [], error: 'sessionExists must be a function' }; + } + const data = loadAliases(); const removed = []; @@ -409,8 +415,8 @@ function cleanupAliases(sessionExists) { } } - if (removed.length > 0) { - saveAliases(data); + if (removed.length > 0 && !saveAliases(data)) { + log('[Aliases] Failed to save after cleanup'); } return { diff --git a/scripts/lib/utils.js b/scripts/lib/utils.js index 3cc9dc4..39954f6 100644 --- a/scripts/lib/utils.js +++ b/scripts/lib/utils.js @@ -34,13 +34,6 @@ function getSessionsDir() { return path.join(getClaudeDir(), 'sessions'); } -/** - * Get the session aliases file path - */ -function getAliasesPath() { - return path.join(getClaudeDir(), 'session-aliases.json'); -} - /** * Get the learned skills directory */ @@ -447,7 +440,6 @@ module.exports = { getHomeDir, getClaudeDir, getSessionsDir, - getAliasesPath, getLearnedSkillsDir, getTempDir, ensureDir,