@yemi33/minions 0.1.833 → 0.1.834
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/CHANGELOG.md +2 -1
- package/engine.js +3 -36
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
-
## 0.1.
|
|
3
|
+
## 0.1.834 (2026-04-11)
|
|
4
4
|
|
|
5
5
|
### Features
|
|
6
6
|
- stale PRD shows Regenerate PRD + Resume as-is buttons
|
|
7
7
|
|
|
8
8
|
### Fixes
|
|
9
|
+
- engine only flags stale on plan revision, never auto-regenerates
|
|
9
10
|
- only 'updated' re-opens done work items, remove 'planned' status
|
|
10
11
|
- revert doc-chat MAX_HEIGHT to 500px
|
|
11
12
|
- hide plan card action buttons when stale banner is showing
|
package/engine.js
CHANGED
|
@@ -1331,43 +1331,10 @@ function materializePlansAsWorkItems(config) {
|
|
|
1331
1331
|
// Handle PRD based on current status
|
|
1332
1332
|
const prdStatus = plan.status || (plan.requires_approval ? 'awaiting-approval' : null);
|
|
1333
1333
|
|
|
1334
|
-
//
|
|
1335
|
-
if (prdStatus
|
|
1334
|
+
// Flag stale for all statuses — user decides when to regenerate/resume from dashboard
|
|
1335
|
+
if (prdStatus) {
|
|
1336
1336
|
plan.planStale = true;
|
|
1337
|
-
log('info', `PRD ${file} flagged as stale (plan revised while ${prdStatus}) — user can
|
|
1338
|
-
}
|
|
1339
|
-
|
|
1340
|
-
// Awaiting-approval PRDs: auto-regenerate (no work started yet, safe to replace)
|
|
1341
|
-
if (prdStatus === 'awaiting-approval') {
|
|
1342
|
-
log('info', `PRD ${file} invalidated (was awaiting-approval) — queuing regeneration from revised plan`);
|
|
1343
|
-
|
|
1344
|
-
const completedStatuses = new Set(['done', 'in-pr', 'implemented']);
|
|
1345
|
-
const completedItems = (plan.missing_features || [])
|
|
1346
|
-
.filter(f => completedStatuses.has(f.status))
|
|
1347
|
-
.map(f => ({ id: f.id, name: f.name, status: f.status }));
|
|
1348
|
-
|
|
1349
|
-
const completedContext = completedItems.length > 0
|
|
1350
|
-
? `\nPreviously completed items (preserve their status in the new PRD):\n${completedItems.map(i => `- ${i.id}: ${i.name} [${i.status}]`).join('\n')}`
|
|
1351
|
-
: '';
|
|
1352
|
-
|
|
1353
|
-
try { fs.unlinkSync(path.join(PRD_DIR, file)); } catch { /* cleanup */ }
|
|
1354
|
-
|
|
1355
|
-
const planContent = safeRead(path.join(PLANS_DIR, plan.source_plan));
|
|
1356
|
-
if (planContent) {
|
|
1357
|
-
const projectName = plan.project || file.replace(/-\d{4}-\d{2}-\d{2}\.json$/, '');
|
|
1358
|
-
const allProjects = getProjects(config);
|
|
1359
|
-
const targetProject = allProjects.find(p => p.name?.toLowerCase() === projectName.toLowerCase()) || allProjects[0];
|
|
1360
|
-
if (targetProject) {
|
|
1361
|
-
const queued = shared.queuePlanToPrd({
|
|
1362
|
-
planFile: plan.source_plan, prdFile: file,
|
|
1363
|
-
title: `Generate PRD from plan: ${plan.source_plan}`,
|
|
1364
|
-
description: `Plan file: plans/${plan.source_plan}\nSource plan was updated while PRD was awaiting approval — generating fresh PRD.${completedContext}`,
|
|
1365
|
-
project: targetProject.name, createdBy: 'engine:plan-revision',
|
|
1366
|
-
});
|
|
1367
|
-
if (queued) log('info', `Queued plan-to-prd regeneration for revised plan ${plan.source_plan} (${completedItems.length} completed items to carry over)`);
|
|
1368
|
-
}
|
|
1369
|
-
}
|
|
1370
|
-
continue; // Old PRD deleted — skip safeWrite below
|
|
1337
|
+
log('info', `PRD ${file} flagged as stale (plan revised while ${prdStatus}) — user can regenerate from dashboard`);
|
|
1371
1338
|
}
|
|
1372
1339
|
|
|
1373
1340
|
safeWrite(path.join(PRD_DIR, file), plan);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@yemi33/minions",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.834",
|
|
4
4
|
"description": "Multi-agent AI dev team that runs from ~/.minions/ — five autonomous agents share a single engine, dashboard, and knowledge base",
|
|
5
5
|
"bin": {
|
|
6
6
|
"minions": "bin/minions.js"
|