From dd9d43935dd3d9544773c20fad1d808bff0c4151 Mon Sep 17 00:00:00 2001 From: arkon Date: Tue, 17 Feb 2026 15:07:11 +0100 Subject: [PATCH] chore: bump version to 0.1523 --- CLAUDE.md | 2 +- package.json | 2 +- src/web/public/app.js | 60 ++++++++++++++++++++++++++------------- src/web/public/index.html | 4 +-- src/web/public/mobile.css | 1 + src/web/public/styles.css | 25 ++++++++++++++++ 6 files changed, 70 insertions(+), 24 deletions(-) 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 @@
Respawn Cycle
- +
@@ -527,7 +527,7 @@
- + Sent only when /init completes but Claude stays idle
diff --git a/src/web/public/mobile.css b/src/web/public/mobile.css index 292d1235..ac5066a0 100644 --- a/src/web/public/mobile.css +++ b/src/web/public/mobile.css @@ -1155,6 +1155,7 @@ html.mobile-init .file-browser-panel { .form-row input[type="text"], .form-row input[type="number"], + .form-row textarea, .form-row .form-select, .form-row select { font-size: 0.75rem; diff --git a/src/web/public/styles.css b/src/web/public/styles.css index f25c5035..e28614fe 100644 --- a/src/web/public/styles.css +++ b/src/web/public/styles.css @@ -2319,6 +2319,7 @@ body { .form-row input[type="text"], .form-row input[type="number"], +.form-row textarea, .form-select { width: 100%; padding: 0.5rem 0.75rem; @@ -2327,9 +2328,11 @@ body { border-radius: 4px; color: var(--text); font-size: 0.8rem; + font-family: inherit; } .form-row input:focus, +.form-row textarea:focus, .form-select:focus { outline: none; border-color: var(--accent); @@ -2433,12 +2436,34 @@ body { .preset-selector select { flex: 1; min-width: 0; + padding: 0.4rem 0.5rem; + background: var(--bg-input); + border: 1px solid var(--border); + border-radius: 4px; + color: var(--text); + font-size: 0.75rem; +} + +.preset-selector select:focus { + outline: none; + border-color: var(--accent); } .preset-selector .btn-sm { white-space: nowrap; padding: 4px 8px; font-size: 0.7rem; + background: var(--bg-input); + border: 1px solid var(--border); + border-radius: 4px; + color: var(--text); + cursor: pointer; + transition: all 0.15s; +} + +.preset-selector .btn-sm:hover { + background: var(--bg-hover); + border-color: var(--border-light); } /* Switch toggle for form rows */