@yemi33/minions 0.1.313 → 0.1.314
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 +4 -1
- package/dashboard/js/render-prs.js +1 -1
- package/engine/ado.js +13 -0
- package/engine/github.js +13 -0
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -24,7 +24,7 @@ function prRow(pr) {
|
|
|
24
24
|
'<td><span class="pr-agent">' + escHtml(pr.agent || '—') + '</span></td>' +
|
|
25
25
|
'<td><span class="pr-branch">' + escHtml(pr.branch || '—') + '</span></td>' +
|
|
26
26
|
'<td><span class="pr-badge ' + reviewClass + '">' + escHtml(reviewLabel) + '</span></td>' +
|
|
27
|
-
'<td>' + (sq.reviewer && sq.status !== 'waiting' ? '<span class="pr-agent" title="' + escHtml(sq.note || '') + '">' + escHtml(sq.reviewer) + '</span>' : sq.reviewer && sq.status === 'waiting' ? '<span class="pr-agent" style="color:var(--muted)" title="Vote pending confirmation">' + escHtml(sq.reviewer) + '…</span>' : '<span style="color:var(--muted);font-size:11px">—</span>') + '</td>' +
|
|
27
|
+
'<td>' + (sq.reviewer && sq.status !== 'waiting' ? '<span class="pr-agent" title="' + escHtml(sq.note || '') + '">' + escHtml(sq.reviewer) + '</span>' : sq.reviewer && sq.status === 'waiting' ? '<span class="pr-agent" style="color:var(--muted)" title="Vote pending confirmation">' + escHtml(sq.reviewer) + '…</span>' : pr.reviewedBy && pr.reviewedBy.length ? '<span class="pr-agent">' + escHtml(pr.reviewedBy.join(', ')) + '</span>' : '<span style="color:var(--muted);font-size:11px">—</span>') + '</td>' +
|
|
28
28
|
'<td><span class="pr-badge ' + buildClass + '">' + escHtml(buildLabel) + '</span></td>' +
|
|
29
29
|
'<td><span class="pr-badge ' + statusClass + '">' + escHtml(statusLabel) + '</span></td>' +
|
|
30
30
|
'<td><span class="pr-date">' + escHtml(pr.created || '—') + '</span></td>' +
|
package/engine/ado.js
CHANGED
|
@@ -151,6 +151,19 @@ async function pollPrStatus(config) {
|
|
|
151
151
|
else newReviewStatus = 'pending';
|
|
152
152
|
}
|
|
153
153
|
|
|
154
|
+
// Store human reviewer names who approved or requested changes
|
|
155
|
+
const reviewedBy = reviewers
|
|
156
|
+
.filter(r => r.vote >= 5 || r.vote === -10)
|
|
157
|
+
.map(r => r.displayName)
|
|
158
|
+
.filter(Boolean);
|
|
159
|
+
// Fallback: if PR was merged and no decisive votes, use completedBy
|
|
160
|
+
if (!reviewedBy.length && newStatus === 'merged' && prData.closedBy?.displayName) {
|
|
161
|
+
reviewedBy.push(prData.closedBy.displayName);
|
|
162
|
+
}
|
|
163
|
+
if (JSON.stringify(pr.reviewedBy || []) !== JSON.stringify(reviewedBy)) {
|
|
164
|
+
pr.reviewedBy = reviewedBy; updated = true;
|
|
165
|
+
}
|
|
166
|
+
|
|
154
167
|
if (pr.reviewStatus !== newReviewStatus) {
|
|
155
168
|
log('info', `PR ${pr.id} reviewStatus: ${pr.reviewStatus} → ${newReviewStatus}`);
|
|
156
169
|
pr.reviewStatus = newReviewStatus;
|
package/engine/github.js
CHANGED
|
@@ -154,6 +154,19 @@ async function pollPrStatus(config) {
|
|
|
154
154
|
}
|
|
155
155
|
const states = [...latestByUser.values()];
|
|
156
156
|
|
|
157
|
+
// Store human reviewer names who approved or requested changes
|
|
158
|
+
const reviewedBy = [...latestByUser.entries()]
|
|
159
|
+
.filter(([, state]) => state === 'APPROVED' || state === 'CHANGES_REQUESTED')
|
|
160
|
+
.map(([user]) => user)
|
|
161
|
+
.filter(Boolean);
|
|
162
|
+
// Fallback: if PR was merged and no decisive reviews, use merged_by
|
|
163
|
+
if (!reviewedBy.length && prData.merged && prData.merged_by?.login) {
|
|
164
|
+
reviewedBy.push(prData.merged_by.login);
|
|
165
|
+
}
|
|
166
|
+
if (JSON.stringify(pr.reviewedBy || []) !== JSON.stringify(reviewedBy)) {
|
|
167
|
+
pr.reviewedBy = reviewedBy; updated = true;
|
|
168
|
+
}
|
|
169
|
+
|
|
157
170
|
let newReviewStatus = pr.reviewStatus || 'pending';
|
|
158
171
|
if (states.some(s => s === 'CHANGES_REQUESTED')) newReviewStatus = 'changes-requested';
|
|
159
172
|
else if (states.some(s => s === 'APPROVED')) newReviewStatus = 'approved';
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@yemi33/minions",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.314",
|
|
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"
|