@yemi33/minions 0.1.446 → 0.1.447
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 +2 -1
- package/engine/dispatch.js +20 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
-
## 0.1.
|
|
3
|
+
## 0.1.447 (2026-04-06)
|
|
4
4
|
|
|
5
5
|
### Features
|
|
6
6
|
- notification dot on Notes & KB sidebar when sweep completes/fails
|
|
7
7
|
|
|
8
8
|
### Fixes
|
|
9
|
+
- prevent double-dispatch — dedup by work item ID and dispatchKey
|
|
9
10
|
- pipeline agent is optional — set only when user explicitly requests
|
|
10
11
|
- remove hardcoded agent assignments from all pipeline JSONs
|
|
11
12
|
- pipeline tasks don't hardcode agent — any available agent picks up work
|
package/engine/dispatch.js
CHANGED
|
@@ -37,11 +37,30 @@ function mutateDispatch(mutator) {
|
|
|
37
37
|
function addToDispatch(item) {
|
|
38
38
|
item.id = item.id || `${item.agent}-${item.type}-${shared.uid()}`;
|
|
39
39
|
item.created_at = ts();
|
|
40
|
+
let added = false;
|
|
40
41
|
mutateDispatch((dispatch) => {
|
|
42
|
+
// Dedup: skip if same work item ID is already pending or active
|
|
43
|
+
const wiId = item.meta?.item?.id;
|
|
44
|
+
if (wiId) {
|
|
45
|
+
const existing = [...dispatch.pending, ...(dispatch.active || [])].find(d => d.meta?.item?.id === wiId);
|
|
46
|
+
if (existing) {
|
|
47
|
+
log('info', `Dedup: skipping ${item.id} — work item ${wiId} already in ${existing.id}`);
|
|
48
|
+
return dispatch;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
// Also dedup by dispatchKey
|
|
52
|
+
if (item.meta?.dispatchKey) {
|
|
53
|
+
const existing = [...dispatch.pending, ...(dispatch.active || [])].find(d => d.meta?.dispatchKey === item.meta.dispatchKey);
|
|
54
|
+
if (existing) {
|
|
55
|
+
log('info', `Dedup: skipping ${item.id} — dispatchKey ${item.meta.dispatchKey} already in ${existing.id}`);
|
|
56
|
+
return dispatch;
|
|
57
|
+
}
|
|
58
|
+
}
|
|
41
59
|
dispatch.pending.push(item);
|
|
60
|
+
added = true;
|
|
42
61
|
return dispatch;
|
|
43
62
|
});
|
|
44
|
-
log('info', `Queued dispatch: ${item.id} (${item.type} → ${item.agent})`);
|
|
63
|
+
if (added) log('info', `Queued dispatch: ${item.id} (${item.type} → ${item.agent})`);
|
|
45
64
|
return item.id;
|
|
46
65
|
}
|
|
47
66
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@yemi33/minions",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.447",
|
|
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"
|