From 5febfc84f5769f67b960071ddadc5a0564a7f01e Mon Sep 17 00:00:00 2001 From: Affaan Mustafa Date: Wed, 11 Feb 2026 23:54:38 -0800 Subject: [PATCH] fix(sessions): resolve require() paths for plugin installations (#200) Replace relative require('./scripts/lib/...') with dynamic path resolution using CLAUDE_PLUGIN_ROOT env var (set by Claude Code for plugins) with fallback to ~/.claude/ for manual installations. This fixes /sessions command failing when ECC is installed as a plugin. --- commands/sessions.md | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/commands/sessions.md b/commands/sessions.md index 9ff470a..d54f02e 100644 --- a/commands/sessions.md +++ b/commands/sessions.md @@ -23,8 +23,8 @@ Display all sessions with metadata, filtering, and pagination. **Script:** ```bash node -e " -const sm = require('./scripts/lib/session-manager'); -const aa = require('./scripts/lib/session-aliases'); +const sm = require((process.env.CLAUDE_PLUGIN_ROOT||require('path').join(require('os').homedir(),'.claude'))+'/scripts/lib/session-manager'); +const aa = require((process.env.CLAUDE_PLUGIN_ROOT||require('path').join(require('os').homedir(),'.claude'))+'/scripts/lib/session-aliases'); const result = sm.getAllSessions({ limit: 20 }); const aliases = aa.listAliases(); @@ -62,8 +62,8 @@ Load and display a session's content (by ID or alias). **Script:** ```bash node -e " -const sm = require('./scripts/lib/session-manager'); -const aa = require('./scripts/lib/session-aliases'); +const sm = require((process.env.CLAUDE_PLUGIN_ROOT||require('path').join(require('os').homedir(),'.claude'))+'/scripts/lib/session-manager'); +const aa = require((process.env.CLAUDE_PLUGIN_ROOT||require('path').join(require('os').homedir(),'.claude'))+'/scripts/lib/session-aliases'); const id = process.argv[1]; // First try to resolve as alias @@ -123,8 +123,8 @@ Create a memorable alias for a session. **Script:** ```bash node -e " -const sm = require('./scripts/lib/session-manager'); -const aa = require('./scripts/lib/session-aliases'); +const sm = require((process.env.CLAUDE_PLUGIN_ROOT||require('path').join(require('os').homedir(),'.claude'))+'/scripts/lib/session-manager'); +const aa = require((process.env.CLAUDE_PLUGIN_ROOT||require('path').join(require('os').homedir(),'.claude'))+'/scripts/lib/session-aliases'); const sessionId = process.argv[1]; const aliasName = process.argv[2]; @@ -163,7 +163,7 @@ Delete an existing alias. **Script:** ```bash node -e " -const aa = require('./scripts/lib/session-aliases'); +const aa = require((process.env.CLAUDE_PLUGIN_ROOT||require('path').join(require('os').homedir(),'.claude'))+'/scripts/lib/session-aliases'); const aliasName = process.argv[1]; if (!aliasName) { @@ -192,8 +192,8 @@ Show detailed information about a session. **Script:** ```bash node -e " -const sm = require('./scripts/lib/session-manager'); -const aa = require('./scripts/lib/session-aliases'); +const sm = require((process.env.CLAUDE_PLUGIN_ROOT||require('path').join(require('os').homedir(),'.claude'))+'/scripts/lib/session-manager'); +const aa = require((process.env.CLAUDE_PLUGIN_ROOT||require('path').join(require('os').homedir(),'.claude'))+'/scripts/lib/session-aliases'); const id = process.argv[1]; const resolved = aa.resolveAlias(id); @@ -239,7 +239,7 @@ Show all session aliases. **Script:** ```bash node -e " -const aa = require('./scripts/lib/session-aliases'); +const aa = require((process.env.CLAUDE_PLUGIN_ROOT||require('path').join(require('os').homedir(),'.claude'))+'/scripts/lib/session-aliases'); const aliases = aa.listAliases(); console.log('Session Aliases (' + aliases.length + '):');