groove-dev 0.27.191 → 0.27.192
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/node_modules/@groove-dev/cli/package.json +1 -1
- package/node_modules/@groove-dev/daemon/package.json +1 -1
- package/node_modules/@groove-dev/daemon/src/process.js +9 -2
- package/node_modules/@groove-dev/daemon/src/providers/claude-code.js +9 -6
- package/node_modules/@groove-dev/gui/package.json +1 -1
- package/package.json +1 -1
- package/packages/cli/package.json +1 -1
- package/packages/daemon/package.json +1 -1
- package/packages/daemon/src/process.js +9 -2
- package/packages/daemon/src/providers/claude-code.js +9 -6
- package/packages/gui/package.json +1 -1
|
@@ -2687,7 +2687,7 @@ After fixing all issues, run tests (npm test) and build (npm run build) to verif
|
|
|
2687
2687
|
locks.release(agentId);
|
|
2688
2688
|
|
|
2689
2689
|
// Build resume command
|
|
2690
|
-
const { command: rawCommand, args, env } = provider.buildResumeCommand(sessionId, message, config.model, { fast: config.fast });
|
|
2690
|
+
const { command: rawCommand, args, env, stdin: stdinData } = provider.buildResumeCommand(sessionId, message, config.model, { fast: config.fast });
|
|
2691
2691
|
const command = resolveProviderCommand(config.provider || 'claude-code') || rawCommand;
|
|
2692
2692
|
|
|
2693
2693
|
// Set up log capture
|
|
@@ -2752,10 +2752,17 @@ After fixing all issues, run tests (npm test) and build (npm run build) to verif
|
|
|
2752
2752
|
const proc = cpSpawn(command, args, {
|
|
2753
2753
|
cwd: resumeCwd,
|
|
2754
2754
|
env: resumeEnv,
|
|
2755
|
-
stdio: ['ignore', 'pipe', 'pipe'],
|
|
2755
|
+
stdio: [stdinData ? 'pipe' : 'ignore', 'pipe', 'pipe'],
|
|
2756
2756
|
detached: false,
|
|
2757
2757
|
});
|
|
2758
2758
|
|
|
2759
|
+
// The resume message goes via stdin (not argv) to avoid ARG_MAX/E2BIG on
|
|
2760
|
+
// large messages — mirror the spawn path.
|
|
2761
|
+
if (stdinData && proc.stdin) {
|
|
2762
|
+
proc.stdin.write(stdinData);
|
|
2763
|
+
proc.stdin.end();
|
|
2764
|
+
}
|
|
2765
|
+
|
|
2759
2766
|
proc.on('error', (err) => {
|
|
2760
2767
|
if (!logStream.destroyed) logStream.write(`[${new Date().toISOString()}] Resume spawn error: ${err.message}\n`);
|
|
2761
2768
|
if (!logStream.destroyed) logStream.end();
|
|
@@ -111,16 +111,19 @@ export class ClaudeCodeProvider extends Provider {
|
|
|
111
111
|
args.push('--fast');
|
|
112
112
|
}
|
|
113
113
|
|
|
114
|
-
// Pass the initial prompt as positional
|
|
114
|
+
// Pass the initial prompt via STDIN, not as a positional argument. A
|
|
115
|
+
// long-running agent's handoff brief accumulates over days and easily
|
|
116
|
+
// exceeds the OS argv limit — on Linux a single arg is capped at 128KB
|
|
117
|
+
// (MAX_ARG_STRLEN) regardless of ARG_MAX — which surfaced as `spawn E2BIG`
|
|
118
|
+
// on rotation. stdin has no such limit. (interactive stream-json mode reads
|
|
119
|
+
// its prompt from stdin, same as headless -p.)
|
|
115
120
|
const fullPrompt = this.buildFullPrompt(agent);
|
|
116
|
-
if (fullPrompt) {
|
|
117
|
-
args.push(fullPrompt);
|
|
118
|
-
}
|
|
119
121
|
|
|
120
122
|
return {
|
|
121
123
|
command: 'claude',
|
|
122
124
|
args,
|
|
123
125
|
env: {},
|
|
126
|
+
stdin: fullPrompt || undefined,
|
|
124
127
|
};
|
|
125
128
|
}
|
|
126
129
|
|
|
@@ -132,8 +135,8 @@ export class ClaudeCodeProvider extends Provider {
|
|
|
132
135
|
if (knockSettings) args.push('--settings', knockSettings);
|
|
133
136
|
if (model) args.push('--model', model);
|
|
134
137
|
if (options.fast) args.push('--fast');
|
|
135
|
-
|
|
136
|
-
return { command: 'claude', args, env: {} };
|
|
138
|
+
// Via stdin, not argv — the resume message can be large (see buildSpawnCommand).
|
|
139
|
+
return { command: 'claude', args, env: {}, stdin: prompt || undefined };
|
|
137
140
|
}
|
|
138
141
|
|
|
139
142
|
/**
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "groove-dev",
|
|
3
|
-
"version": "0.27.
|
|
3
|
+
"version": "0.27.192",
|
|
4
4
|
"description": "Open-source agent orchestration layer — the AI company OS. Local model agent engine (GGUF/Ollama/llama-server), HuggingFace model browser, MCP integrations (Slack, Gmail, Stripe, 15+), agent scheduling (cron), business roles (CMO, CFO, EA). GUI dashboard, multi-agent coordination, zero cold-start, infinite sessions. Works with Claude Code, Codex, Gemini CLI, Ollama, any local model.",
|
|
5
5
|
"license": "FSL-1.1-Apache-2.0",
|
|
6
6
|
"author": "Groove Dev <hello@groovedev.ai> (https://groovedev.ai)",
|
|
@@ -2687,7 +2687,7 @@ After fixing all issues, run tests (npm test) and build (npm run build) to verif
|
|
|
2687
2687
|
locks.release(agentId);
|
|
2688
2688
|
|
|
2689
2689
|
// Build resume command
|
|
2690
|
-
const { command: rawCommand, args, env } = provider.buildResumeCommand(sessionId, message, config.model, { fast: config.fast });
|
|
2690
|
+
const { command: rawCommand, args, env, stdin: stdinData } = provider.buildResumeCommand(sessionId, message, config.model, { fast: config.fast });
|
|
2691
2691
|
const command = resolveProviderCommand(config.provider || 'claude-code') || rawCommand;
|
|
2692
2692
|
|
|
2693
2693
|
// Set up log capture
|
|
@@ -2752,10 +2752,17 @@ After fixing all issues, run tests (npm test) and build (npm run build) to verif
|
|
|
2752
2752
|
const proc = cpSpawn(command, args, {
|
|
2753
2753
|
cwd: resumeCwd,
|
|
2754
2754
|
env: resumeEnv,
|
|
2755
|
-
stdio: ['ignore', 'pipe', 'pipe'],
|
|
2755
|
+
stdio: [stdinData ? 'pipe' : 'ignore', 'pipe', 'pipe'],
|
|
2756
2756
|
detached: false,
|
|
2757
2757
|
});
|
|
2758
2758
|
|
|
2759
|
+
// The resume message goes via stdin (not argv) to avoid ARG_MAX/E2BIG on
|
|
2760
|
+
// large messages — mirror the spawn path.
|
|
2761
|
+
if (stdinData && proc.stdin) {
|
|
2762
|
+
proc.stdin.write(stdinData);
|
|
2763
|
+
proc.stdin.end();
|
|
2764
|
+
}
|
|
2765
|
+
|
|
2759
2766
|
proc.on('error', (err) => {
|
|
2760
2767
|
if (!logStream.destroyed) logStream.write(`[${new Date().toISOString()}] Resume spawn error: ${err.message}\n`);
|
|
2761
2768
|
if (!logStream.destroyed) logStream.end();
|
|
@@ -111,16 +111,19 @@ export class ClaudeCodeProvider extends Provider {
|
|
|
111
111
|
args.push('--fast');
|
|
112
112
|
}
|
|
113
113
|
|
|
114
|
-
// Pass the initial prompt as positional
|
|
114
|
+
// Pass the initial prompt via STDIN, not as a positional argument. A
|
|
115
|
+
// long-running agent's handoff brief accumulates over days and easily
|
|
116
|
+
// exceeds the OS argv limit — on Linux a single arg is capped at 128KB
|
|
117
|
+
// (MAX_ARG_STRLEN) regardless of ARG_MAX — which surfaced as `spawn E2BIG`
|
|
118
|
+
// on rotation. stdin has no such limit. (interactive stream-json mode reads
|
|
119
|
+
// its prompt from stdin, same as headless -p.)
|
|
115
120
|
const fullPrompt = this.buildFullPrompt(agent);
|
|
116
|
-
if (fullPrompt) {
|
|
117
|
-
args.push(fullPrompt);
|
|
118
|
-
}
|
|
119
121
|
|
|
120
122
|
return {
|
|
121
123
|
command: 'claude',
|
|
122
124
|
args,
|
|
123
125
|
env: {},
|
|
126
|
+
stdin: fullPrompt || undefined,
|
|
124
127
|
};
|
|
125
128
|
}
|
|
126
129
|
|
|
@@ -132,8 +135,8 @@ export class ClaudeCodeProvider extends Provider {
|
|
|
132
135
|
if (knockSettings) args.push('--settings', knockSettings);
|
|
133
136
|
if (model) args.push('--model', model);
|
|
134
137
|
if (options.fast) args.push('--fast');
|
|
135
|
-
|
|
136
|
-
return { command: 'claude', args, env: {} };
|
|
138
|
+
// Via stdin, not argv — the resume message can be large (see buildSpawnCommand).
|
|
139
|
+
return { command: 'claude', args, env: {}, stdin: prompt || undefined };
|
|
137
140
|
}
|
|
138
141
|
|
|
139
142
|
/**
|