@yemi33/minions 0.1.1794 → 0.1.1796
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 +10 -0
- package/dashboard/js/modal-qa.js +11 -0
- package/engine/copilot-models.json +1 -1
- package/engine/timeout.js +14 -10
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
package/dashboard/js/modal-qa.js
CHANGED
|
@@ -113,6 +113,14 @@ function _qaBuildTranscript(history, currentMessage) {
|
|
|
113
113
|
return out.slice(-QA_TRANSCRIPT_MAX_TURNS);
|
|
114
114
|
}
|
|
115
115
|
|
|
116
|
+
function _qaRecordAbortedPartial(runtime, message, partialText) {
|
|
117
|
+
const text = typeof partialText === 'string' ? partialText.trim() : '';
|
|
118
|
+
if (!runtime || !text) return false;
|
|
119
|
+
runtime.history.push({ role: 'user', text: message });
|
|
120
|
+
runtime.history.push({ role: 'assistant', text });
|
|
121
|
+
return true;
|
|
122
|
+
}
|
|
123
|
+
|
|
116
124
|
function _qaSummarizeActionContext(actions, actionResults) {
|
|
117
125
|
if (!Array.isArray(actions) || actions.length === 0) return '';
|
|
118
126
|
const lines = [];
|
|
@@ -860,6 +868,9 @@ async function _processQaMessage(message, selection, opts) {
|
|
|
860
868
|
if (loadingEl) loadingEl.remove();
|
|
861
869
|
_qaInsertBeforeQueued(tmp, messageHtml);
|
|
862
870
|
});
|
|
871
|
+
if (e.name === 'AbortError' && _qaRecordAbortedPartial(runtime, message, streamedText) && _qaIsActiveSession(sessionKey)) {
|
|
872
|
+
_qaHistory = runtime.history.slice();
|
|
873
|
+
}
|
|
863
874
|
_qaFlushPersistDebounce(sessionKey);
|
|
864
875
|
_qaPersistSession(sessionKey, {
|
|
865
876
|
threadHtml: updatedThreadHtml,
|
package/engine/timeout.js
CHANGED
|
@@ -78,6 +78,15 @@ function rememberDeferredSteering(info, steerEntry) {
|
|
|
78
78
|
info._deferredSteeringFiles = Array.from(existing);
|
|
79
79
|
}
|
|
80
80
|
|
|
81
|
+
function deferSteeringUntilCheckpoint(id, info, steerEntry) {
|
|
82
|
+
log('info', `Steering: no mid-run resumable checkpoint for ${info.agentId} (${id}) — queued until checkpoint`);
|
|
83
|
+
rememberDeferredSteering(info, steerEntry);
|
|
84
|
+
try {
|
|
85
|
+
const liveLogPath = path.join(AGENTS_DIR, info.agentId, 'live-output.log');
|
|
86
|
+
fs.appendFileSync(liveLogPath, `\n[steering] Message received. This runtime has not emitted a resumable checkpoint for the current run yet, so the message is queued until the agent reaches a resumable checkpoint or the next dispatch.\n`);
|
|
87
|
+
} catch { /* optional */ }
|
|
88
|
+
}
|
|
89
|
+
|
|
81
90
|
function checkSteering(config) {
|
|
82
91
|
const activeProcesses = engine().activeProcesses;
|
|
83
92
|
for (const [id, info] of activeProcesses) {
|
|
@@ -112,18 +121,13 @@ function checkSteering(config) {
|
|
|
112
121
|
if (!steerEntry) continue; // ENOENT/no agents/<id>/inbox/steering-*.md message
|
|
113
122
|
const message = steerEntry.message.trim();
|
|
114
123
|
|
|
124
|
+
if (!runtimeSupportsMidRunSessionId(info)) {
|
|
125
|
+
deferSteeringUntilCheckpoint(id, info, steerEntry);
|
|
126
|
+
continue;
|
|
127
|
+
}
|
|
128
|
+
|
|
115
129
|
const sessionId = info.sessionId;
|
|
116
130
|
if (!sessionId) {
|
|
117
|
-
if (!runtimeSupportsMidRunSessionId(info)) {
|
|
118
|
-
log('info', `Steering: no mid-run sessionId for ${info.agentId} (${id}) — queued until resumable checkpoint`);
|
|
119
|
-
rememberDeferredSteering(info, steerEntry);
|
|
120
|
-
try {
|
|
121
|
-
const liveLogPath = path.join(AGENTS_DIR, info.agentId, 'live-output.log');
|
|
122
|
-
fs.appendFileSync(liveLogPath, `\n[steering] Message received. This runtime has not emitted a resumable session yet, so the message is queued until the agent reaches a resumable checkpoint or the next dispatch.\n`);
|
|
123
|
-
} catch { /* optional */ }
|
|
124
|
-
continue;
|
|
125
|
-
}
|
|
126
|
-
|
|
127
131
|
// No session to resume for a runtime that should have emitted one — kill
|
|
128
132
|
// agent and leave message unread in inbox for retry. Previously this
|
|
129
133
|
// silently skipped for up to 5m then deleted the message (#627).
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@yemi33/minions",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.1796",
|
|
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"
|