mirror of
https://github.com/Ark0N/Codeman.git
synced 2026-10-08 00:19:42 +02:00
chore: bump version to 0.1436
This commit is contained in:
@@ -16,7 +16,7 @@ When user says "COM":
|
|||||||
1. Increment version in BOTH `package.json` AND `CLAUDE.md`
|
1. Increment version in BOTH `package.json` AND `CLAUDE.md`
|
||||||
2. Run: `git add -A && git commit -m "chore: bump version to X.XXXX" && git push && npm run build && systemctl --user restart claudeman-web`
|
2. Run: `git add -A && git commit -m "chore: bump version to X.XXXX" && git push && npm run build && systemctl --user restart claudeman-web`
|
||||||
|
|
||||||
**Version**: 0.1435 (must match `package.json`)
|
**Version**: 0.1436 (must match `package.json`)
|
||||||
|
|
||||||
## Project Overview
|
## Project Overview
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "claudeman",
|
"name": "claudeman",
|
||||||
"version": "0.1435",
|
"version": "0.1436",
|
||||||
"description": "The missing control plane for Claude Code - run 20 autonomous agents with real-time monitoring and session persistence",
|
"description": "The missing control plane for Claude Code - run 20 autonomous agents with real-time monitoring and session persistence",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"main": "dist/index.js",
|
"main": "dist/index.js",
|
||||||
|
|||||||
@@ -705,8 +705,11 @@ export class RespawnController extends EventEmitter {
|
|||||||
if (c.aiPlanCheckMaxContext <= 0) c.aiPlanCheckMaxContext = DEFAULT_CONFIG.aiPlanCheckMaxContext;
|
if (c.aiPlanCheckMaxContext <= 0) c.aiPlanCheckMaxContext = DEFAULT_CONFIG.aiPlanCheckMaxContext;
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Wire up AI checker events to controller events */
|
/** Wire up AI checker events to controller events (removes existing listeners first to prevent duplicates) */
|
||||||
private setupAiCheckerListeners(): void {
|
private setupAiCheckerListeners(): void {
|
||||||
|
// Remove any existing listeners to prevent duplicates when restarting
|
||||||
|
this.aiChecker.removeAllListeners();
|
||||||
|
|
||||||
this.aiChecker.on('log', (message: string) => {
|
this.aiChecker.on('log', (message: string) => {
|
||||||
this.log(message);
|
this.log(message);
|
||||||
});
|
});
|
||||||
@@ -728,8 +731,11 @@ export class RespawnController extends EventEmitter {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Wire up plan checker events to controller events */
|
/** Wire up plan checker events to controller events (removes existing listeners first to prevent duplicates) */
|
||||||
private setupPlanCheckerListeners(): void {
|
private setupPlanCheckerListeners(): void {
|
||||||
|
// Remove any existing listeners to prevent duplicates when restarting
|
||||||
|
this.planChecker.removeAllListeners();
|
||||||
|
|
||||||
this.planChecker.on('log', (message: string) => {
|
this.planChecker.on('log', (message: string) => {
|
||||||
this.log(message);
|
this.log(message);
|
||||||
});
|
});
|
||||||
@@ -996,6 +1002,11 @@ export class RespawnController extends EventEmitter {
|
|||||||
|
|
||||||
this.log('Starting respawn controller (multi-layer detection)');
|
this.log('Starting respawn controller (multi-layer detection)');
|
||||||
|
|
||||||
|
// Re-setup AI checker listeners in case they were removed by a previous stop()
|
||||||
|
// This allows the controller to be restarted after being stopped
|
||||||
|
this.setupAiCheckerListeners();
|
||||||
|
this.setupPlanCheckerListeners();
|
||||||
|
|
||||||
// Initialize all timestamps and reset hook state
|
// Initialize all timestamps and reset hook state
|
||||||
const now = Date.now();
|
const now = Date.now();
|
||||||
this.lastActivityTime = now;
|
this.lastActivityTime = now;
|
||||||
|
|||||||
+14
-11
@@ -456,28 +456,31 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="form-section-header">Prompts</div>
|
<div class="form-section-header">Respawn Cycle</div>
|
||||||
<div class="form-row">
|
<div class="form-row">
|
||||||
<label>Update Prompt</label>
|
<label>1. Update Prompt</label>
|
||||||
<input type="text" id="modalRespawnPrompt" value="update all the docs and CLAUDE.md" placeholder="Prompt to send when idle" onchange="app.autoSaveRespawnConfig()">
|
<input type="text" id="modalRespawnPrompt" value="update all the docs and CLAUDE.md" placeholder="Prompt to send when idle" onchange="app.autoSaveRespawnConfig()">
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div class="respawn-options-row" style="margin: 8px 0;">
|
||||||
|
<label class="checkbox-inline">
|
||||||
|
<input type="checkbox" id="modalRespawnSendClear" checked onchange="app.autoSaveRespawnConfig()">
|
||||||
|
<span>2. Send /clear</span>
|
||||||
|
</label>
|
||||||
|
<label class="checkbox-inline">
|
||||||
|
<input type="checkbox" id="modalRespawnSendInit" checked onchange="app.autoSaveRespawnConfig()">
|
||||||
|
<span>3. Send /init</span>
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
|
|
||||||
<div class="form-row">
|
<div class="form-row">
|
||||||
<label>Kickstart Prompt</label>
|
<label>4. Kickstart Prompt</label>
|
||||||
<input type="text" id="modalRespawnKickstart" value="" placeholder="Optional: prompt if /init doesn't trigger work" onchange="app.autoSaveRespawnConfig()">
|
<input type="text" id="modalRespawnKickstart" value="" placeholder="Optional: prompt if /init doesn't trigger work" onchange="app.autoSaveRespawnConfig()">
|
||||||
<span class="form-hint">Sent only when /init completes but Claude stays idle</span>
|
<span class="form-hint">Sent only when /init completes but Claude stays idle</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="form-section-header">Behavior</div>
|
<div class="form-section-header">Behavior</div>
|
||||||
<div class="respawn-options-row">
|
<div class="respawn-options-row">
|
||||||
<label class="checkbox-inline">
|
|
||||||
<input type="checkbox" id="modalRespawnSendClear" checked onchange="app.autoSaveRespawnConfig()">
|
|
||||||
<span>Send /clear</span>
|
|
||||||
</label>
|
|
||||||
<label class="checkbox-inline">
|
|
||||||
<input type="checkbox" id="modalRespawnSendInit" checked onchange="app.autoSaveRespawnConfig()">
|
|
||||||
<span>Send /init</span>
|
|
||||||
</label>
|
|
||||||
<label class="checkbox-inline">
|
<label class="checkbox-inline">
|
||||||
<input type="checkbox" id="modalRespawnAutoAccept" checked onchange="app.autoSaveRespawnConfig()">
|
<input type="checkbox" id="modalRespawnAutoAccept" checked onchange="app.autoSaveRespawnConfig()">
|
||||||
<span>Auto-accept prompts</span>
|
<span>Auto-accept prompts</span>
|
||||||
|
|||||||
@@ -4112,6 +4112,8 @@ NOW: Generate the implementation plan for the task above. Think step by step.`;
|
|||||||
const controller = this.respawnControllers.get(sessionId);
|
const controller = this.respawnControllers.get(sessionId);
|
||||||
if (controller) {
|
if (controller) {
|
||||||
controller.stop();
|
controller.stop();
|
||||||
|
controller.removeAllListeners();
|
||||||
|
this.respawnControllers.delete(sessionId);
|
||||||
this.broadcast('respawn:stopped', { sessionId, reason: 'duration_expired' });
|
this.broadcast('respawn:stopped', { sessionId, reason: 'duration_expired' });
|
||||||
}
|
}
|
||||||
this.respawnTimers.delete(sessionId);
|
this.respawnTimers.delete(sessionId);
|
||||||
|
|||||||
Reference in New Issue
Block a user