diff --git a/CLAUDE.md b/CLAUDE.md index 9636a57d..3e07e25c 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -35,7 +35,7 @@ When user says "COM": 1. Increment version in BOTH `package.json` AND `CLAUDE.md` (verify they match with `grep version package.json && grep Version 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` -**Version**: 0.1522 (must match `package.json` for npm publish) +**Version**: 0.1523 (must match `package.json` for npm publish) ## Project Overview diff --git a/package.json b/package.json index 284d169b..4b9fb4e1 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "claudeman", - "version": "0.1522", + "version": "0.1523", "description": "The missing control plane for Claude Code - run 20 autonomous agents with real-time monitoring and session persistence", "type": "module", "main": "dist/index.js", diff --git a/src/web/public/app.js b/src/web/public/app.js index 14e3ea50..eda7a40e 100644 --- a/src/web/public/app.js +++ b/src/web/public/app.js @@ -46,48 +46,67 @@ const DEC_SYNC_STRIP_RE = /\x1b\[\?2026[hl]/g; // Built-in respawn configuration presets const BUILTIN_RESPAWN_PRESETS = [ { - id: 'quick-iteration', - name: 'Quick Iteration', - description: 'Fast cycles for active development', + id: 'solo-work', + name: 'Solo', + description: 'Claude working alone — fast respawn cycles', config: { idleTimeoutMs: 3000, updatePrompt: 'continue', interStepDelayMs: 2000, sendClear: false, sendInit: false, + autoAcceptPrompts: true, }, durationMinutes: 60, builtIn: true, createdAt: 0, }, { - id: 'autonomous-long', - name: 'Autonomous (Long)', - description: 'Full refresh cycles for overnight work', + id: 'subagent-workflow', + name: 'Subagents', + description: 'Lead session with Task tool subagents — longer idle tolerance', config: { - idleTimeoutMs: 5000, - updatePrompt: 'continue working on the task', + idleTimeoutMs: 45000, + updatePrompt: 'check on your running subagents and continue coordinating their work. If all subagents have finished, summarize their results and proceed with the next step.', interStepDelayMs: 3000, - sendClear: true, - sendInit: true, - kickstartPrompt: 'pick up where you left off', + sendClear: false, + sendInit: false, + autoAcceptPrompts: true, + }, + durationMinutes: 240, + builtIn: true, + createdAt: 0, + }, + { + id: 'team-lead', + name: 'Team', + description: 'Leading an agent team via TeamCreate — tolerates long silences', + config: { + idleTimeoutMs: 90000, + updatePrompt: 'check on your teammates by reviewing the task list and any messages in your inbox. Assign new tasks if teammates are idle, or continue coordinating the team effort.', + interStepDelayMs: 5000, + sendClear: false, + sendInit: false, + autoAcceptPrompts: true, }, durationMinutes: 480, builtIn: true, createdAt: 0, }, { - id: 'careful-review', - name: 'Careful Review', - description: 'Longer pauses for human review between cycles', + id: 'overnight-autonomous', + name: 'Overnight', + description: 'Unattended overnight runs with full context reset between cycles', config: { - idleTimeoutMs: 30000, - updatePrompt: 'continue if there is more work to do', - interStepDelayMs: 5000, - sendClear: false, - sendInit: false, + idleTimeoutMs: 10000, + updatePrompt: 'summarize what you accomplished so far and write key progress notes to CLAUDE.md, then continue working on the task.', + interStepDelayMs: 3000, + sendClear: true, + sendInit: true, + kickstartPrompt: 'read CLAUDE.md for context on what was accomplished in previous cycles, then pick up where you left off.', + autoAcceptPrompts: true, }, - durationMinutes: 120, + durationMinutes: 480, builtIn: true, createdAt: 0, }, @@ -8552,6 +8571,7 @@ class ClaudemanApp { document.getElementById('modalRespawnSendClear').checked = preset.config.sendClear ?? false; document.getElementById('modalRespawnSendInit').checked = preset.config.sendInit ?? false; document.getElementById('modalRespawnKickstart').value = preset.config.kickstartPrompt || ''; + document.getElementById('modalRespawnAutoAccept').checked = preset.config.autoAcceptPrompts ?? true; // Set duration if available if (preset.durationMinutes) { diff --git a/src/web/public/index.html b/src/web/public/index.html index 30809a60..c1a4c86c 100644 --- a/src/web/public/index.html +++ b/src/web/public/index.html @@ -511,7 +511,7 @@