coder-config 0.44.26 → 0.44.27
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/config-loader.js +2 -1
- package/lib/constants.js +1 -1
- package/lib/loops.js +21 -0
- package/package.json +1 -1
- package/ui/dist/assets/{index-BXa3jPak.js → index-RGj0_IWM.js} +121 -121
- package/ui/dist/index.html +1 -1
- package/ui/routes/loops.js +21 -11
package/config-loader.js
CHANGED
|
@@ -30,7 +30,7 @@ const { envList, envSet, envUnset } = require('./lib/env');
|
|
|
30
30
|
const { getProjectsRegistryPath, loadProjectsRegistry, saveProjectsRegistry, projectList, projectAdd, projectRemove } = require('./lib/projects');
|
|
31
31
|
const { getWorkstreamsPath, loadWorkstreams, saveWorkstreams, workstreamList, workstreamCreate, workstreamUpdate, workstreamDelete, workstreamUse, workstreamActive, workstreamAddProject, workstreamRemoveProject, workstreamInject, workstreamDetect, workstreamGet, getActiveWorkstream, countWorkstreamsForProject, workstreamInstallHook, workstreamInstallHookGemini, workstreamInstallHookCodex, workstreamDeactivate, workstreamCheckPath, getSettingsPath, loadSettings, saveSettings, workstreamAddTrigger, workstreamRemoveTrigger, workstreamSetAutoActivate, setGlobalAutoActivate, shouldAutoActivate, workstreamCheckFolder, workstreamInstallCdHook, workstreamUninstallCdHook, workstreamCdHookStatus } = require('./lib/workstreams');
|
|
32
32
|
const { getActivityPath, getDefaultActivity, loadActivity, saveActivity, detectProjectRoot, activityLog, activitySummary, generateWorkstreamName, activitySuggestWorkstreams, activityClear } = require('./lib/activity');
|
|
33
|
-
const { getLoopsPath, loadLoops, saveLoops, loadLoopState, saveLoopState, loadHistory, saveHistory, loopList, loopCreate, loopGet, loopUpdate, loopDelete, loopStart, loopPause, loopResume, loopCancel, loopApprove, loopComplete, loopStatus, loopHistory, loopConfig, getActiveLoop, recordIteration, saveClarifications, savePlan, loadClarifications, loadPlan, loopInject, archiveLoop } = require('./lib/loops');
|
|
33
|
+
const { getLoopsPath, loadLoops, saveLoops, loadLoopState, saveLoopState, loadHistory, saveHistory, loopList, loopCreate, loopGet, loopUpdate, loopDelete, loopStart, loopPause, loopResume, loopCancel, loopApprove, loopComplete, loopFail, loopStatus, loopHistory, loopConfig, getActiveLoop, recordIteration, saveClarifications, savePlan, loadClarifications, loadPlan, loopInject, archiveLoop } = require('./lib/loops');
|
|
34
34
|
const { getSessionStatus, showSessionStatus, flushContext, clearContext, installHooks: sessionInstallHooks, getFlushedContext, installFlushCommand, installAll: sessionInstallAll, SESSION_DIR, FLUSHED_CONTEXT_FILE } = require('./lib/sessions');
|
|
35
35
|
const { runCli } = require('./lib/cli');
|
|
36
36
|
|
|
@@ -182,6 +182,7 @@ class ClaudeConfigManager {
|
|
|
182
182
|
loopCancel(idOrName) { return loopCancel(this.installDir, idOrName); }
|
|
183
183
|
loopApprove(idOrName) { return loopApprove(this.installDir, idOrName); }
|
|
184
184
|
loopComplete(idOrName) { return loopComplete(this.installDir, idOrName); }
|
|
185
|
+
loopFail(idOrName, reason) { return loopFail(this.installDir, idOrName, reason); }
|
|
185
186
|
loopStatus(idOrName) { return loopStatus(this.installDir, idOrName); }
|
|
186
187
|
loopHistory() { return loopHistory(this.installDir); }
|
|
187
188
|
loopConfig(updates) { return loopConfig(this.installDir, updates); }
|
package/lib/constants.js
CHANGED
package/lib/loops.js
CHANGED
|
@@ -377,6 +377,7 @@ function loopStart(installDir, idOrName) {
|
|
|
377
377
|
}
|
|
378
378
|
|
|
379
379
|
state.status = 'running';
|
|
380
|
+
state.startedAt = state.startedAt || new Date().toISOString(); // Set on first start
|
|
380
381
|
delete state.pauseReason;
|
|
381
382
|
saveLoopState(installDir, state.id, state);
|
|
382
383
|
|
|
@@ -429,6 +430,25 @@ function loopResume(installDir, idOrName) {
|
|
|
429
430
|
return loopStart(installDir, idOrName);
|
|
430
431
|
}
|
|
431
432
|
|
|
433
|
+
/**
|
|
434
|
+
* Mark a loop as failed
|
|
435
|
+
*/
|
|
436
|
+
function loopFail(installDir, idOrName, reason = 'unknown error') {
|
|
437
|
+
const state = loopGet(installDir, idOrName);
|
|
438
|
+
|
|
439
|
+
if (!state) {
|
|
440
|
+
console.error(`Loop not found: ${idOrName}`);
|
|
441
|
+
return null;
|
|
442
|
+
}
|
|
443
|
+
|
|
444
|
+
state.status = 'failed';
|
|
445
|
+
state.pauseReason = reason;
|
|
446
|
+
saveLoopState(installDir, state.id, state);
|
|
447
|
+
|
|
448
|
+
console.log(`✗ Loop failed: ${state.name} - ${reason}`);
|
|
449
|
+
return state;
|
|
450
|
+
}
|
|
451
|
+
|
|
432
452
|
/**
|
|
433
453
|
* Cancel a loop
|
|
434
454
|
*/
|
|
@@ -811,6 +831,7 @@ module.exports = {
|
|
|
811
831
|
loopCancel,
|
|
812
832
|
loopApprove,
|
|
813
833
|
loopComplete,
|
|
834
|
+
loopFail,
|
|
814
835
|
|
|
815
836
|
// Status operations
|
|
816
837
|
loopStatus,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "coder-config",
|
|
3
|
-
"version": "0.44.
|
|
3
|
+
"version": "0.44.27",
|
|
4
4
|
"description": "Configuration manager for AI coding tools - Claude Code, Gemini CLI, Codex CLI, Antigravity. Manage MCPs, rules, permissions, memory, and workstreams.",
|
|
5
5
|
"author": "regression.io",
|
|
6
6
|
"main": "config-loader.js",
|