multi-agents-cli 1.0.86 → 1.0.88
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/core/workflow/agent.js +15 -0
- package/core/workflow/guards.js +10 -2
- package/core/workflow/restart.js +2 -0
- package/package.json +1 -1
package/core/workflow/agent.js
CHANGED
|
@@ -1360,6 +1360,21 @@ ${excludedUrls}
|
|
|
1360
1360
|
);
|
|
1361
1361
|
console.log(` ${green('✓')} package.json proxy written`);
|
|
1362
1362
|
|
|
1363
|
+
// ── Write worktree .gitignore — block framework files from agent commits ────
|
|
1364
|
+
const worktreeGitignore = [
|
|
1365
|
+
'# Framework files — never commit these to the agent branch',
|
|
1366
|
+
'package.json',
|
|
1367
|
+
'.claude-scope',
|
|
1368
|
+
'scope.json',
|
|
1369
|
+
'TASK.md',
|
|
1370
|
+
'.vscode/',
|
|
1371
|
+
'.idea/',
|
|
1372
|
+
'.zed/',
|
|
1373
|
+
'node_modules/',
|
|
1374
|
+
].join('\n') + '\n';
|
|
1375
|
+
fs.writeFileSync(path.join(worktreePath, '.gitignore'), worktreeGitignore, 'utf8');
|
|
1376
|
+
console.log(` ${green('✓')} .gitignore written (framework files excluded from agent commits)`);
|
|
1377
|
+
|
|
1363
1378
|
// ── Write .tracking.json slot
|
|
1364
1379
|
|
|
1365
1380
|
guards.updateTrackingSlot(tracking, project, agent, {
|
package/core/workflow/guards.js
CHANGED
|
@@ -125,8 +125,16 @@ const updateTrackingSlot = (tracking, scope, agent, data, ROOT) => {
|
|
|
125
125
|
const clearTrackingSlot = (tracking, scope, agent, ROOT) => {
|
|
126
126
|
if (!tracking[scope] || !tracking[scope][agent]) return tracking;
|
|
127
127
|
|
|
128
|
-
//
|
|
129
|
-
tracking[scope][agent] =
|
|
128
|
+
// Mark as COMPLETED rather than wiping — preserves history for display in restart/agent selectors
|
|
129
|
+
tracking[scope][agent] = {
|
|
130
|
+
branch: null,
|
|
131
|
+
timestamp: null,
|
|
132
|
+
launchedAt: null,
|
|
133
|
+
status: 'COMPLETED',
|
|
134
|
+
missingCount: 0,
|
|
135
|
+
worktreePath: null,
|
|
136
|
+
completedAt: new Date().toISOString(),
|
|
137
|
+
};
|
|
130
138
|
|
|
131
139
|
const trackingPath = path.join(ROOT, '.scaffold', '.tracking.json');
|
|
132
140
|
fs.writeFileSync(trackingPath, JSON.stringify(tracking, null, 2), 'utf8');
|
package/core/workflow/restart.js
CHANGED
|
@@ -177,6 +177,8 @@ const main = async () => {
|
|
|
177
177
|
...candidates.map(c => ({
|
|
178
178
|
label: c.status === 'AVAILABLE'
|
|
179
179
|
? `${dim(c.agent)} ${dim(`(${c.scope})`)} ${dim('not started')}`
|
|
180
|
+
: c.status === 'COMPLETED'
|
|
181
|
+
? `${dim(c.agent)} ${dim(`(${c.scope})`)} ${green('✓ completed')}`
|
|
180
182
|
: `${bold(c.agent)} ${dim(`(${c.scope})`)} ${dim(c.branch)} ${c.status === 'UNTRACKED' ? yellow('untracked') : dim(c.status)}`,
|
|
181
183
|
})),
|
|
182
184
|
{ label: dim('← cancel') },
|
package/package.json
CHANGED