claude-ws 0.4.2 → 0.4.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "claude-ws",
3
- "version": "0.4.2",
3
+ "version": "0.4.3",
4
4
  "private": false,
5
5
  "description": "AI-powered workspace for solo CEOs and indie builders — manage your entire business with AI agents, not just code. Kanban board, code editor, Git integration, claw agent hub, local-first SQLite.",
6
6
  "keywords": [
@@ -182,7 +182,12 @@ export class AgentProvider extends EventEmitter {
182
182
  delete process.env.CLAUDECODE;
183
183
  delete process.env.CLAUDE_CODE_ENTRYPOINT;
184
184
 
185
+ // Use full path to node binary — spawn("node", ...) fails under PM2/systemd with nvm
186
+ // because PATH may not include the nvm bin directory. process.execPath is always absolute.
187
+ const nodeExecutable = process.execPath as 'node';
188
+
185
189
  const queryOptions = {
190
+ executable: nodeExecutable,
186
191
  cwd: projectPath,
187
192
  model: effectiveModel,
188
193
  permissionMode: 'bypassPermissions' as const,
@@ -216,7 +221,10 @@ export class AgentProvider extends EventEmitter {
216
221
  },
217
222
  };
218
223
 
219
- log.info({ model: effectiveModel, cwd: projectPath, resume: sessionOptions?.resume }, 'SDK query starting');
224
+ log.info({
225
+ model: effectiveModel, cwd: projectPath, resume: sessionOptions?.resume,
226
+ nodeExec: nodeExecutable, pathExists: existsSync(projectPath),
227
+ }, 'SDK query starting');
220
228
 
221
229
  const response = query({
222
230
  prompt,