Commit Graph
479 Commits
Author SHA1 Message Date
arkonandClaude Opus 4.5 78eb771745 feat: add research context to CLAUDE.md for Ralph Loop awareness
- After Ralph Wizard completes, updates case CLAUDE.md with links to all research files
- Adds /init step before starting Ralph Loop tasks to load research context
- Claude now knows where to find external resources, codebase patterns, recommendations
- Research knowledge persists across respawn cycles via CLAUDE.md

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-28 00:21:55 +01:00
arkonandClaude Opus 4.5 018badd03e feat: add research agent phase to Ralph wizard
Adds a new Phase 0 research agent that runs before all other analysis agents:
- Web search for GitHub repos, documentation, tutorials
- Codebase exploration for existing patterns
- Technical recommendations and potential challenges
- Creates enriched task description for downstream agents
- Research context injected into all analysis agents via {RESEARCH_CONTEXT}
- Saves output to research/ folder with prompt.md and result.json

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-28 00:09:22 +01:00
arkon 46434ee6d0 chore: bump version to 0.1402 2026-01-27 23:15:25 +01:00
arkonandClaude Opus 4.5 de45239fb7 feat: enhanced multi-agent plan generation for Ralph wizard
- Add plan-orchestrator.ts with parallel subagent spawning
- Phase 1: 4 specialist subagents analyze in parallel (requirements, architecture, testing, risks)
- Phase 2: Synthesis merges and deduplicates outputs
- Phase 3: Verification subagent assigns priorities and identifies gaps
- New /api/generate-plan-detailed endpoint with SSE progress updates
- Auto-regenerate plan when switching between Standard/Enhanced modes
- Show quality score, warnings, and gaps from verification
- Rename "Detailed" to "Enhanced" button with tooltip

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-27 18:16:19 +01:00
arkon b3f808b5f5 chore: bump version to 0.1399 2026-01-27 18:05:03 +01:00
arkon 89a1723333 chore: bump version to 0.1398 2026-01-27 17:55:45 +01:00
arkonandClaude Opus 4.5 2e4d89496f fix: Ralph wizard uses file-based prompt to avoid screen escaping issues
- Add /api/sessions/:id/ralph-prompt/write endpoint to write prompt to @ralph_prompt.md
- Wizard now writes full prompt to file, then sends simple read command to Claude
- Fix session readiness check to wait for prompt character instead of notWorking flag
- Add E2E test infrastructure for ralph-loop workflow (port 3190)
- Add ralph-wizard-prod.mjs script for production testing

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-27 17:46:43 +01:00
arkonandClaude Opus 4.5 c4e5337480 fix: remove cpulimit, use nice only for CPU priority
cpulimit -f interfered with Claude's Ink terminal UI causing duplicate
prompt rendering. Replaced with nice-only approach.

- Remove cpulimit entirely (was causing display issues)
- Rename CpuLimitConfig -> NiceConfig for clean naming
- Simplify wrapWithCpuLimit -> wrapWithNice
- Update UI labels and settings key (cpuLimit -> nice)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-27 11:43:20 +01:00
arkonandClaude Opus 4.5 f92d009034 fix: Ralph Loop wizard screen creation and session idle detection
- Fix screen creation failing when using cpulimit/nice (env vars were passed
  as command args instead of shell variables)
- Fix session status never becoming 'idle' after startInteractive()
- Add automatic state file cleanup on startup (removes orphaned sessions)
- Add /api/cleanup-state endpoint for manual cleanup
- Make frontend session readiness check more robust (20 attempts, multiple checks)
- Add fallback to direct PTY write if writeViaScreen fails

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-27 11:02:02 +01:00
arkon 2d8597a66f chore: bump version to 0.1394 2026-01-27 02:38:37 +01:00
arkonandClaude Opus 4.5 3d52509bfe feat: add file browser panel and compact settings grid layout
- Add File Browser panel (right-side) showing project files in a tree view
  - API endpoints: /api/sessions/:id/files, /api/sessions/:id/file-content
  - Tree view with expand/collapse, filtering, file icons by type
  - File preview overlay for text, images, and video
  - Excludes common large directories (.git, node_modules, etc.)

- Refactor App Settings with compact 2-column grid layout
  - Display tab: Header Displays, Panels, Subagent Options sections
  - Notifications tab: Master Control, Alerts, Notification Levels sections
  - Smaller switches (28x16px) with tooltips instead of form hints
  - ~35% vertical space reduction

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-27 01:07:02 +01:00
arkonandClaude Opus 4.5 3ab03cfd19 feat: add @fix_plan.md integration (Phase 2.3)
API Endpoints:
- GET /api/sessions/:id/fix-plan - Generate fix plan markdown from todos
- POST /api/sessions/:id/fix-plan/import - Import todos from markdown
- POST /api/sessions/:id/fix-plan/write - Write @fix_plan.md to working dir
- POST /api/sessions/:id/fix-plan/read - Read and import from working dir

RalphTracker Methods:
- generateFixPlanMarkdown() - Creates structured markdown with priority sections
- importFixPlanMarkdown() - Parses markdown and imports todos with priorities

UI Features:
- Menu dropdown in Ralph panel (hamburger icon)
- View Fix Plan modal with copy/write buttons
- Import from file button
- Reset Circuit Breaker button
- Fix plan modal with syntax-highlighted textarea

Bump version to 0.1392

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-27 01:02:38 +01:00
arkonandClaude Opus 4.5 925ea09cca feat: add smart respawn integration and priority todos (Phase 2)
Smart Respawn Integration (2.5):
- Check circuit breaker OPEN state before respawn (blocks cycle)
- Check RALPH_STATUS EXIT_SIGNAL=true to stop respawn
- Check STATUS=BLOCKED to pause respawn for human intervention
- Use RECOMMENDATION from RALPH_STATUS in update prompt
- Emit respawn:blocked SSE event with reason and details
- Show notification when respawn is blocked
- Visual blocked state with pulsing red indicator

Priority-based Todos (part of 2.3):
- Add RalphTodoPriority type (P0/P1/P2/null)
- Parse priority from todo content (P0:, Critical:, High Priority, etc.)
- Add priority field to RalphTodoItem interface
- Update frontend to display priority badges with colors
- Sort todos by priority (P0 > P1 > P2) then by status
- Add CSS for priority badges and highlighted cards

Bump version to 0.1391

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-27 00:54:02 +01:00
arkon 59b22337a5 chore: bump version to 0.1390 2026-01-27 00:41:00 +01:00
arkonandClaude Opus 4.5 b896478ca6 fix: subagent tabs render to correct parent session after restart
- restoreSubagentWindowStates now discovers parent sessions before restoring
- closeSubagentWindow discovers parent before minimizing to prevent wrong tab
- Fixed async handling in subagent:completed event handler

chore: bump version to 0.1389

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-26 23:37:14 +01:00
arkon a0ffec7eb6 fix: exclude full terminal buffers from SSE init to prevent browser freezes
- Add getLightState() and getLightSessionsState() methods
- SSE init payload reduced from ~1.9MB to ~5KB (~400x smaller)
- Terminal buffers are fetched on-demand when switching tabs
- Fixes UI becoming unresponsive on SSE reconnect

chore: bump version to 0.1388
2026-01-26 21:27:08 +01:00
arkonandClaude Opus 4.5 035d752cfa ui: agent badge shows AGENT or AGENTS (n)
- Single agent: "AGENT"
- Multiple: "AGENTS (2)", "AGENTS (3)", etc.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-26 20:43:39 +01:00
arkonandClaude Opus 4.5 e763599bab fix: allow reopening completed subagent windows + add Agent label
- Subagent windows now always minimize instead of being removed
- restoreSubagentWindow recreates window if it was deleted
- Badge now shows "Agent 1" instead of just "1"
- Use activeSessionId as fallback parent for orphan agents

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-26 20:07:00 +01:00
arkonandClaude Opus 4.5 45332b6438 feat: parallel session creation and improved minimized agents UI
- Session creation now parallelized (3x faster for multiple tabs)
- Minimized agents badge: compact, hover-triggered, auto-hide
- Removed "Minimized Agents" header, status dots instead of text
- Click to pin dropdown open, hover for quick access

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-26 19:42:01 +01:00
arkonandClaude Opus 4.5 428556e831 refactor: extract magic numbers to named constants
Low severity code quality improvements:
- session.ts: Add timing constants (SCREEN_STARTUP_DELAY_MS, etc.)
- screen-manager.ts: Add EXEC_TIMEOUT_MS, CR_MAX_ATTEMPTS, etc.
- subagent-watcher.ts: Add display length constants
- server.ts: Add STATS_COLLECTION_INTERVAL_MS, SESSION_LIMIT_WAIT_MS, etc.
- spawn-orchestrator.ts: Add budget ratio constants
- respawn-controller.ts: Use pre-compiled ANSI_ESCAPE_PATTERN
- state-store.ts: Use ES6 import for unlinkSync instead of dynamic require
- app.js: Add notification timing constants

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-26 14:27:21 +01:00
arkonandClaude Opus 4.5 3c2e89f427 fix: address medium severity issues from code review
- Fix inconsistent null handling in state-store (use ?? instead of ||)
- Add JSON.stringify error handling with specific messages
- Add error handling for SSE init event in app.js
- Fix spawn orchestrator silent failures (add logging)
- Fix statSync race condition in subagent-watcher
- Fix unbounded _taskNumberToContent Map in ralph-tracker
- Fix YAML pattern case sensitivity in ralph-config

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-26 13:58:34 +01:00
arkonandClaude Opus 4.5 e81dc4665a fix: high severity memory leaks and bugs
- Add warningTimer to AgentContext and clean it up in cleanupAgent
- Clear all state in subagent-watcher stop() for clean restart
- Add cleanupStaleAgents() to remove completed agents older than 24h
- Delete pendingToolCalls entries after lookup to prevent memory leak
- Add FSWatcher error handlers to prevent unhandled exceptions
- Bump version to 0.1382

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-26 12:50:39 +01:00
arkonandClaude Opus 4.5 b697bcfea2 chore: bump version to 0.1381
Add web UI keyboard shortcuts to CLAUDE.md.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-26 11:10:21 +01:00
arkonandClaude Opus 4.5 32e0d6126c fix: read subagent descriptions directly from parent transcript
Instead of timing-based correlation between terminal output and subagent
files, now reads the Task tool's description parameter directly from the
parent session's transcript. This provides 100% reliable mapping between
agent IDs and their short descriptions, fixing issues where multiple
agents spawned in quick succession would get the same window title.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-26 11:06:35 +01:00
arkonandClaude Opus 4.5 cf470c9ad5 feat: use 24-hour time format for subagent activity timestamps
Bump version to 0.1379

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-26 10:46:34 +01:00
arkonandClaude Opus 4.5 f06240f4ef feat: use Task tool description for subagent window titles + auto-minimize completed
- Extract short description from TaskTracker (params.description) for subagent windows
- Correlate subagents with sessions by working directory and timing
- Auto-minimize subagent windows when agents complete
- Persist minimized/open window states to server for cross-browser sync
- Restore window states on reconnection/page reload
- New API: GET/PUT /api/subagent-window-states
- State file: ~/.claudeman/subagent-window-states.json

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-26 09:06:49 +01:00
arkonandClaude Opus 4.5 3f73a5f908 chore: remove non-functional subagent input feature
Subagents (Task tool background agents) are autonomous and cannot
receive input mid-execution. They complete and return results to
the parent session. Removed the input UI and API endpoint.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-26 04:35:50 +01:00
arkonandClaude Opus 4.5 61436f3166 chore: bump version to 0.1376
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-26 03:34:56 +01:00
arkonandClaude Opus 4.5 d7991e5738 chore: bump version to 0.1375
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-26 03:13:36 +01:00
arkonandClaude Opus 4.5 9aa5973970 fix: rock-solid idle detection in respawn controller
- Add 300-char rolling window to catch working patterns split across PTY chunks
- Check completion message BEFORE working patterns (priority fix)
- Clear rolling window on completion message (transition point)
- Increase working pattern absence threshold from 3s to 8s
- Add Session.isWorking safety check before confirming idle
- Add 20+ more working patterns (Compiling, Building, Processing, etc.)
- Make AI idle checker prompt more conservative (err toward WORKING)
- Update documentation

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-26 00:55:29 +01:00
arkonandClaude Opus 4.5 5b87a41aac chore: bump version to 0.1373
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-26 00:20:14 +01:00
arkonandClaude Opus 4.5 ac7238dff2 feat: Matrix-style subagent console with glowing green terminal
Enter the Matrix. Subagent windows now feature a full cyberpunk
terminal aesthetic:

- Deep black (#0a0a0a) background
- Phosphor green (#00ff41) text with glow effect
- Tool names pulse with neon intensity
- Timestamps in muted matrix green
- Progress lines shimmer like digital rain

Your AI agents now look like they're hacking the mainframe.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-26 00:01:34 +01:00
arkonandClaude Opus 4.5 c4b737bc15 feat: matrix-style subagent connection lines + smart window layout
Subagent windows now visually connect to their parent session tabs with
glowing matrix-green lines that pulse with life. Windows automatically
arrange in a non-overlapping grid, and each shows its origin with a
clickable "from [session]" header.

Watch your AI agents spawn and dance across the screen, tethered to
their creators by neon threads of digital consciousness.

Changes:
- Matrix green (#00ff41) connection lines with glow effect
- Smart grid positioning prevents window overlap
- Smaller default window size (420x350) for better density
- Auto-sizing activity columns for cleaner logs

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-25 23:55:53 +01:00
arkonandClaude Opus 4.5 23022b533d feat: add subagent window parent tab connection
- Show "from [session name]" header in subagent windows
- Add spawn animation from parent tab position
- Draw curved SVG connection lines from tabs to windows
- Update connection lines on drag, resize, minimize, close
- Fix API response parsing (data.data not data.subagents)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-25 23:41:59 +01:00
arkonandClaude Opus 4.5 baffd0cf4c chore: bump version to 0.1369
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-25 22:24:51 +01:00
arkonandClaude Opus 4.5 de5ee8643c feat: implement DEC mode 2026 synchronized output to reduce terminal flicker
- Server wraps SSE terminal batches with DEC 2026 sync markers
- Client extracts and strips markers, writes atomically via RAF batching
- Native terminals (WezTerm, Kitty, etc.) get full sync support
- xterm.js web gets application-layer sync via marker extraction

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-25 22:09:45 +01:00
arkonandClaude Opus 4.5 b811c8dc80 feat: add Run Summary feature for session activity tracking
Implements a "what happened while you were away" view for sessions:
- Track significant events: session start/stop, respawn cycles, state changes,
  idle/working transitions, token milestones, auto-compact/clear, Ralph
  completions, AI check results, hook events, errors/warnings
- Stats dashboard: respawn cycles, peak tokens, active/idle time, issue counts
- Timeline view with color-coded severity and emoji icons
- Filter events by type (all/errors/warnings/respawn/idle)
- State stuck detection (warns when state unchanged for 10+ minutes)

Click the chart icon on any session tab to open the Run Summary modal.

Files:
- src/run-summary.ts: RunSummaryTracker class with event tracking
- src/types.ts: RunSummary, RunSummaryEvent types
- src/web/server.ts: Integration with session/respawn events, API endpoint
- src/web/public/: Modal UI, timeline rendering, filter controls
- docs/run-summary-plan.md: Implementation plan

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-25 22:05:28 +01:00
arkonandClaude Opus 4.5 8b0577d8aa chore: bump version to 0.1366
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-25 21:32:08 +01:00
arkonandClaude Opus 4.5 ddc55b7697 fix: improve respawn action log visibility and retention
- Loosen filter to show AI check verdicts, detection confirmations
- Increase history from 20 to 50 entries
- Increase display height from 100px to 150px
- Fix subagents panel toggle icon (down when open)
- Increase subagents panel height when expanded

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-25 20:43:30 +01:00
arkonandClaude Opus 4.5 28fd933252 feat: add token usage statistics with daily tracking and stats modal
- Add TokenUsageEntry and TokenStats types for daily tracking
- Add state-store methods for recording and retrieving daily usage
- Add /api/token-stats endpoint with daily breakdown and totals
- Add token stats modal with summary cards, 7-day bar chart, and table
- Record tokens periodically (5min) and on session delete
- Make header tokens clickable to open stats modal
- Fix subagents panel toggle icon direction (down when open)
- Increase subagents panel height when expanded

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-25 20:36:04 +01:00
arkonandClaude Opus 4.5 74e8dd27dd fix: use Claude Opus pricing for cost estimation
- Input: $15/M tokens (was $3/M for Sonnet)
- Output: $75/M tokens (was $15/M for Sonnet)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-25 20:16:46 +01:00
arkonandClaude Opus 4.5 9d32fd594b feat: add token cost estimation and improve token formatting
- Format tokens: 1000k → 1m, 1450k → 1.45m, etc.
- Estimate cost using Claude Sonnet pricing ($3/M input, $15/M output)
- Show estimated cost in respawn banner and header
- More accurate than stored cost which doesn't update in interactive mode

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-25 20:12:16 +01:00
arkonandClaude Opus 4.5 4eb361f204 ui: keep action log on right side, improve detection status readability
- Revert timers row to horizontal layout (timers left, action log right)
- Make detection status text more readable:
  - Larger font (0.75rem)
  - Better contrast (--text color)
  - Semi-bold weight
  - Subtle background pill

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-25 20:02:29 +01:00
arkonandClaude Opus 4.5 40df0748c5 ui: improve respawn controller layout and filter action log noise
- Stack timers row vertically (timers on top, action log below)
- Reduce action log height to 60px since it's now full width
- Filter action log to show only important entries:
  - Commands sent to console
  - Plan-check with action taken
  - Step completions
- Skip timer starts/cancels, detection updates, ai-check status

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-25 19:59:42 +01:00
arkonandClaude Opus 4.5 c6b16bf815 fix: subagent title extraction race condition
- Add 100ms debounce for new file detection to allow content to be written
- Add subagent:updated event for retroactive description updates
- Extract description in processEntry when first user message is processed
- Add extractDescriptionFromFile helper with retry in file change handler
- Update SubagentTranscriptEntry.content type to support string | array
- Add test coverage for subagent:updated event

Fixes 43% failure rate where subagents displayed raw IDs instead of descriptions
due to race condition when files were discovered before first line was written.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-25 19:49:58 +01:00
arkonandClaude Opus 4.5 87bdd9376c ui: make Subagents panel detachable and position on right side
- Move Subagents panel to right side (same as Monitor)
- Add detach/float functionality with drag support
- Add resize handle for detached mode
- Clean up duplicate CSS
- Bump version to 0.1358

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-25 18:33:43 +01:00
arkonandClaude Opus 4.5 0d22d19645 docs: improve CLAUDE.md structure and discoverability
- Move COM shorthand to prominent position after safety warning
- Add version sync note (must match package.json)
- Consolidate Key Files into 4 logical categories
- Clarify next available test port (3128)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-25 18:09:25 +01:00
arkonandClaude Opus 4.5 8094a756c6 feat: smart title extraction for subagent descriptions
- Condenses long prompts to ~45 chars while preserving meaning
- Removes filler words (the, a, please, I need you to, etc.)
- Cuts at natural boundaries (colons, dashes, commas)
- Falls back to word-boundary truncation

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-25 17:56:31 +01:00
arkonandClaude Opus 4.5 953d9845ca fix: subagent description extraction for JSONL format
The JSONL files have message.content as a direct string, not an array
of content blocks. Now handles both formats correctly.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-25 17:51:59 +01:00
arkonandClaude Opus 4.5 74bcede607 ui: add double-click to open subagent tracking window
Double-click on subagent items in the Subagents tab to open
the floating tracking window. Includes tooltip hint.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-25 17:47:44 +01:00