@yemi33/minions 0.1.971 → 0.1.973
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 +3 -3
- package/engine.js +8 -6
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
-
## 0.1.
|
|
3
|
+
## 0.1.973 (2026-04-14)
|
|
4
4
|
|
|
5
5
|
### Features
|
|
6
6
|
- flush queued CC messages as single combined request
|
|
@@ -25,6 +25,7 @@
|
|
|
25
25
|
- replace magic string 'active' with PR_STATUS.ACTIVE in lifecycle.js (#969)
|
|
26
26
|
|
|
27
27
|
### Fixes
|
|
28
|
+
- skip isAlreadyDispatched in needsReReview to allow re-review within 1hr
|
|
28
29
|
- loop queue flush so messages queued during combined send aren't orphaned
|
|
29
30
|
- set lastPushedAt on fix completion to unblock re-review without poller
|
|
30
31
|
- trigger second-pass re-review after fix agent completes
|
|
@@ -34,6 +35,7 @@
|
|
|
34
35
|
- CC stale lock auto-release + queue drain on abort
|
|
35
36
|
- CC streaming 'tabId' TDZ error on new tab first message
|
|
36
37
|
- fix tabId scope and close-event lock race in CC handlers
|
|
38
|
+
- defer setCooldown to post-gating in discoverWork
|
|
37
39
|
- fix CC queued message 'already processing' and thinking UX stacking
|
|
38
40
|
- enforce --timeout 1 on all azureauth calls to prevent agent orphans (#1063)
|
|
39
41
|
- cancel steering kill watcher on resume spawn (#1052) (#1062)
|
|
@@ -43,8 +45,6 @@
|
|
|
43
45
|
- tighten build query guard to require mergeCommitId
|
|
44
46
|
- restore sourceVersion filter after refs/pull merge ref switch
|
|
45
47
|
- use refs/pull/{id}/merge for build status scoping
|
|
46
|
-
- use repositoryId+reasonFilter for ADO build query
|
|
47
|
-
- deduplicate work item creation by title
|
|
48
48
|
|
|
49
49
|
### Other
|
|
50
50
|
- refactor(dashboard): extract _releaseCCTab helper and CC_LOCK_WAIT_MS constant
|
package/engine.js
CHANGED
|
@@ -1981,7 +1981,7 @@ async function discoverFromPrs(config, project) {
|
|
|
1981
1981
|
pr_id: pr.id, pr_number: prNumber, pr_title: pr.title || '', pr_branch: pr.branch || '',
|
|
1982
1982
|
pr_author: pr.agent || '', pr_url: pr.url || '',
|
|
1983
1983
|
}, `Review ${pr.id}: ${pr.title}`, { dispatchKey: key, source: 'pr', pr, branch: pr.branch, project: projMeta });
|
|
1984
|
-
if (item) { newWork.push(item);
|
|
1984
|
+
if (item) { newWork.push(item); }
|
|
1985
1985
|
}
|
|
1986
1986
|
|
|
1987
1987
|
// Re-review after fix: fall back to fixedAt > lastReviewedAt when lastPushedAt lags poller
|
|
@@ -1991,7 +1991,9 @@ async function discoverFromPrs(config, project) {
|
|
|
1991
1991
|
(fixedAfterReview || (!alreadyReviewed && !!pr.minionsReview?.fixedAt)) && !evalEscalated;
|
|
1992
1992
|
if (needsReReview) {
|
|
1993
1993
|
const key = `review-${project?.name || 'default'}-${pr.id}`;
|
|
1994
|
-
|
|
1994
|
+
// Skip isAlreadyDispatched — fixedAfterReview/alreadyReviewed already dedup; the 1hr
|
|
1995
|
+
// completed-dispatch window would block legitimate re-reviews within the hour after a fix
|
|
1996
|
+
if (isOnCooldown(key, cooldownMs)) continue;
|
|
1995
1997
|
|
|
1996
1998
|
// Pre-dispatch live vote check — cached 'waiting' may be stale if reviewer already acted
|
|
1997
1999
|
try {
|
|
@@ -2034,7 +2036,7 @@ async function discoverFromPrs(config, project) {
|
|
|
2034
2036
|
review_note: pr.minionsReview?.note || pr.reviewNote || 'See PR thread comments',
|
|
2035
2037
|
}, `Fix ${pr.id}: ${pr.title || ''} — review feedback`, { dispatchKey: key, source: 'pr', pr, branch: pr.branch, project: projMeta });
|
|
2036
2038
|
if (item) {
|
|
2037
|
-
newWork.push(item);
|
|
2039
|
+
newWork.push(item); fixDispatched = true;
|
|
2038
2040
|
// Increment review→fix cycle counter
|
|
2039
2041
|
try {
|
|
2040
2042
|
mutatePullRequests(projectPrPath(project), prs => {
|
|
@@ -2072,7 +2074,7 @@ async function discoverFromPrs(config, project) {
|
|
|
2072
2074
|
reviewer: 'Human Reviewer',
|
|
2073
2075
|
review_note: reviewNote,
|
|
2074
2076
|
}, `Fix ${pr.id}: ${pr.title || ''} — human feedback`, { dispatchKey: key, source: 'pr-human-feedback', pr, branch: pr.branch, project: projMeta });
|
|
2075
|
-
if (item) { newWork.push(item);
|
|
2077
|
+
if (item) { newWork.push(item); fixDispatched = true; }
|
|
2076
2078
|
}
|
|
2077
2079
|
|
|
2078
2080
|
// PRs with build failures — route to author (has session context from implementing)
|
|
@@ -2121,7 +2123,7 @@ async function discoverFromPrs(config, project) {
|
|
|
2121
2123
|
review_note: reviewNote,
|
|
2122
2124
|
}, `Fix build failure on ${pr.id}: ${pr.title || ''}`, { dispatchKey: key, source: 'pr', pr, branch: pr.branch, project: projMeta });
|
|
2123
2125
|
if (item) {
|
|
2124
|
-
newWork.push(item);
|
|
2126
|
+
newWork.push(item);
|
|
2125
2127
|
// Increment build fix attempts counter
|
|
2126
2128
|
try {
|
|
2127
2129
|
const prPath = projectPrPath(project);
|
|
@@ -2178,7 +2180,6 @@ async function discoverFromPrs(config, project) {
|
|
|
2178
2180
|
}, `Fix merge conflicts on ${pr.id}: ${pr.title || ''}`, { dispatchKey: key, source: 'pr', pr, branch: pr.branch, project: projMeta });
|
|
2179
2181
|
if (item) {
|
|
2180
2182
|
newWork.push(item);
|
|
2181
|
-
setCooldown(key);
|
|
2182
2183
|
// Record dispatch timestamp so re-dispatch is suppressed during ADO lag window
|
|
2183
2184
|
try {
|
|
2184
2185
|
mutatePullRequests(projectPrPath(project), prs => {
|
|
@@ -3079,6 +3080,7 @@ async function discoverWork(config) {
|
|
|
3079
3080
|
|
|
3080
3081
|
for (const item of allWork) {
|
|
3081
3082
|
addToDispatch(item);
|
|
3083
|
+
if (item.meta?.dispatchKey) setCooldown(item.meta.dispatchKey);
|
|
3082
3084
|
if (item.meta?.source === 'pr-human-feedback') {
|
|
3083
3085
|
clearPendingHumanFeedbackFlag(item.meta.project, item.meta.pr?.id);
|
|
3084
3086
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@yemi33/minions",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.973",
|
|
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"
|