diff --git a/CLAUDE.md b/CLAUDE.md index dca8c62b..ad383744 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -21,7 +21,7 @@ When user says "COM": 1) Increment version in BOTH `package.json` AND `CLAUDE.md Claudeman is a Claude Code session manager with a web interface and autonomous Ralph Loop. It spawns Claude CLI processes via PTY, streams output in real-time via SSE, and supports scheduled/timed runs. -**Version**: 0.1368 (must match `package.json`) +**Version**: 0.1369 (must match `package.json`) **Tech Stack**: TypeScript (ES2022/NodeNext, strict mode), Node.js, Fastify, Server-Sent Events, node-pty diff --git a/package.json b/package.json index 56002fc9..3e34fce9 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "claudeman", - "version": "0.1368", + "version": "0.1369", "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/respawn-fixes.md b/respawn-fixes.md index afdad37c..5c3c02c0 100644 --- a/respawn-fixes.md +++ b/respawn-fixes.md @@ -4,14 +4,3 @@ ## Fixes - -### Fix for Issue #1 -**Enable respawn controller** - -Via API: -```bash -curl -sk -X POST 'https://localhost:3000/api/sessions/5ecdf859-3605-42d8-b0a2-f8f0a1b5ff98/respawn/enable' -``` - -Or via web UI: Open session tab -> Respawn panel -> Enable - diff --git a/respawn-issues.md b/respawn-issues.md index 98491c03..7e5c395f 100644 --- a/respawn-issues.md +++ b/respawn-issues.md @@ -1,13 +1,7 @@ # Respawn Controller Issues - w3-reddit-analyse -Monitoring started: Sun Jan 25 09:40:47 PM CET 2026 +Monitoring started: Sun Jan 25 10:21:10 PM CET 2026 Session ID: 5ecdf859-3605-42d8-b0a2-f8f0a1b5ff98 ## Issues Detected - -### Issue #1 [INFO] - 2026-01-25 21:40:48 -**Respawn controller not enabled** - -Respawn is currently disabled for this session. State: null - diff --git a/respawn-monitor.sh b/respawn-monitor.sh index 02b63f99..18c49ea0 100755 --- a/respawn-monitor.sh +++ b/respawn-monitor.sh @@ -94,23 +94,30 @@ while [ $(date +%s) -lt $END_TIME ]; do # Parse response STATUS=$(echo "$RESPONSE" | jq -r '.status // "unknown"') - RESPAWN_ENABLED=$(echo "$RESPONSE" | jq -r '.respawnEnabled // "null"') - RESPAWN_STATE=$(echo "$RESPONSE" | jq -r '.respawnState // "null"') INPUT_TOKENS=$(echo "$RESPONSE" | jq -r '.inputTokens // 0') OUTPUT_TOKENS=$(echo "$RESPONSE" | jq -r '.outputTokens // 0') TOTAL_TOKENS=$((INPUT_TOKENS + OUTPUT_TOKENS)) - # Fetch respawn controller details if enabled + # Always fetch respawn controller details from dedicated endpoint + RESPAWN_DETAILS=$(curl -sk "$API_BASE/api/sessions/$SESSION_ID/respawn" 2>/dev/null) + RESPAWN_ENABLED=$(echo "$RESPAWN_DETAILS" | jq -r '.enabled // false') + RESPAWN_STATE=$(echo "$RESPAWN_DETAILS" | jq -r '.state // "null"') + + # Fetch detailed detection status if enabled if [ "$RESPAWN_ENABLED" = "true" ]; then - RESPAWN_DETAILS=$(curl -sk "$API_BASE/api/sessions/$SESSION_ID/respawn/status" 2>/dev/null) - RESPAWN_STATE=$(echo "$RESPAWN_DETAILS" | jq -r '.state // "unknown"') - DETECTION_STATUS=$(echo "$RESPAWN_DETAILS" | jq -r '.detectionStatus // {}') - IDLE_CONFIDENCE=$(echo "$DETECTION_STATUS" | jq -r '.idleConfidence // 0') - TIME_IN_STATE=$(echo "$RESPAWN_DETAILS" | jq -r '.timeInState // 0') - LAST_ERROR=$(echo "$RESPAWN_DETAILS" | jq -r '.lastError // "none"') + DETECTION_STATUS=$(echo "$RESPAWN_DETAILS" | jq -c '.detection // {}') + IDLE_CONFIDENCE=$(echo "$DETECTION_STATUS" | jq -r '.confidenceLevel // 0') + CYCLE_COUNT=$(echo "$RESPAWN_DETAILS" | jq -r '.cycleCount // 0') + LAST_ACTIVITY=$(echo "$RESPAWN_DETAILS" | jq -r '.lastActivityTime // 0') + TIME_SINCE_ACTIVITY=$(echo "$RESPAWN_DETAILS" | jq -r '.timeSinceActivity // 0') + STATUS_TEXT=$(echo "$DETECTION_STATUS" | jq -r '.statusText // "unknown"') + WAITING_FOR=$(echo "$DETECTION_STATUS" | jq -r '.waitingFor // "unknown"') + AI_CHECK_STATUS=$(echo "$DETECTION_STATUS" | jq -r '.aiCheck.status // "unknown"') + AI_LAST_VERDICT=$(echo "$DETECTION_STATUS" | jq -r '.aiCheck.lastVerdict // "none"') + LAST_ERROR="none" # Respawn controller doesn't expose lastError directly fi - echo "[$TIMESTAMP] status=$STATUS respawn=$RESPAWN_ENABLED state=$RESPAWN_STATE tokens=$TOTAL_TOKENS" >> "$LOG_FILE" + echo "[$TIMESTAMP] status=$STATUS respawn=$RESPAWN_ENABLED state=$RESPAWN_STATE cycle=$CYCLE_COUNT confidence=$IDLE_CONFIDENCE tokens=$TOTAL_TOKENS" >> "$LOG_FILE" # Check 1: Respawn not enabled when it should be if [ "$RESPAWN_ENABLED" = "null" ] || [ "$RESPAWN_ENABLED" = "false" ]; then @@ -135,7 +142,7 @@ Or via web UI: Open session tab -> Respawn panel -> Enable" if [ $STATE_STUCK_COUNT -ge 20 ]; then STUCK_MINS=$((STATE_STUCK_COUNT * POLL_INTERVAL / 60)) log_issue "WARNING" "State stuck: $RESPAWN_STATE for ${STUCK_MINS}+ minutes" "The respawn controller has been in '$RESPAWN_STATE' state for over $STUCK_MINS minutes. -Time in state: ${TIME_IN_STATE}ms +Time since activity: ${TIME_SINCE_ACTIVITY}ms Detection status: $DETECTION_STATUS" case "$RESPAWN_STATE" in