fix: Ensure agents write signal.json to the correct directory
Two additional fixes to prevent agents from writing .cw/output/ in the wrong location: 1. Always create .cw/output/ at the agent workdir root during spawn, even when no inputContext is provided. This gives the agent a visible anchor directory so it doesn't create one inside a project subdir. 2. Add absolute output path instruction to the workspace layout prompt for multi-project agents, explicitly telling them to write .cw/output/ relative to the workdir root, not their current cd location.
This commit is contained in:
@@ -297,6 +297,10 @@ export class MultiProviderAgentManager implements AgentManager {
|
||||
if (options.inputContext) {
|
||||
await writeInputFiles({ agentWorkdir: agentCwd, ...options.inputContext, agentId, agentName: alias });
|
||||
log.debug({ alias }, 'input files written');
|
||||
} else {
|
||||
// Always create .cw/output/ at the agent workdir root so the agent
|
||||
// writes signal.json here rather than in a project subdirectory.
|
||||
await mkdir(join(agentCwd, '.cw', 'output'), { recursive: true });
|
||||
}
|
||||
|
||||
// 4. Build spawn command
|
||||
|
||||
@@ -36,5 +36,7 @@ This is an isolated git worktree. Other agents may be working in parallel on sep
|
||||
The following project directories contain the source code (git worktrees):
|
||||
|
||||
${lines.join('\n')}
|
||||
|
||||
**IMPORTANT**: All \`.cw/output/\` paths (signal.json, progress.md, etc.) are relative to this working directory (\`${agentCwd}\`), NOT to any project subdirectory. Always write to \`${join(agentCwd, '.cw/output/')}\` regardless of your current \`cd\` location.
|
||||
</workspace>`;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user