specrails-hub 1.25.2 → 1.25.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 +1 -1
- package/server/dist/queue-manager.js +19 -9
package/package.json
CHANGED
|
@@ -337,7 +337,10 @@ class QueueManager {
|
|
|
337
337
|
else {
|
|
338
338
|
(0, hooks_1.resetPhases)(this._broadcast);
|
|
339
339
|
}
|
|
340
|
-
|
|
340
|
+
const commandToRun = job.command.trim();
|
|
341
|
+
// Build supplementary context (output chaining + headless mode) that goes
|
|
342
|
+
// into --append-system-prompt, keeping the user prompt clean.
|
|
343
|
+
let systemAppend = '';
|
|
341
344
|
// Output chaining: inject previous step's output as context for dependent jobs
|
|
342
345
|
if (job.dependsOnJobId) {
|
|
343
346
|
const parentJob = this._jobs.get(job.dependsOnJobId);
|
|
@@ -346,20 +349,21 @@ class QueueManager {
|
|
|
346
349
|
const truncated = prevOutput.length > 10000
|
|
347
350
|
? prevOutput.slice(0, 10000) + '\n\n[output truncated]'
|
|
348
351
|
: prevOutput;
|
|
349
|
-
|
|
352
|
+
systemAppend += `Previous step output:\n\n${truncated}\n\n---\n\nNow execute the following command.\n\n`;
|
|
350
353
|
}
|
|
351
354
|
}
|
|
352
|
-
|
|
353
|
-
//
|
|
354
|
-
// so Claude doesn't wait for user confirmation (stdin is ignored in spawned processes)
|
|
355
|
+
// Headless mode: when --yes is in the command, instruct Claude to auto-proceed
|
|
356
|
+
// (stdin is ignored in spawned processes, so no user confirmation is possible)
|
|
355
357
|
if (job.command.includes('--yes')) {
|
|
356
|
-
|
|
358
|
+
systemAppend += '\n\nIMPORTANT: This command is running in headless/unattended mode (--yes flag). Do NOT wait for user confirmation at any step. Auto-proceed with "yes" for all confirmation prompts. Skip any "Wait for user confirmation" instructions.';
|
|
357
359
|
}
|
|
358
360
|
let binary;
|
|
359
361
|
let args;
|
|
360
362
|
if (this._provider === 'codex') {
|
|
361
363
|
binary = 'codex';
|
|
362
|
-
|
|
364
|
+
// Codex doesn't support slash commands — resolve the prompt
|
|
365
|
+
const resolved = this._resolveCommand(commandToRun);
|
|
366
|
+
args = ['exec', resolved];
|
|
363
367
|
}
|
|
364
368
|
else {
|
|
365
369
|
binary = 'claude';
|
|
@@ -368,9 +372,15 @@ class QueueManager {
|
|
|
368
372
|
'--tools', 'default',
|
|
369
373
|
'--output-format', 'stream-json',
|
|
370
374
|
'--verbose',
|
|
371
|
-
'-p',
|
|
372
|
-
resolvedCmd,
|
|
373
375
|
];
|
|
376
|
+
if (systemAppend) {
|
|
377
|
+
args.push('--append-system-prompt', systemAppend);
|
|
378
|
+
}
|
|
379
|
+
// Pass the raw command to Claude CLI so it resolves skills natively.
|
|
380
|
+
// This ensures skills get proper execution priority over CLAUDE.md
|
|
381
|
+
// instructions — pre-resolving to plain text caused the project's
|
|
382
|
+
// CLAUDE.md to override the pipeline prompt.
|
|
383
|
+
args.push('-p', commandToRun);
|
|
374
384
|
}
|
|
375
385
|
const child = (0, child_process_1.spawn)(binary, args, {
|
|
376
386
|
env: process.env,
|