@yemi33/minions 0.1.2005 → 0.1.2006

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/dashboard.js CHANGED
@@ -4615,6 +4615,10 @@ const server = http.createServer(async (req, res) => {
4615
4615
  d.meta?.item?.id === id
4616
4616
  );
4617
4617
 
4618
+ // (W-mpfsl2rw000m9469) Archiving removes a row from work-items.json, which
4619
+ // is part of /api/status fast-state. Match every other mutating handler
4620
+ // and invalidate so the dashboard reflects the archive immediately.
4621
+ invalidateStatusCache();
4618
4622
  return jsonReply(res, 200, { ok: true, id });
4619
4623
  } catch (e) { return jsonReply(res, 400, { error: e.message }); }
4620
4624
  }
@@ -4818,6 +4822,10 @@ const server = http.createServer(async (req, res) => {
4818
4822
  });
4819
4823
  }
4820
4824
  recordCcTurnIfPresent(req, { kind: 'work-item', id, title: item.title, project: item.project || null });
4825
+ // (W-mpfsl2rw000m9469) Invalidate so the next ≤4s SPA poll sees the
4826
+ // followup WI instead of serving a stale 304. Sibling mutating handlers
4827
+ // (delete/cancel/retry/reopen/notes/plan) all invalidate before reply.
4828
+ invalidateStatusCache();
4821
4829
  return jsonReply(res, 200, { ok: true, id });
4822
4830
  }
4823
4831
  const createResult = createWorkItemWithDedup(wiPath, item);
@@ -4826,6 +4834,10 @@ const server = http.createServer(async (req, res) => {
4826
4834
  return jsonReply(res, 200, { ok: true, id: duplicateId, duplicate: true, duplicateOf: duplicateId });
4827
4835
  }
4828
4836
  recordCcTurnIfPresent(req, { kind: 'work-item', id, title: item.title, project: item.project || null });
4837
+ // (W-mpfsl2rw000m9469) Mirror the followup-branch invalidation above so
4838
+ // the new WI shows up on the next dashboard poll instead of waiting for
4839
+ // the 10s periodic push.
4840
+ invalidateStatusCache();
4829
4841
  return jsonReply(res, 200, { ok: true, id });
4830
4842
  } catch (e) { return jsonReply(res, 400, { error: e.message }); }
4831
4843
  }
package/docs/README.md CHANGED
@@ -21,7 +21,9 @@ Architecture, design proposals, and lifecycle references for people working on t
21
21
  - [kb-sweep.md](kb-sweep.md) — Knowledge-base consolidation sweep (hash dedup → LLM batch dedup/reclassify → per-entry compress) and the detached runner that keeps it alive across `minions restart`.
22
22
  - [managed-spawn.md](managed-spawn.md) — Engine-owned long-running services (managed-spawn primitive): sidecar schema, healthcheck examples, lifecycle, dashboard API, and the WI 1 (build) → WI 2 (test) chained-validation pattern.
23
23
  - [plan-lifecycle.md](plan-lifecycle.md) — Full plan pipeline from `/plan` through PRD materialization, dispatch with dependency gating, verify task, and human archive.
24
+ - [pr-comment-followup.md](pr-comment-followup.md) — PR-comment follow-up dispatch contract: fix/review agents may spin off a new WI via `POST /api/work-items` with `meta.pr_followup` instead of broadening the current PR or rebutting the comment.
24
25
  - [pr-review-fix-loop.md](pr-review-fix-loop.md) — How the engine moves a PR from creation through review, fix dispatch, and re-review, including stale-status guards.
26
+ - [qa-runbooks.md](qa-runbooks.md) — Per-project QA runbook schema, storage layout (`projects/<name>/runbooks/<id>.json`), CRUD endpoints, run-record lifecycle, and the `qa-validate` agent sidecar contract.
25
27
  - [rfc-completion-json.md](rfc-completion-json.md) — RFC for replacing stdout regex-scraping with a structured `completion.json` control-plane protocol.
26
28
  - [runtime-adapters.md](runtime-adapters.md) — Runtime adapter contract (`engine/runtimes/*`): how the engine talks to Claude Code, Copilot CLI, and future CLIs through a single capability-flagged interface.
27
29
  - [self-improvement.md](self-improvement.md) — The six self-improvement mechanisms (learnings inbox, per-agent history, review feedback, quality metrics, etc.) that form Minions' continuous feedback loop.
@@ -17,6 +17,7 @@ tick()
17
17
  2. consolidateInbox() Merge learnings into notes.md (Haiku-powered)
18
18
  2.5 runCleanup() Periodic cleanup (every 10 ticks ≈ 10min)
19
19
  2.52 sweepKeepProcesses() keep_processes TTL/dead-PID sweep (every 30 ticks)
20
+ 2.53 sweepManagedSpawn() managed_spawn TTL/dead-PID/log-rotate sweep (every 30 ticks)
20
21
  2.55 checkWatches() Persistent watch jobs (every 3 tick-equivalents)
21
22
  2.6 pollPrStatus() Poll ADO + GitHub for build, review, merge status (wall-clock cadence from prPollStatusEvery × tickInterval, default ≈ 12min)
22
23
  processPendingRebases() Run any rebase work queued from the previous tick
@@ -38,7 +38,7 @@ The sidecar lives at `<MINIONS_DIR>/agents/<agentId>/managed-spawn.json` and is
38
38
  "cwd": "D:/repos/constellation", // must be inside a real git worktree (requireGitWorkdir: true) — monorepo subdirs ok, ancestor walked up to gitWorktreeMaxParentDepth parents
39
39
  "env": { "CONSTELLATION_SERVER": "http://localhost:3000" }, // ≤32 keys; POSIX-shape + denylist enforced
40
40
  "ports": [3001], // 1024-65535; ≤20 per spec; advisory only (engine doesn't bind)
41
- "ttl_minutes": 240, // ≤1440 (24h hard cap); defaults to 240 (4h)
41
+ "ttl_minutes": 240, // ≤1440 (24h hard cap); defaults to 720 (12h)
42
42
  "attrs": { // opaque per-spec metadata, ≤2048 bytes serialized
43
43
  "base_url": "http://localhost:3001",
44
44
  "framework": "vite"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@yemi33/minions",
3
- "version": "0.1.2005",
3
+ "version": "0.1.2006",
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"