@yemi33/minions 0.1.480 → 0.1.482

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,6 +1,6 @@
1
1
  # Changelog
2
2
 
3
- ## 0.1.480 (2026-04-07)
3
+ ## 0.1.482 (2026-04-07)
4
4
 
5
5
  ### Features
6
6
  - file bugs as GitHub issues from CC or doc-chat
@@ -13,9 +13,14 @@
13
13
  - Limit SSE initial live-stream payload to last 64KB
14
14
 
15
15
  ### Fixes
16
+ - bug filing targets minions repo, not user's project
17
+ - stamp dispatched_to on already-dispatched early-exit path
16
18
  - add optional chaining for config.agents in updatePrAfterReview
17
19
  - pass config to updatePrAfterReview to fix test failure
18
20
 
21
+ ### Other
22
+ - docs: document bug filing feature in README and CLAUDE.md
23
+
19
24
  ## 0.1.473 (2026-04-07)
20
25
 
21
26
  ### Fixes
package/README.md CHANGED
@@ -235,7 +235,7 @@ You can also run scripts directly: `node ~/.minions/engine.js start`, `node ~/.m
235
235
  The web dashboard at `http://localhost:7331` provides:
236
236
 
237
237
  - **Projects bar** — all linked projects with descriptions (hover for full text)
238
- - **Command Center** — add work items, notes, plans (multi-project via `#project` tags). "make a plan for..." auto-detection, "remember" keyword, `--parallel`/`--shared` flags, arrow key history, Past Commands modal. Session state persists across refreshes.
238
+ - **Command Center** — add work items, notes, plans (multi-project via `#project` tags). "make a plan for..." auto-detection, "remember" keyword, `--parallel`/`--shared` flags, arrow key history, Past Commands modal. Session state persists across refreshes. File bugs as GitHub issues ("file this as a bug").
239
239
  - **Minions Members** — agent cards with status and result summary, click for charter/history/output detail panel
240
240
  - **Live Output tab** — real-time streaming output for working agents (auto-refreshes every 3s)
241
241
  - **Work Items** — paginated table (20/page) with status, source, type, priority, assigned agent, linked PRs, fan-out badges, retry/delete/archive with optimistic updates
package/dashboard.js CHANGED
@@ -576,7 +576,7 @@ Available action types:
576
576
  - **link-pr**: Link an external PR for tracking. Fields: url (PR URL), title (optional), project (optional), autoObserve (bool, default true)
577
577
  - **archive-meeting**: Archive a completed meeting. Fields: id (meeting ID)
578
578
  - **update-routing**: Update the routing table. Fields: content (full routing.md content)
579
- - **file-bug**: File a bug as a GitHub issue on the project repo. Fields: title (short bug title), description (markdown body with repro steps, expected vs actual behavior), project (optional, defaults to first project), labels (optional array, defaults to ["bug"]). Use when the user says "file a bug", "create an issue", "report this", etc.
579
+ - **file-bug**: File a bug on the Minions repo (yemi33/minions). Fields: title (short bug title), description (markdown body with repro steps, expected vs actual behavior), labels (optional array, defaults to ["bug"]). Use when the user says "file a bug", "create an issue", "report this", etc. This is for bugs in Minions itself, not the user's project.
580
580
 
581
581
  ## Rules
582
582
 
@@ -3189,15 +3189,12 @@ What would you like to discuss or change? When you're happy, say "approve" and I
3189
3189
  try {
3190
3190
  const body = await readBody(req);
3191
3191
  if (!body.title) return jsonReply(res, 400, { error: 'title required' });
3192
- const project = shared.getProjects(CONFIG).find(p => body.project ? p.name === body.project : true);
3193
- if (!project) return jsonReply(res, 400, { error: 'no project found' });
3194
3192
 
3193
+ const repo = 'yemi33/minions';
3195
3194
  const labels = (body.labels || ['bug']).join(',');
3196
3195
  const bugBody = (body.description || '') + '\n\n---\n_Filed via Minions dashboard_';
3197
- const slug = project.repoHost === 'github' ? `${project.adoOrg}/${project.repoName}` : null;
3198
- if (!slug) return jsonReply(res, 400, { error: 'Bug filing currently supports GitHub repos only' });
3199
3196
 
3200
- const cmd = `gh issue create --repo "${slug}" --title "${body.title.replace(/"/g, '\\"')}" --body "${bugBody.replace(/"/g, '\\"')}" --label "${labels}" 2>&1`;
3197
+ const cmd = `gh issue create --repo "${repo}" --title "${body.title.replace(/"/g, '\\"')}" --body "${bugBody.replace(/"/g, '\\"')}" --label "${labels}" 2>&1`;
3201
3198
  const result = shared.exec(cmd, { encoding: 'utf-8', timeout: 30000, windowsHide: true });
3202
3199
  const urlMatch = result.match(/https:\/\/github\.com\/\S+/);
3203
3200
  return jsonReply(res, 200, { ok: true, url: urlMatch ? urlMatch[0] : null, output: result.trim() });
@@ -3898,7 +3895,7 @@ What would you like to discuss or change? When you're happy, say "approve" and I
3898
3895
  { method: 'POST', path: '/api/projects/add', desc: 'Auto-discover and add a project to config', params: 'path, name?', handler: handleProjectsAdd },
3899
3896
 
3900
3897
  // Bug Filing
3901
- { method: 'POST', path: '/api/issues/create', desc: 'File a bug as a GitHub issue', params: 'title, description?, project?, labels?', handler: handleFileBug },
3898
+ { method: 'POST', path: '/api/issues/create', desc: 'File a bug on the Minions repo (yemi33/minions)', params: 'title, description?, labels?', handler: handleFileBug },
3902
3899
 
3903
3900
  // Command Center
3904
3901
  { method: 'POST', path: '/api/command-center/new-session', desc: 'Clear active CC session', handler: handleCommandCenterNewSession },
package/engine.js CHANGED
@@ -1504,6 +1504,10 @@ function discoverFromWorkItems(config, project) {
1504
1504
  }
1505
1505
  if (isAlreadyDispatched(key)) {
1506
1506
  if (item.status === WI_STATUS.PENDING) { item.status = WI_STATUS.DISPATCHED; needsWrite = true; }
1507
+ if (!item.dispatched_to) {
1508
+ const existing = getDispatch().active?.find(d => d.meta?.dispatchKey === key);
1509
+ if (existing?.agent) { item.dispatched_to = existing.agent; needsWrite = true; }
1510
+ }
1507
1511
  if (item._pendingReason !== 'already_dispatched') { item._pendingReason = 'already_dispatched'; needsWrite = true; }
1508
1512
  skipped.gated++; continue;
1509
1513
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@yemi33/minions",
3
- "version": "0.1.480",
3
+ "version": "0.1.482",
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"