- README.md: Update API endpoints to /ralph-state and /ralph-config
- ralph-wiggum-guide.md: Update class names (RalphTracker, RalphLoopState),
file paths (ralph-tracker.ts), SSE events (session:ralphLoopUpdate), and
API endpoints throughout
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Rename inner-loop-tracker.ts → ralph-tracker.ts throughout codebase
- Add ralph-config.ts for parsing .claude/ralph-loop.local.md config
- Standardize API error responses using createErrorResponse()
- Add input validation for auto-compact/auto-clear thresholds
- Update UI labels to "Ralph / Todo Tracker" consistently
- Add 46 integration tests for Ralph tracking functionality
- Update test badge to 438 total tests
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Extract <promise>PHRASE</promise> from CLAUDE.md on session start
- Configure inner loop tracker before first broadcast so UI shows phrase immediately
- More lenient bare phrase detection (triggers when loop is active)
- Auto-detect on session restoration from screens
- Add logging for auto-detection debugging
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add PersistedRespawnConfig type and respawnConfig field to ScreenSession
- Add innerLoopEnabled field to ScreenSession for Ralph Wiggum tracking
- Add updateRespawnConfig, clearRespawnConfig, updateInnerLoopEnabled methods to ScreenManager
- Save respawn config when enabled/updated via API endpoints
- Save inner loop enabled state when changed via API
- Restore respawn controllers and inner loop state on server startup
This ensures respawn continues working after claudeman restarts.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
After sending /clear, if no prompt indicator is detected within 10 seconds,
proceed to send /init anyway. This fixes respawn getting stuck when Claude
doesn't show the expected prompt characters after /clear completes.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add validation for input parameter in /input endpoint
- Add validation for cols/rows as positive integers in /resize endpoint
- Use standardized error responses with ApiErrorCode
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Internal Claude Code development files are not needed in the public repo.
Files remain locally but are now gitignored.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Remove E2E Testing and Optimization Status sections that reference
internal .claude/ files not intended for public distribution.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- "Autonomous Claude Code work while you sleep"
- "Track and Monitor Claude Code sessions better than ever"
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Make Claudeman title larger (52px, bold)
- "Autonomous work while you sleep" as main subtitle (h2)
- "Track Claude Code Sessions Better Than Ever" as smaller text
- "Persistent sessions. Ralph Loop tracking. Respawn agents." as tagline
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Remove robot emoji from title
- Create SVG image with Claudeman text in #60a5fa color
- Use SVG for consistent color display on GitHub
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Replace main-interface.png with claude-overview.png
- Add color styling to Claudeman title (#60a5fa)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add screenshot of completed Ralph loop (9/9 tasks, 100%)
- Add screenshot of in-progress tracking (4/9 tasks, 44%)
- Update README with new Ralph Wiggum tracking screenshots
- Show realistic task tracking: TypeScript types, validation,
JSDoc, unit tests, and barrel file creation
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Persistent Screen Sessions
- Respawn Controller (autonomous work while you sleep)
- Ralph Wiggum Loop Tracking
- Smart Token Management
- Multi-Session Dashboard
Removed problem/solution framing, now focused purely on features.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Uses the same blue (#1e3a5f, #3b82f6) and green (#22c55e) colors
from the web interface for consistent branding.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Complete README rewrite with better visual hierarchy
- New tagline: "Track Claude Code Sessions Better Than Ever"
- Emphasize Respawn Controller as key feature for autonomous work
- Add ASCII art diagrams for architecture and token lifecycle
- Add feature comparison tables
- Include Ralph Wiggum loop screenshot
- Add comprehensive API reference section
- Improve Quick Start section with clear prerequisites
- Add FAQ section
- Remove TUI references (feature not ready)
- Update GitHub clone URL
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add isError() type guard to check if value is Error instance
- Add getErrorMessage() utility for safe error message extraction
in catch blocks (handles TypeScript 4.4+ unknown error type)
- Replace all (err as Error).message patterns with getErrorMessage(err)
across server.ts, cli.ts, ralph-loop.ts, and screen-manager.ts
- Follows TypeScript best practice of treating caught errors as unknown
This improves code safety by properly handling the case where caught
values may not be Error instances (e.g., thrown strings or objects).
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Save selected case to settings when changed, created, or linked.
Automatically restore last used case on page load.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Add disableAutoEnable mechanism to InnerLoopTracker that prevents
pattern-based activation when the user has explicitly disabled the
Ralph tracker in settings.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add tabbed "Add Case" modal with "Create New" and "Link Existing" tabs
- Add POST /api/cases/link endpoint to register existing folders
- Store linked cases in ~/.claudeman/linked-cases.json
- Update GET /api/cases to include linked cases
- Add instance count controls (+/-) for Run Shell button
- Update welcome message to explain instance count selector
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add instance count controls (+/- buttons) for Run Shell
- Update runShell() to support launching multiple shell sessions
- Update welcome message to explain persistent GNU Screen sessions
- Add "Instance count" tooltips to both Claude and Shell controls
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add tabbed interface to App Settings modal (Display, Claude CLI, Paths)
- Add modal-lg class for wider settings modal (520px)
- Remove "(will be created)" text from empty case display
- Make Run Claude button text bolder (font-weight: 700)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add getFullScreenId() to get PID.screenName format for unambiguous attach
- Update DirectAttach.ts and index.tsx to use full screen IDs
- Remove TUI documentation from README (still in development)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add killAllScreensAndClaude() function to useSessionManager
- Kills all tracked sessions, orphan claudeman screens, and Claude CLI processes
- Press 'D' (Shift+d) in sessions view to trigger
- Update HelpOverlay with new shortcut documentation
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add state store flush on shutdown to prevent data loss from debounced saves
- Add error handling in session exit handler to ensure cleanup always runs
- Add 5s timeout to all TUI execSync calls to prevent hangs
- Cache screen -ls output with 100ms TTL (90% reduction in execSync calls)
- Add token pre-check to skip expensive regex when "token" not in data
Based on findings from security, performance, and reliability analysis.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
TUI now checks if web server is running on startup and offers to start
it in the background. Added new CLI options: --with-web (auto-start),
--no-web (skip check), -p (port).
TUI feature parity with web interface:
- Shell mode: press 'h' in cases view to start bash instead of Claude
- Multi-start: press 'm' to start 1-20 sessions at once
- Respawn toggle: Ctrl+R to enable/disable respawn on Claude sessions
- Session rename: API support via useSessionManager hook
Security fixes from previous analysis:
- Command injection prevention in screen-manager.ts
- Path traversal protection in server.ts
- Input validation for shell-interpolated values
Also fixes memory leak in session.ts (timer tracking) and flaky test
timeout in session-cleanup.test.ts.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Add @fileoverview documentation to:
- src/index.ts - CLI entry point
- src/cli.ts - Command definitions
- src/templates/claude-md.ts - Template generation with function docs
- src/web/server.ts - Web server and API
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Adds 16 tests covering:
- Default template generation with case name and description
- Date placeholder replacement
- Claudeman environment section inclusion
- Work principles and TodoWrite guidance
- Ralph Wiggum Loop section
- Custom template loading and fallback behavior
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Update README badge from 339 to 355 passing tests
- Add templates to unit test list in test port allocation
- Update typecheck command to use npm script
- Add TUI components to key files table
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add 10 tests for types.ts helper functions
- Test createErrorResponse with all error codes
- Test createSuccessResponse with and without data
- Test createInitialInnerLoopState defaults
- Test createInitialInnerSessionState structure
- Test createInitialState with Ralph Loop and config
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>