@yemi33/minions 0.1.103 → 0.1.105

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,5 +1,18 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.1.105 (2026-04-01)
4
+
5
+ ### Dashboard
6
+ - dashboard/js/render-inbox.js
7
+
8
+ ### Other
9
+ - test/unit.test.js
10
+
11
+ ## 0.1.104 (2026-04-01)
12
+
13
+ ### Engine
14
+ - engine/lifecycle.js
15
+
3
16
  ## 0.1.103 (2026-04-01)
4
17
 
5
18
  ### Engine
@@ -56,16 +56,17 @@ function renderNotes(notes) {
56
56
 
57
57
  if (!content || !content.trim()) { el.innerHTML = '<p class="empty">No team notes yet.</p>'; return; }
58
58
  el.innerHTML = '<div class="notes-preview" onclick="openNotesModal()" title="Click to expand">' + renderMd(content) + '</div>';
59
+ el.querySelector('.notes-preview')._rawContent = content;
59
60
  }
60
61
 
61
62
  function openNotesModal() {
62
63
  const preview = document.querySelector('.notes-preview');
63
64
  if (!preview) return;
64
- const content = preview.textContent;
65
+ const content = preview._rawContent || preview.textContent;
65
66
  document.getElementById('modal-title').textContent = 'Team Notes';
66
- document.getElementById('modal-body').textContent = content;
67
- document.getElementById('modal-body').style.fontFamily = 'Consolas, monospace';
68
- document.getElementById('modal-body').style.whiteSpace = 'pre-wrap';
67
+ document.getElementById('modal-body').innerHTML = '<div style="font-size:12px;line-height:1.6">' + renderMd(content) + '</div>';
68
+ document.getElementById('modal-body').style.fontFamily = "'Segoe UI', system-ui, sans-serif";
69
+ document.getElementById('modal-body').style.whiteSpace = 'normal';
69
70
  _modalDocContext = { title: 'Team Notes', content, selection: '' };
70
71
  _modalEditable = 'notes.md';
71
72
  _modalFilePath = 'notes.md'; showModalQa();
@@ -724,8 +724,15 @@ async function handlePostMerge(pr, project, config, newStatus) {
724
724
 
725
725
  if (newStatus !== 'merged') return;
726
726
 
727
- const mergedItemId = getPrLinks()[pr.id];
727
+ // Resolve linked work item from pr-links or PR branch name
728
+ let mergedItemId = getPrLinks()[pr.id];
729
+ if (!mergedItemId && pr.branch) {
730
+ const branchMatch = pr.branch.match(/(P-[a-z0-9]{6,})/i) || pr.branch.match(/(W-[a-z0-9]+)/i);
731
+ if (branchMatch) mergedItemId = branchMatch[1];
732
+ }
733
+
728
734
  if (mergedItemId) {
735
+ // Mark PRD feature as implemented
729
736
  const prdDir = path.join(MINIONS_DIR, 'prd');
730
737
  try {
731
738
  const planFiles = fs.readdirSync(prdDir).filter(f => f.endsWith('.json'));
@@ -742,6 +749,25 @@ async function handlePostMerge(pr, project, config, newStatus) {
742
749
  }
743
750
  if (updated > 0) log('info', `Post-merge: marked ${mergedItemId} as implemented for ${pr.id}`);
744
751
  } catch (err) { log('warn', `Post-merge PRD update: ${err.message}`); }
752
+
753
+ // Mark work item as done
754
+ const wiPaths = [path.join(MINIONS_DIR, 'work-items.json')];
755
+ for (const p of shared.getProjects(config)) wiPaths.push(shared.projectWorkItemsPath(p));
756
+ for (const wiPath of wiPaths) {
757
+ try {
758
+ const items = safeJson(wiPath);
759
+ if (!items) continue;
760
+ const item = items.find(i => i.id === mergedItemId);
761
+ if (item && item.status !== 'done') {
762
+ log('info', `Post-merge: marking work item ${mergedItemId} as done (was ${item.status}) for ${pr.id}`);
763
+ item.status = 'done';
764
+ item.completedAt = e.ts();
765
+ item._mergedVia = pr.id;
766
+ shared.safeWrite(wiPath, items);
767
+ break;
768
+ }
769
+ } catch (err) { log('warn', `Post-merge work item update: ${err.message}`); }
770
+ }
745
771
  }
746
772
 
747
773
  const agentId = (pr.agent || '').toLowerCase();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@yemi33/minions",
3
- "version": "0.1.103",
3
+ "version": "0.1.105",
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"