@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 CHANGED
@@ -1,11 +1,12 @@
1
1
  # Changelog
2
2
 
3
- ## 0.1.833 (2026-04-11)
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
- // Approved/completed/paused PRDs: flag stale — user clicks Resume to trigger diff-aware update
1335
- if (prdStatus && prdStatus !== 'awaiting-approval') {
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 resume from dashboard`);
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.833",
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"