@yemi33/minions 0.1.57 → 0.1.59

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,44 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.1.59 (2026-03-30)
4
+
5
+ ### Engine
6
+ - engine.js
7
+ - engine/ado.js
8
+ - engine/cli.js
9
+ - engine/consolidation.js
10
+ - engine/github.js
11
+ - engine/lifecycle.js
12
+ - engine/llm.js
13
+ - engine/preflight.js
14
+ - engine/queries.js
15
+ - engine/shared.js
16
+ - engine/spawn-agent.js
17
+
18
+ ### Dashboard
19
+ - dashboard.js
20
+ - dashboard/js/command-center.js
21
+ - dashboard/js/live-stream.js
22
+ - dashboard/js/modal-qa.js
23
+ - dashboard/js/refresh.js
24
+ - dashboard/js/render-inbox.js
25
+ - dashboard/js/render-kb.js
26
+ - dashboard/js/render-plans.js
27
+ - dashboard/js/render-prs.js
28
+ - dashboard/js/render-work-items.js
29
+ - dashboard/js/settings.js
30
+
31
+ ## 0.1.58 (2026-03-30)
32
+
33
+ ### Engine
34
+ - engine.js
35
+
36
+ ### Dashboard
37
+ - dashboard.js
38
+
39
+ ### Other
40
+ - test/unit.test.js
41
+
3
42
  ## 0.1.57 (2026-03-30)
4
43
 
5
44
  ### Engine
@@ -44,7 +44,7 @@ function ccSaveState() {
44
44
  // Keep last 30 messages for display
45
45
  const toSave = _ccMessages.slice(-30);
46
46
  localStorage.setItem('cc-messages', JSON.stringify(toSave));
47
- } catch {} // localStorage might be full
47
+ } catch { /* localStorage might be full */ }
48
48
  }
49
49
 
50
50
  function ccUpdateSessionIndicator() {
@@ -58,7 +58,7 @@ function renderLiveChatMessage(raw) {
58
58
  }
59
59
 
60
60
  continue;
61
- } catch {}
61
+ } catch { /* JSON parse fallback */ }
62
62
  }
63
63
 
64
64
  // Fallback: raw text (stderr, non-JSON lines)
@@ -88,7 +88,7 @@ function startLiveStream(agentId) {
88
88
  try {
89
89
  const chunk = JSON.parse(e.data);
90
90
  renderLiveChatMessage(chunk);
91
- } catch {}
91
+ } catch (e) { console.error('live-stream:', e.message); }
92
92
  };
93
93
 
94
94
  liveEventSource.addEventListener('done', function() {
@@ -137,7 +137,7 @@ async function refreshLiveOutput() {
137
137
  renderLiveChatMessage(text);
138
138
  if (wasAtBottom) el.scrollTop = el.scrollHeight;
139
139
  }
140
- } catch {}
140
+ } catch (e) { console.error('live-stream reload:', e.message); }
141
141
  }
142
142
 
143
143
  async function sendSteering() {
@@ -16,7 +16,7 @@ const _qaSessions = new Map(); // persist conversations across modal open/close
16
16
  try {
17
17
  const saved = JSON.parse(localStorage.getItem('qa-sessions') || '{}');
18
18
  for (const [k, v] of Object.entries(saved)) _qaSessions.set(k, v);
19
- } catch {}
19
+ } catch { /* optional */ }
20
20
  function _saveQaSessions() {
21
21
  try {
22
22
  const obj = {};
@@ -24,7 +24,7 @@ function _saveQaSessions() {
24
24
  const entries = [..._qaSessions.entries()].slice(-10);
25
25
  for (const [k, v] of entries) obj[k] = { ...v, threadHtml: (v.threadHtml || '').slice(0, 50000) };
26
26
  localStorage.setItem('qa-sessions', JSON.stringify(obj));
27
- } catch {}
27
+ } catch { /* localStorage might be full */ }
28
28
  }
29
29
 
30
30
  function modalAskAboutSelection() {
@@ -293,13 +293,13 @@ async function qaReplacePrd(planFile) {
293
293
  method: 'POST', headers: { 'Content-Type': 'application/json' },
294
294
  body: JSON.stringify({ file: existingPrd.file })
295
295
  });
296
- } catch {}
296
+ } catch (e) { console.error('plan pause:', e.message); }
297
297
  try {
298
298
  await fetch('/api/plans/regenerate', {
299
299
  method: 'POST', headers: { 'Content-Type': 'application/json' },
300
300
  body: JSON.stringify({ source: existingPrd.file })
301
301
  });
302
- } catch {}
302
+ } catch (e) { console.error('plan regenerate:', e.message); }
303
303
  }
304
304
 
305
305
  planExecute(planFile, project, null);
@@ -61,7 +61,7 @@ let _statusStream = null;
61
61
  try {
62
62
  _statusStream = new EventSource('/api/status-stream');
63
63
  _statusStream.onmessage = (e) => {
64
- try { _processStatusUpdate(JSON.parse(e.data)); } catch {}
64
+ try { _processStatusUpdate(JSON.parse(e.data)); } catch (e2) { console.error('status-stream:', e2.message); }
65
65
  };
66
66
  _statusStream.onerror = () => {
67
67
  // Fall back to polling
@@ -82,4 +82,4 @@ switchPage(currentPage);
82
82
  try {
83
83
  const _hotReload = new EventSource('/api/hot-reload');
84
84
  _hotReload.onmessage = (e) => { if (e.data === 'reload') location.reload(); };
85
- } catch {}
85
+ } catch { /* expected */ }
@@ -142,7 +142,7 @@ async function openInboxInExplorer(name) {
142
142
  method: 'POST', headers: { 'Content-Type': 'application/json' },
143
143
  body: JSON.stringify({ name })
144
144
  });
145
- } catch {}
145
+ } catch (e) { console.error('inbox open:', e.message); }
146
146
  }
147
147
 
148
148
  function openQuickNoteModal() {
@@ -174,9 +174,9 @@ async function submitQuickNote() {
174
174
  body: JSON.stringify({ title: title || 'Quick note', what: content || title })
175
175
  });
176
176
  if (res.ok) {
177
- try { closeModal(); } catch {}
177
+ try { closeModal(); } catch { /* expected */ }
178
178
  refresh();
179
- try { showToast('cmd-toast', 'Note saved to inbox', true); } catch {}
179
+ try { showToast('cmd-toast', 'Note saved to inbox', true); } catch { /* expected */ }
180
180
  }
181
181
  else { const d = await res.json().catch(() => ({})); alert('Error: ' + (d.error || 'unknown')); }
182
182
  } catch (e) { alert('Error saving note: ' + e.message); }
@@ -6,7 +6,7 @@ async function refreshKnowledgeBase() {
6
6
  try {
7
7
  _kbData = await fetch('/api/knowledge').then(r => r.json());
8
8
  renderKnowledgeBase();
9
- } catch {}
9
+ } catch (e) { console.error('kb refresh:', e.message); }
10
10
  }
11
11
 
12
12
  function renderKnowledgeBase() {
@@ -36,10 +36,10 @@ async function _submitCreatePlan() {
36
36
  });
37
37
  const data = await res.json();
38
38
  if (res.ok) {
39
- try { closeModal(); } catch {}
39
+ try { closeModal(); } catch { /* expected */ }
40
40
  refreshPlans();
41
41
  refresh();
42
- try { showToast('cmd-toast', 'Plan "' + data.file + '" created — click Execute to convert to PRD', true); } catch {}
42
+ try { showToast('cmd-toast', 'Plan "' + data.file + '" created — click Execute to convert to PRD', true); } catch { /* expected */ }
43
43
  } else {
44
44
  alert('Failed: ' + (data.error || 'unknown'));
45
45
  }
@@ -50,7 +50,7 @@ async function refreshPlans() {
50
50
  try {
51
51
  const plans = await fetch('/api/plans').then(r => r.json());
52
52
  renderPlans(plans);
53
- } catch {}
53
+ } catch (e) { console.error('plans refresh:', e.message); }
54
54
  }
55
55
 
56
56
  /**
@@ -135,9 +135,9 @@ async function _submitLinkPr() {
135
135
  });
136
136
  const data = await res.json();
137
137
  if (res.ok) {
138
- try { closeModal(); } catch {}
138
+ try { closeModal(); } catch { /* expected */ }
139
139
  refresh();
140
- try { showToast('cmd-toast', 'PR ' + (data.id || '') + ' linked' + (autoObserve ? ' (auto-observe on)' : ''), true); } catch {}
140
+ try { showToast('cmd-toast', 'PR ' + (data.id || '') + ' linked' + (autoObserve ? ' (auto-observe on)' : ''), true); } catch { /* expected */ }
141
141
  } else {
142
142
  alert('Failed: ' + (data.error || 'unknown'));
143
143
  }
@@ -341,10 +341,10 @@ async function _submitCreateWorkItem() {
341
341
  });
342
342
  const data = await res.json();
343
343
  if (res.ok) {
344
- try { closeModal(); } catch {}
344
+ try { closeModal(); } catch { /* expected */ }
345
345
  wakeEngine();
346
346
  refresh();
347
- try { showToast('cmd-toast', 'Work item ' + (data.id || '') + ' created', true); } catch {}
347
+ try { showToast('cmd-toast', 'Work item ' + (data.id || '') + ' created', true); } catch { /* expected */ }
348
348
  } else {
349
349
  alert('Failed: ' + (data.error || 'unknown'));
350
350
  }
@@ -147,7 +147,7 @@ async function addProject() {
147
147
  });
148
148
  const addData = await addRes.json();
149
149
  if (!addRes.ok) { alert('Failed: ' + (addData.error || 'unknown')); return; }
150
- try { showToast('cmd-toast', 'Project "' + addData.name + '" added — restart engine to pick it up', true); } catch {}
150
+ try { showToast('cmd-toast', 'Project "' + addData.name + '" added — restart engine to pick it up', true); } catch { /* expected */ }
151
151
  refresh();
152
152
  } catch (e) { alert('Error: ' + e.message); }
153
153
  }