@yemi33/minions 0.1.1020 → 0.1.1022

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,5 +1,58 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.1.1022 (2026-04-16)
4
+
5
+ ### Features
6
+ - route implement items to dedicated implement playbook (#1115)
7
+
8
+ ### Fixes
9
+ - auto-review not firing for manually-linked PRs with autoObserve=true
10
+ - mark PR abandoned on 404 instead of silently retrying each tick
11
+ - replace undefined PROJECTS with config.projects in checkWatches (#1108)
12
+ - write permission for publish workflow
13
+ - run tests inline and post check runs for publish PRs
14
+ - add maxBuffer to all GitHub CLI spawns + paginate PR list (#1130)
15
+ - add required CI checks for PRs + update publish for auto-merge
16
+ - revert to PR merge now that stale status check is removed
17
+ - guard live review check against undefined vote/state values (#1132)
18
+ - push version bump directly to master instead of via PR
19
+ - add push-triggered CI for chore/publish branches
20
+ - publish workflow chore PRs failing to merge
21
+ - harden KB ordering
22
+ - harden audited state transitions
23
+
24
+ ### Other
25
+ - chore: test publish after removing stale status check
26
+ - chore: trigger publish test
27
+ - chore: test publish workflow fix
28
+ - chore: trigger publish workflow test
29
+
30
+ ## 0.1.1021 (2026-04-16)
31
+
32
+ ### Features
33
+ - route implement items to dedicated implement playbook (#1115)
34
+
35
+ ### Fixes
36
+ - mark PR abandoned on 404 instead of silently retrying each tick
37
+ - replace undefined PROJECTS with config.projects in checkWatches (#1108)
38
+ - write permission for publish workflow
39
+ - run tests inline and post check runs for publish PRs
40
+ - add maxBuffer to all GitHub CLI spawns + paginate PR list (#1130)
41
+ - add required CI checks for PRs + update publish for auto-merge
42
+ - revert to PR merge now that stale status check is removed
43
+ - guard live review check against undefined vote/state values (#1132)
44
+ - push version bump directly to master instead of via PR
45
+ - add push-triggered CI for chore/publish branches
46
+ - publish workflow chore PRs failing to merge
47
+ - harden KB ordering
48
+ - harden audited state transitions
49
+
50
+ ### Other
51
+ - chore: test publish after removing stale status check
52
+ - chore: trigger publish test
53
+ - chore: test publish workflow fix
54
+ - chore: trigger publish workflow test
55
+
3
56
  ## 0.1.1020 (2026-04-16)
4
57
 
5
58
  ### Features
package/dashboard.js CHANGED
@@ -4536,6 +4536,7 @@ What would you like to discuss or change? When you're happy, say "approve" and I
4536
4536
  prdItems: [],
4537
4537
  _manual: true,
4538
4538
  _contextOnly: !autoObserve,
4539
+ _autoObserve: !!autoObserve,
4539
4540
  _context: context || '',
4540
4541
  });
4541
4542
  return prs;
package/engine/github.js CHANGED
@@ -88,7 +88,10 @@ const isGhThrottled = () => _ghThrottle.isThrottled();
88
88
  /** Returns a snapshot of the current GitHub throttle state. */
89
89
  const getGhThrottleState = () => _ghThrottle.getState();
90
90
 
91
- /** Run a `gh api` call and parse JSON result. Returns null on failure.
91
+ /** Sentinel returned by ghApi when the resource does not exist (HTTP 404). */
92
+ const GH_NOT_FOUND = Object.freeze({ _notFound: true });
93
+
94
+ /** Run a `gh api` call and parse JSON result. Returns null on failure, GH_NOT_FOUND on 404.
92
95
  * @param {string} endpoint - API endpoint (e.g. '/pulls?state=open')
93
96
  * @param {string} slug - owner/repo slug
94
97
  * @param {object} [opts] - Options: { paginate: boolean, timeout: number }
@@ -110,6 +113,10 @@ async function ghApi(endpoint, slug, opts = {}) {
110
113
  const retryAfterMs = secMatch ? parseInt(secMatch[1], 10) * 1000 : 0;
111
114
  _ghThrottle.recordThrottle(retryAfterMs);
112
115
  }
116
+ if (/HTTP 404|Not Found/i.test(msg)) {
117
+ log('warn', `GitHub API error (${endpoint}): ${e.message}`);
118
+ return GH_NOT_FOUND;
119
+ }
113
120
  log('warn', `GitHub API error (${endpoint}): ${e.message}`);
114
121
  return null;
115
122
  }
@@ -305,6 +312,15 @@ async function pollPrStatus(config) {
305
312
  const totalUpdated = await forEachActiveGhPr(config, async (project, pr, prNum, slug) => {
306
313
  const prData = await ghApi(`/pulls/${prNum}`, slug);
307
314
  if (!prData) return false;
315
+ if (prData === GH_NOT_FOUND) {
316
+ // PR no longer exists — mark abandoned so it stops being polled
317
+ if (pr.status !== PR_STATUS.ABANDONED) {
318
+ pr.status = PR_STATUS.ABANDONED;
319
+ log('info', `PR ${pr.id} returned 404 — marking abandoned`);
320
+ return true;
321
+ }
322
+ return false;
323
+ }
308
324
 
309
325
  let updated = false;
310
326
 
package/engine.js CHANGED
@@ -1931,8 +1931,8 @@ async function discoverFromPrs(config, project) {
1931
1931
  continue;
1932
1932
  }
1933
1933
  // Skip human-authored PRs not linked to any work item — only auto-manage agent PRs
1934
- // Manually-linked PRs with autoObserve are allowed through (they have _autoObserve flag)
1935
- const isAgentPr = knownAgents.has((pr.agent || '').toLowerCase()) || (pr.prdItems && pr.prdItems.length > 0) || pr._autoObserve;
1934
+ // Manually-linked PRs with autoObserve=true (_manual && !_contextOnly) are allowed through
1935
+ const isAgentPr = knownAgents.has((pr.agent || '').toLowerCase()) || (pr.prdItems && pr.prdItems.length > 0) || (pr._manual && !pr._contextOnly);
1936
1936
  if (!isAgentPr) continue;
1937
1937
 
1938
1938
  const prNumber = shared.getPrNumber(pr);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@yemi33/minions",
3
- "version": "0.1.1020",
3
+ "version": "0.1.1022",
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"