Commit Graph
839 Commits
Author SHA1 Message Date
Ark0N 485e1d1695 Add files via upload 2026-01-21 14:54:10 +01:00
arkonandClaude Opus 4.5 d58cf15bfd docs: update screenshots for multi-session dashboard and monitor
- Add multi-session dashboard screenshot with 7 tabs (Claude + Shell)
- Add monitor panel screenshot showing screen session stats
- Simplify Ralph Wiggum section to show only in-progress tracking
- Remove unused ralph-tracker-8tasks-complete.png

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-21 14:53:29 +01:00
arkonandClaude Opus 4.5 be737bb374 docs: add Ralph tracker screenshots with 8-task demo
- 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>
2026-01-21 14:43:43 +01:00
arkonandClaude Opus 4.5 2eaa7dfed3 docs: rewrite README focused on core capabilities
- 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>
2026-01-21 14:24:21 +01:00
arkonandClaude Opus 4.5 d726d2f661 docs: update README badges to match web GUI color scheme
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>
2026-01-21 14:22:45 +01:00
arkonandClaude Opus 4.5 eb0c4aefaf chore: remove todo.md
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-21 14:21:08 +01:00
arkonandClaude Opus 4.5 f9f79af8ec docs: revamp README with improved structure and visuals
- 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>
2026-01-21 14:17:10 +01:00
arkonandClaude Opus 4.5 384350f731 feat: add type-safe error handling utilities
- 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>
2026-01-21 14:07:04 +01:00
arkonandClaude Opus 4.5 c33d6e0987 refactor: improve code quality with stricter TypeScript and memory leak prevention
- Add stricter TypeScript compiler flags (noUnusedLocals, noUnusedParameters,
  noImplicitReturns, noImplicitOverride, noFallthroughCasesInSwitch,
  allowUnreachableCode, allowUnusedLabels)
- Remove unused variables caught by stricter flags:
  - Remove unused `renameSession` destructuring in App.tsx
  - Remove unused `BG_GRAY` constant in DirectAttach.ts
  - Remove unused `INPUT_BATCH_INTERVAL` constant in useSessionManager.ts
- Add proper EventEmitter cleanup to RalphLoop:
  - Store bound event handlers for cleanup
  - Add cleanupEventHandlers() method
  - Add destroy() method for complete cleanup
  - Add destroyRalphLoop() singleton cleanup function
- Update ralph-loop tests to use destroy() instead of stop() to prevent
  MaxListenersExceededWarning

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-21 14:01:47 +01:00
arkonandClaude Opus 4.5 8b04734538 feat(ui): persist last used case selection
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>
2026-01-21 13:38:23 +01:00
arkonandClaude Opus 4.5 9801cdf591 fix: prevent Ralph tracker auto-enable when setting disabled
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>
2026-01-21 13:38:12 +01:00
arkonandClaude Opus 4.5 7b83124ecd fix(ui): simplify welcome message text styling
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-21 13:23:54 +01:00
arkonandClaude Opus 4.5 e3ea33f9de feat(ui): add link existing folder as case and improve UX
- 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>
2026-01-21 13:20:43 +01:00
arkonandClaude Opus 4.5 951d13b6e6 feat(ui): add shell instance count and improve welcome message
- 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>
2026-01-21 13:16:13 +01:00
arkonandClaude Opus 4.5 f61df0b89e feat(ui): improve settings modal with tabs and bolder Run Claude text
- 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>
2026-01-21 13:08:32 +01:00
arkonandClaude Opus 4.5 e8c30b9880 fix(tui): resolve screen attach ambiguity with multiple sessions
- 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>
2026-01-21 12:52:38 +01:00
arkonandClaude Opus 4.5 e6ba373d12 feat(tui): add Delete All (D) to kill all screens and Claude processes
- 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>
2026-01-21 10:35:35 +01:00
arkonandClaude Opus 4.5 cb4cb202b9 fix: improve reliability and performance across session management
- 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>
2026-01-21 10:05:39 +01:00
arkonandClaude Opus 4.5 d5ae376e07 feat(tui): add web server auto-start, shell mode, and feature parity
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>
2026-01-21 09:54:42 +01:00
arkonandClaude Opus 4.5 3782ec2a74 docs: add JSDoc headers to entry points and key modules
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>
2026-01-21 08:37:35 +01:00
arkonandClaude Opus 4.5 921abd42a3 test: add unit tests for CLAUDE.md template generation
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>
2026-01-21 08:36:25 +01:00
arkonandClaude Opus 4.5 d4d36c9d57 docs: update test count to 355, minor CLAUDE.md improvements
- 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>
2026-01-21 08:35:49 +01:00
arkonandClaude Opus 4.5 1cddc3345f docs: update test count to 339
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-21 07:38:31 +01:00
arkonandClaude Opus 4.5 2db50f5c61 test: add unit tests for types module utility functions
- 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>
2026-01-21 07:37:57 +01:00
arkonandClaude Opus 4.5 3e2695edb5 docs: update test count to 329
- Update README test badge
- Add state-store to CLAUDE.md unit test list

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-21 07:34:01 +01:00
arkonandClaude Opus 4.5 5f66e052e7 test: add unit tests for StateStore class
- Add 27 tests covering state persistence and retrieval
- Test debounced save behavior with fake timers
- Test session, task, and config CRUD operations
- Test Ralph Loop state management
- Test inner state operations for session tracking
- Test persistence across store instances
- Uses real file system in temp directory for integration tests

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-21 07:33:16 +01:00
arkonandClaude Opus 4.5 b662ad17b1 docs: update test documentation
- Update README test badge to 302 passing
- Add session-manager to CLAUDE.md unit test list

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-21 07:31:14 +01:00
arkonandClaude Opus 4.5 f2432a44c1 docs: add JSDoc to StateStore methods
- Add method-level documentation to all public methods
- Document save behavior (debounced vs immediate)
- Document inner state methods for Ralph Loop tracking
- Improve code readability with clear comments

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-21 07:30:33 +01:00
arkonandClaude Opus 4.5 e079151ac3 test: add unit tests for SessionManager class
- Add 29 tests covering session lifecycle management
- Test session creation, stopping, and cleanup
- Test event forwarding (output, error, completion, exit)
- Test max concurrent sessions limit
- Test session state persistence and retrieval
- Mock Session class to isolate unit tests

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-21 07:28:11 +01:00
arkonandClaude Opus 4.5 ce40f8a712 docs: update test documentation and badge
- Update README test badge to 273 passing (from 195)
- Add new unit test files to CLAUDE.md test list
  - task-queue.ts, task.ts, ralph-loop.ts

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-21 07:25:41 +01:00
arkonandClaude Opus 4.5 f27cde1e36 test: add unit tests for RalphLoop class
- Add 24 tests covering Ralph Loop lifecycle
- Test start, stop, pause, resume state transitions
- Test elapsed time tracking and min duration
- Test automatic stopping when conditions met
- Test stats reporting
- Use vi.hoisted() for mock state sharing

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-21 07:23:49 +01:00
arkonandClaude Opus 4.5 e16242d32f test: add unit tests for Task class
- Add 25 tests covering Task model functionality
- Test constructor options and ID generation
- Test lifecycle methods (assign, complete, fail, reset)
- Test completion detection with promise tags
- Test timeout handling with fake timers
- Test serialization (toDefinition, toState, fromState)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-21 07:19:49 +01:00
arkonandClaude Opus 4.5 35b0a631a6 test: add unit tests for TaskQueue class
- Add 29 tests covering all TaskQueue methods
- Test priority ordering, dependency satisfaction
- Test task lifecycle (add, update, remove)
- Test filtering methods (pending, running, completed, failed)
- Test clear operations (clearCompleted, clearFailed, clearAll)
- Mock state-store to isolate unit tests

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-21 07:18:12 +01:00
arkonandClaude Opus 4.5 5a20f85e05 docs: add JSDoc comments to ralph-loop.ts
Comprehensive documentation for RalphLoop:
- Module-level description explaining the loop concept
- Event interface documentation
- Options interface with descriptions
- Class-level lifecycle description
- Method documentation for public API

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-21 07:13:42 +01:00
arkonandClaude Opus 4.5 e60c060647 docs: add JSDoc comments to task.ts
Documentation for Task model:
- Module-level description
- CreateTaskOptions interface
- Class description with lifecycle
- Key method documentation

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-21 07:09:17 +01:00
arkonandClaude Opus 4.5 c84ef3dbf4 docs: add JSDoc comments to task-queue.ts
Comprehensive documentation for TaskQueue:
- Module-level description
- Event interface documentation
- Class-level description
- Method-level comments for all public methods
- Singleton accessor documentation

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-21 07:07:40 +01:00
arkonandClaude Opus 4.5 744f65125f docs: add comprehensive JSDoc comments to session-manager.ts
Improves documentation coverage:
- Module-level description and purpose
- SessionManagerEvents interface documentation
- Class-level @description with event types
- Method-level @param, @returns, @throws documentation
- Singleton accessor documentation

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-21 07:03:35 +01:00
arkonandClaude Opus 4.5 95da584762 chore: add npm publishing metadata to package.json
- Add repository, bugs, homepage URLs
- Add files array for npm publish

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-21 06:58:50 +01:00
arkonandClaude Opus 4.5 9ffe6c2117 docs: update test count badge to 195
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-21 06:57:09 +01:00
arkonandClaude Opus 4.5 cb2253885a docs: update TUI implementation plan status
- Mark RalphPanel as completed
- Mark skipped hooks as intentionally not implemented
- Mark all phases as complete

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-21 06:55:04 +01:00
arkonandClaude Opus 4.5 d87711279f feat(tui): add graceful exit handling with terminal restoration
- Handle SIGINT/SIGTERM signals properly
- Unmount Ink app before exit
- Restore cursor visibility and clear screen on exit
- Use try/finally to ensure cleanup runs

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-21 06:54:32 +01:00
arkonandClaude Opus 4.5 d8803e3318 refactor: remove unused imports, variables, and constants
- inner-loop-tracker.ts: Comment out unused COMPLETION_SIGNAL_PATTERN, use _id
- session.ts: Remove unused execSync import and timeout constants
- task-tracker.ts: Use _context for unused parameter
- server.ts: Remove unused FastifyRequest import

All files now pass --noUnusedLocals --noUnusedParameters check.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-21 06:51:41 +01:00
arkonandClaude Opus 4.5 881ecc0878 docs: improve README for GitHub publishing
- Update test count badge to 188 (accurate)
- Add TUI features: Ralph Loop tracking panel, respawn status
- Add npm run tui to development commands
- Create MIT LICENSE file

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-21 06:49:22 +01:00
arkonandClaude Opus 4.5 746cfb791c refactor(tui): clean up unused code and consolidate input handling
- Remove unused imports (Text, execSync, writeFileSync, React)
- Move n/r/q key handlers from App.tsx to StartScreen component
- Mark unused onClose prop in HelpOverlay with underscore prefix
- Consolidate keyboard handling in components that display the controls

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-21 06:46:11 +01:00
arkonandClaude Opus 4.5 1da51c38d8 docs: add comprehensive JSDoc comments to TUI components
Improves documentation across all TUI files:
- App.tsx: Main component with keyboard shortcuts reference
- index.tsx: Entry point with usage examples
- useSessionManager.ts: Hook with detailed API documentation
- All components: Props, returns, and behavior descriptions
- Helper functions: Parameter and return type documentation

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-21 06:44:06 +01:00
arkonandClaude Opus 4.5 c00ce747c1 chore: add npm script for TUI command
Adds 'npm run tui' as shorthand for 'tsx src/index.ts tui'

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-21 06:40:34 +01:00
arkonandClaude Opus 4.5 bd3bfced96 feat(tui): add respawn status polling and display
- Poll session API every 2 seconds for respawn status
- Display respawn state and cycle count in StatusBar
- Show respawn status in magenta to match web UI
- Format state (underscores to spaces) for readability

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-21 06:38:38 +01:00
arkonandClaude Opus 4.5 9c995d204c feat(tui): integrate RalphPanel with live state polling
- Poll inner loop state from state-inner.json every 500ms
- Display RalphPanel when loop is enabled and has data
- Auto-adjust terminal height when panel is shown
- Add innerLoopState and innerTodos to session manager hook

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-21 06:33:59 +01:00
arkonandClaude Opus 4.5 c98a86b8f4 feat(tui): add RalphPanel component for loop tracking
- Display Ralph loop status (active/idle)
- Show completion phrase, cycle count, elapsed time
- Display todo list with status icons (pending/in_progress/completed)
- Truncate long todo items, limit to 5 visible
- Use magenta border to match web UI styling

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-21 06:30:29 +01:00
arkonandClaude Opus 4.5 1bc9f8e7ed docs: add TUI documentation to README
- Document TUI command and dev mode
- List all Start Screen keyboard shortcuts
- List all Main View keyboard shortcuts
- Describe key features (real-time output, tabs, attach)
- Rename existing section to "Screen Manager Script"

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-21 06:29:11 +01:00