diff --git a/plugins/orchestrator/dist/server.js b/plugins/orchestrator/dist/server.js index 6b6141f..a238a58 100644 --- a/plugins/orchestrator/dist/server.js +++ b/plugins/orchestrator/dist/server.js @@ -24819,7 +24819,7 @@ server.tool("system_status", "Check the health of the orchestrator system: embed const lines = []; lines.push("## System Status"); lines.push(""); - lines.push(`- **Version**: orchestrator MCP server **0.30.28** (pid ${process.pid})`); + lines.push(`- **Version**: orchestrator MCP server **${PLUGIN_VERSION}** (pid ${process.pid})`); if (agentChannel) { lines.push(`- **Agent-channel**: ACTIVE - filewatcher running`); } else { @@ -26044,7 +26044,7 @@ function startAgentChannel() { `); return; } - const projectHash = projectDir.replace(/[\\/:]/g, "-").replace(/^-+/, ""); + const projectHash = projectDir.replace(/[\\/:]/g, "-"); const projectsHashDir = join5(homedir2(), ".claude", "projects", projectHash); const roleEnv = process.env.ORCHESTRATOR_AGENT_ROLE ?? process.env.SPAWNBOX_AGENT_ROLE; const role = roleEnv === "prime" ? "prime" : "subordinate"; diff --git a/plugins/orchestrator/mcp/server.ts b/plugins/orchestrator/mcp/server.ts index 85eed16..da238de 100644 --- a/plugins/orchestrator/mcp/server.ts +++ b/plugins/orchestrator/mcp/server.ts @@ -652,7 +652,7 @@ server.tool( const lines: string[] = []; lines.push("## System Status"); lines.push(""); - lines.push(`- **Version**: orchestrator MCP server **0.30.28** (pid ${process.pid})`); + lines.push(`- **Version**: orchestrator MCP server **${PLUGIN_VERSION}** (pid ${process.pid})`); if (agentChannel) { lines.push(`- **Agent-channel**: ACTIVE - filewatcher running`); } else { @@ -2180,8 +2180,11 @@ function startAgentChannel(): void { // Project hash dir under ~/.claude/projects/. Hash mirrors how Claude Code // names the per-project directory: replace path separators + drive colons - // with hyphens, leading hyphens trimmed. - const projectHash = projectDir.replace(/[\\/:]/g, "-").replace(/^-+/, ""); + // with hyphens. Leading hyphens are preserved — CC retains the leading + // dash that comes from a leading slash on POSIX absolute paths (e.g. + // /home/foo -> -home-foo). Stripping them caused a silent path mismatch + // and broke the JSONL filewatcher entirely (see anti_pattern 6dfc7ae1). + const projectHash = projectDir.replace(/[\\/:]/g, "-"); const projectsHashDir = join(homedir(), ".claude", "projects", projectHash); // Role/name env vars: ORCHESTRATOR_AGENT_* is the canonical form (set by