@yemi33/minions 0.1.351 → 0.1.353

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,8 +1,10 @@
1
1
  # Changelog
2
2
 
3
- ## 0.1.351 (2026-04-06)
3
+ ## 0.1.353 (2026-04-06)
4
4
 
5
5
  ### Fixes
6
+ - pipeline template regex now matches hyphenated stage IDs
7
+ - pipeline Continue button shows immediate feedback
6
8
  - skip meeting modal re-render when data unchanged
7
9
 
8
10
  ## 0.1.350 (2026-04-06)
@@ -253,13 +253,21 @@ async function _togglePipelineEnabled(id, enabled, btn) {
253
253
  }
254
254
 
255
255
  async function _continuePipeline(id, stageId, btn) {
256
- if (btn) { btn.textContent = 'Continuing...'; btn.style.pointerEvents = 'none'; }
256
+ if (btn) { btn.textContent = 'Continuing...'; btn.style.pointerEvents = 'none'; btn.style.opacity = '0.6'; }
257
257
  try {
258
258
  var res = await fetch('/api/pipelines/continue', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ id: id, stageId: stageId }) });
259
- if (res.ok) { showToast('cmd-toast', 'Stage continued', true); openPipelineDetail(id); }
260
- else { var d = await res.json().catch(function() { return {}; }); alert('Failed: ' + (d.error || 'unknown')); }
261
- } catch (e) { alert('Error: ' + e.message); }
262
- if (btn) { btn.textContent = 'Continue'; btn.style.pointerEvents = ''; }
259
+ if (res.ok) {
260
+ showToast('cmd-toast', 'Stage continued dispatching next tick', true);
261
+ if (btn) { btn.textContent = '\u2713 Continued'; btn.style.color = 'var(--green)'; btn.style.borderColor = 'var(--green)'; btn.style.opacity = '1'; }
262
+ setTimeout(function() { openPipelineDetail(id); }, 2000);
263
+ } else {
264
+ var d = await res.json().catch(function() { return {}; }); alert('Failed: ' + (d.error || 'unknown'));
265
+ if (btn) { btn.textContent = 'Continue'; btn.style.pointerEvents = ''; btn.style.opacity = ''; }
266
+ }
267
+ } catch (e) {
268
+ alert('Error: ' + e.message);
269
+ if (btn) { btn.textContent = 'Continue'; btn.style.pointerEvents = ''; btn.style.opacity = ''; }
270
+ }
263
271
  }
264
272
 
265
273
  async function _deletePipelineConfirm(id) {
@@ -101,7 +101,7 @@ function completeRun(pipelineId, runId, status) {
101
101
 
102
102
  function resolveTemplate(str, run) {
103
103
  if (!str || typeof str !== 'string') return str;
104
- return str.replace(/\{\{stages\.(\w+)\.(\w+)\}\}/g, (_, stageId, field) => {
104
+ return str.replace(/\{\{stages\.([\w-]+)\.([\w-]+)\}\}/g, (_, stageId, field) => {
105
105
  const stage = run?.stages?.[stageId];
106
106
  if (!stage) return '';
107
107
  if (field === 'output') return stage.output || '';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@yemi33/minions",
3
- "version": "0.1.351",
3
+ "version": "0.1.353",
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"