@yemi33/minions 0.1.2145 → 0.1.2147
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/bin/minions.js +6 -0
- package/dashboard/js/render-pinned.js +14 -1
- package/dashboard.js +11 -0
- package/docs/architecture.excalidraw +3456 -0
- package/docs/completion-reports.md +33 -0
- package/engine/cleanup.js +9 -0
- package/engine/cli.js +23 -11
- package/engine/discover-review-skills.js +279 -0
- package/engine/playbook.js +35 -0
- package/engine/shared.js +210 -1
- package/engine/worktree-gc.js +9 -1
- package/engine.js +75 -8
- package/package.json +1 -1
- package/playbooks/review.md +4 -0
package/bin/minions.js
CHANGED
|
@@ -1348,6 +1348,12 @@ if (!cmd || cmd === 'help' || cmd === '--help' || cmd === '-h') {
|
|
|
1348
1348
|
const minionsBin = __filename;
|
|
1349
1349
|
if (sub === 'tick') {
|
|
1350
1350
|
const shared = require(path.join(MINIONS_HOME, 'engine', 'shared'));
|
|
1351
|
+
// Resolve the live dashboard port via the in-file resolver, which honors
|
|
1352
|
+
// the runtime beacon (written by dashboard.js after bind), env, and
|
|
1353
|
+
// config — so the watchdog probes whatever port the dashboard actually
|
|
1354
|
+
// fell back to under EADDRINUSE, not a hard-coded default.
|
|
1355
|
+
// See W-mq5nwl9l for the helper contract and W-mq5y1cti for the
|
|
1356
|
+
// watchdog-tick beacon hookup.
|
|
1351
1357
|
watchdog.tick({
|
|
1352
1358
|
minionsHome: MINIONS_HOME,
|
|
1353
1359
|
minionsBin,
|
|
@@ -26,7 +26,20 @@ function renderPinned(entries) {
|
|
|
26
26
|
|
|
27
27
|
function openPinNoteModal() {
|
|
28
28
|
document.getElementById('modal-title').textContent = 'Pin a Note';
|
|
29
|
-
|
|
29
|
+
// The shared #modal-body is reused across every modal, and other openers
|
|
30
|
+
// (e.g. the pinned-note view modal, inbox edit/steer mode) leave inline
|
|
31
|
+
// font-family / white-space / padding / border styles on it. Without this
|
|
32
|
+
// reset the create form inherits whichever modal opened last, distorting
|
|
33
|
+
// its padding and font. Clear those inline styles so the dialog always
|
|
34
|
+
// renders against the default .modal-body CSS — mirror of openPinnedEdit.
|
|
35
|
+
const modalBody = document.getElementById('modal-body');
|
|
36
|
+
modalBody.style.fontFamily = '';
|
|
37
|
+
modalBody.style.whiteSpace = '';
|
|
38
|
+
modalBody.style.padding = '';
|
|
39
|
+
modalBody.style.border = '';
|
|
40
|
+
modalBody.style.borderRadius = '';
|
|
41
|
+
const qa = document.getElementById('modal-qa'); if (qa) qa.style.display = 'none';
|
|
42
|
+
modalBody.innerHTML =
|
|
30
43
|
'<div style="display:flex;flex-direction:column;gap:12px">' +
|
|
31
44
|
'<label style="color:var(--text);font-size:var(--text-md)">Title<input id="pin-title" style="display:block;width:100%;margin-top:4px;padding:6px 8px;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text)" placeholder="e.g. API freeze until Friday"></label>' +
|
|
32
45
|
'<label style="color:var(--text);font-size:var(--text-md)">Content<textarea id="pin-content" rows="4" style="display:block;width:100%;margin-top:4px;padding:6px 8px;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);resize:vertical;font-family:inherit" placeholder="Context all agents should see..."></textarea></label>' +
|
package/dashboard.js
CHANGED
|
@@ -5630,6 +5630,17 @@ const server = http.createServer(async (req, res) => {
|
|
|
5630
5630
|
if (originAgent) item._originAgent = originAgent;
|
|
5631
5631
|
if (originWi) item._originWi = originWi;
|
|
5632
5632
|
copyWorkItemPrFields(item, body);
|
|
5633
|
+
// W-mq5wfh1v000e0da9 — Auto-enroll the PR into pull-requests.json when
|
|
5634
|
+
// this is a `type: fix` WI carrying a structured PR pointer and the PR
|
|
5635
|
+
// isn't tracked yet. Without this, the engine's `pr_not_found` gate
|
|
5636
|
+
// skips the fix forever (engine.js dispatch loop). Idempotent — safe to
|
|
5637
|
+
// call on every WI create. Failures are swallowed (best-effort belt;
|
|
5638
|
+
// engine.js#dispatch loop also calls this as defense-in-depth).
|
|
5639
|
+
try {
|
|
5640
|
+
shared.autoEnrollPrFromFixWorkItem(item, targetProject, MINIONS_DIR);
|
|
5641
|
+
} catch (e) {
|
|
5642
|
+
shared.log('warn', `auto-enroll PR for ${item.id}: ${e.message}`);
|
|
5643
|
+
}
|
|
5633
5644
|
// W-mpejf0fq000e84d6: pre-compute the canonical branch name at create
|
|
5634
5645
|
// time so the persisted WI carries `branch` from the moment it hits
|
|
5635
5646
|
// disk. Skip when the caller already supplied a branch, when this is
|