@yemi33/minions 0.1.712 → 0.1.713
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/dashboard.js +35 -5
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
-
## 0.1.
|
|
3
|
+
## 0.1.713 (2026-04-09)
|
|
4
4
|
|
|
5
5
|
### Fixes
|
|
6
|
+
- trigger-verify handles already-completed PRDs and existing verify WIs
|
|
6
7
|
- move re-execute action card out of doc-chat thread
|
|
7
8
|
- modal derivePlanStatus was called with wrong args, plans not cached
|
|
8
9
|
|
package/dashboard.js
CHANGED
|
@@ -969,21 +969,51 @@ const server = http.createServer(async (req, res) => {
|
|
|
969
969
|
safeWrite(activePath, plan);
|
|
970
970
|
}
|
|
971
971
|
|
|
972
|
-
// Trigger completion check
|
|
973
|
-
const lifecycle = require('./engine/lifecycle');
|
|
974
972
|
const config = queries.getConfig();
|
|
975
|
-
lifecycle.checkPlanCompletion({ item: { sourcePlan: body.file, id: 'manual' } }, config);
|
|
976
|
-
|
|
977
|
-
// Check if verify was created
|
|
978
973
|
const project = PROJECTS.find(p => {
|
|
979
974
|
const plan = safeJson(activePath) || safeJson(prdPath);
|
|
980
975
|
return plan && p.name?.toLowerCase() === (plan.project || '').toLowerCase();
|
|
981
976
|
}) || PROJECTS[0] || null;
|
|
977
|
+
|
|
978
|
+
// Check for existing verify WI — reset to pending if already done (re-verify)
|
|
979
|
+
if (project) {
|
|
980
|
+
const wiPath = shared.projectWorkItemsPath(project);
|
|
981
|
+
let existingVerify = null;
|
|
982
|
+
mutateWorkItems(wiPath, items => {
|
|
983
|
+
const v = items.find(w => w.sourcePlan === body.file && w.itemType === 'verify');
|
|
984
|
+
if (v && (v.status === 'done' || v.status === 'failed')) {
|
|
985
|
+
v.status = 'pending';
|
|
986
|
+
delete v.completedAt;
|
|
987
|
+
delete v.dispatched_to;
|
|
988
|
+
delete v.dispatched_at;
|
|
989
|
+
v._retryCount = 0;
|
|
990
|
+
existingVerify = v;
|
|
991
|
+
} else if (v) {
|
|
992
|
+
existingVerify = v;
|
|
993
|
+
}
|
|
994
|
+
});
|
|
995
|
+
if (existingVerify) {
|
|
996
|
+
invalidateStatusCache();
|
|
997
|
+
return jsonReply(res, 200, { ok: true, verifyId: existingVerify.id });
|
|
998
|
+
}
|
|
999
|
+
}
|
|
1000
|
+
|
|
1001
|
+
// No existing verify — clear completion flag and trigger fresh creation
|
|
1002
|
+
const planData = safeJson(activePath);
|
|
1003
|
+
if (planData?._completionNotified) {
|
|
1004
|
+
planData._completionNotified = false;
|
|
1005
|
+
safeWrite(activePath, planData);
|
|
1006
|
+
}
|
|
1007
|
+
|
|
1008
|
+
const lifecycle = require('./engine/lifecycle');
|
|
1009
|
+
lifecycle.checkPlanCompletion({ item: { sourcePlan: body.file, id: 'manual' } }, config);
|
|
1010
|
+
|
|
982
1011
|
if (project) {
|
|
983
1012
|
const wiPath = shared.projectWorkItemsPath(project);
|
|
984
1013
|
const items = safeJsonArr(wiPath);
|
|
985
1014
|
const verify = items.find(w => w.sourcePlan === body.file && w.itemType === 'verify');
|
|
986
1015
|
if (verify) {
|
|
1016
|
+
invalidateStatusCache();
|
|
987
1017
|
return jsonReply(res, 200, { ok: true, verifyId: verify.id });
|
|
988
1018
|
}
|
|
989
1019
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@yemi33/minions",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.713",
|
|
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"
|