@yemi33/minions 0.1.1913 → 0.1.1914

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/README.md CHANGED
@@ -565,14 +565,12 @@ Engine behavior is controlled via `config.json`. Key settings:
565
565
  | `autoDecompose` | true | Auto-decompose `implement:large` items into sub-tasks before dispatch |
566
566
  | `autoApprovePlans` | false | Auto-approve PRDs without waiting for human approval |
567
567
  | `evalLoop` | true | Auto-dispatch review → fix cycles after implementation completes |
568
- | `evalMaxIterations` | 3 | Max minion review → fix cycles before pausing minion review automation; human feedback, build fixes, and conflict fixes continue |
569
568
  | `evalMaxCost` | null | USD ceiling per work item across all eval iterations (null = no limit) |
570
569
  | `meetingRoundTimeout` | 600000 (10min) | Timeout per meeting round before auto-advance |
571
570
  | `ccModel` | `sonnet` | Model for Command Center and doc-chat (sonnet/haiku/opus) |
572
571
  | `ccEffort` | null | Effort level for CC/doc-chat (null/low/medium/high) |
573
572
  | `agentEffort` | null | Override effort level for all agent dispatches |
574
573
  | `maxTurnsByType` | `{}` | Per-type max-turns override (e.g., `{"explore": 40, "fix": 100}`) |
575
- | `maxBuildFixAttempts` | 3 | Max auto-fix dispatches per PR before escalating |
576
574
 
577
575
  Per-type max-turns defaults (when `maxTurnsByType` not set): explore=30, ask=20, review=30, plan=30, decompose=15, plan-to-prd=20, implement=75, fix=75, test=50, verify=100. Configurable from the Settings page.
578
576
 
@@ -34,7 +34,7 @@ How the engine manages the lifecycle of a PR from creation through review, fix,
34
34
 
35
35
  When multiple problems coexist, earlier triggers get the first chance to enqueue work. The local `fixDispatched` flag is declared before the fix triggers and set after human-feedback, review-feedback, and build-failure dispatches. Conflict fixes run last and explicitly require `!fixDispatched`, so any earlier successful fix dispatch suppresses the conflict fix for that PR in the same discovery pass. Build fixes are evaluated after human and minion review feedback, but the build-fix condition itself is not gated by `!fixDispatched`.
36
36
 
37
- `evalMaxIterations` only applies to the minion review loop: initial minion review, minion re-review, and minion review-feedback fixes. It does not gate human-feedback fixes, build-failure fixes, or merge-conflict fixes.
37
+ The engine does not cap review→fix cycles or build-fix attempts. Each trigger evaluates its own gates on every discovery pass; loops stop only when the underlying condition clears (reviewer approves, build passes, conflict resolves, human feedback handled). Operators who need to halt automation on a runaway PR should disable the relevant feature flag (`evalLoop`, `autoFixBuilds`, `autoFixConflicts`) or close the PR.
38
38
 
39
39
  ### A. Human comments (`humanFeedback.pendingFix`)
40
40
 
@@ -42,16 +42,14 @@ When multiple problems coexist, earlier triggers get the first chance to enqueue
42
42
  - Agent comments filtered out via `/\bMinions\s*\(/i` regex on comment body
43
43
  - Coalesces multiple comments arriving during cooldown into single fix
44
44
  - Routes to author
45
- - Not gated by `_evalEscalated` — humans can always force more fixes via PR comments even after the minion review loop escalates.
46
45
  - Fix agents must treat human comments as claims to verify, not commands. They inspect or reproduce each claimed issue, make the smallest correct fix only when the claim is valid, and otherwise reply with evidence-backed rationale.
47
46
 
48
47
  ### B. Review feedback (`changes-requested`)
49
48
 
50
- - Gate: `reviewStatus === 'changes-requested'` + `!awaitingReReview` + `!evalEscalated` + not dispatched + not on cooldown
49
+ - Gate: `reviewStatus === 'changes-requested'` + `!awaitingReReview` + not dispatched + not on cooldown
51
50
  - Routes to PR author via `_author_` routing token
52
51
  - `review_note` = reviewer's feedback
53
52
  - Sets `fixDispatched = true` — prevents the later conflict fix from also firing this pass
54
- - **Review-loop escalation**: after `evalMaxIterations` review→fix cycles (default 3), `_evalEscalated` is set on the PR and *only this trigger plus minion review/re-review* stop. Triggers A (human comments), C (build failures), and D (merge conflicts) keep running. The dashboard PR row distinguishes the two states with separate badges (review badge `review-escalated` vs. build badge `build-escalated`).
55
53
  - Fix agents validate each requested-change claim before editing. Invalid, stale, already-addressed, out-of-scope, or harmful feedback should get a respectful evidence-backed rebuttal rather than a success-shaped code change.
56
54
 
57
55
  ### C. Build failures (`buildStatus === 'failing'`)
@@ -59,8 +57,6 @@ When multiple problems coexist, earlier triggers get the first chance to enqueue
59
57
  - Gate: provider polling enabled (`adoPollEnabled` or `ghPollEnabled`) + `autoFixBuilds` + `buildStatus === 'failing'` + grace period expired
60
58
  - **Grace period** (`_buildFixPushedAt`): after fix dispatches, waits `buildFixGracePeriod` (default 10min, configurable in `ENGINE_DEFAULTS`) for CI to run before re-dispatching. Cleared when poller detects build status transition (CI actually ran).
61
59
  - **Error logs**: GitHub fetches annotations (failures only, not warnings) + Actions job log (always). ADO queries builds API directly (not status checks), fetches build timeline → failed task logs (up to 10 per build, up to 10 failing pipelines).
62
- - **Build-fix escalation**: after 3 failed attempts, writes an inbox alert, sets `buildFixEscalated = true`, and stops *only this trigger* (auto-dispatch for build fixes). The counter resets when the build recovers. Independent of `_evalEscalated`.
63
- - Not gated by `_evalEscalated` — build-fix is mechanical and runs even if the review loop has escalated.
64
60
  - Sets `fixDispatched = true` after dispatch so the later conflict trigger is suppressed in the same pass.
65
61
 
66
62
  ### D. Merge conflicts (`_mergeConflict`)
@@ -88,7 +84,7 @@ When multiple problems coexist, earlier triggers get the first chance to enqueue
88
84
  - Fix agent pushes → `_buildFixPushedAt` stamped
89
85
  - Poller detects new commit → CI starts → `buildStatus` transitions (`failing` → `running`)
90
86
  - `_buildFixPushedAt` cleared on any transition
91
- - If CI passes → `buildFixAttempts` reset, `buildErrorLog` cleared → done
87
+ - If CI passes → `buildErrorLog` cleared → done
92
88
  - If CI fails again → fresh error logs fetched → new fix dispatches immediately (grace already cleared by transition)
93
89
 
94
90
  ## Race prevention
@@ -125,10 +121,6 @@ When multiple problems coexist, earlier triggers get the first chance to enqueue
125
121
  | `reviewStatus` | Poller + post-completion | `pending` / `approved` / `changes-requested` / `waiting` |
126
122
  | `buildStatus` | Poller | `none` / `passing` / `failing` / `running` |
127
123
  | `buildErrorLog` | Poller | Actual CI error output for fix agents |
128
- | `buildFixAttempts` | Discovery (on dispatch) | Counter for build-fix escalation cap |
129
- | `buildFixEscalated` | Discovery (on cap) | Stops *build-fix* auto-dispatch only (review/re-review and other fix triggers continue) |
130
- | `_reviewFixCycles` | Discovery (on dispatch) | Counter for review→fix cycle cap (`evalMaxIterations`) |
131
- | `_evalEscalated` | Discovery (on cap) | Stops *review/re-review and review-feedback fix* auto-dispatch only (build-fix, conflict-fix, and human-feedback fix continue). Cleared when reviewer eventually approves the PR. |
132
124
  | `_buildFixPushedAt` | Discovery (on dispatch) | Grace period timestamp |
133
125
  | `_buildFailNotified` | Discovery | Dedup for inbox alert |
134
126
  | `lastPushedAt` | Poller (new commit) | Tracks latest push for re-review logic |
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@yemi33/minions",
3
- "version": "0.1.1913",
3
+ "version": "0.1.1914",
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"