Commit Graph
116 Commits
Author SHA1 Message Date
arkon ea81d94173 chore: bump version to 0.1440 2026-01-30 18:01:07 +01:00
arkon b520ce44e5 chore: bump version to 0.1439 2026-01-30 17:50:02 +01:00
arkon 5b6dd078f1 chore: bump version to 0.1438 2026-01-30 17:20:53 +01:00
arkon f4612278ef chore: bump version to 0.1437 2026-01-30 14:14:45 +01:00
arkon 0020ae5a3e chore: bump version to 0.1436 2026-01-30 11:39:15 +01:00
arkon 1fb06ecf47 chore: bump version to 0.1435 2026-01-30 11:32:23 +01:00
arkon 7dfd97df58 chore: bump version to 0.1434 2026-01-30 11:30:51 +01:00
arkon da5d86a84f chore: bump version to 0.1433 2026-01-29 16:13:18 +01:00
arkonandClaude Opus 4.5 b13b725bd8 fix: robust agent-to-tab connection lines with persistent parent tracking
- Add --session-id flag to Claude CLI startup so Claudeman and Claude share the same session ID
- Set claudeSessionId immediately on session start (no waiting for JSON messages)
- Add persistent subagentParentMap to store agent-to-tab associations permanently
- Add /api/subagent-parents endpoints for server-side persistence
- Add fallback: use active session when claudeSessionId matching fails
- Connection lines now reliably connect agent windows to their parent tabs
- Survives page refresh, reconnect, and server restart

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 14:56:11 +01:00
arkon 7b866c1998 chore: bump version to 0.1431 2026-01-29 13:22:02 +01:00
arkonandClaude Opus 4.5 8ed1c218f4 fix: remove stats cards from Summary tab
Remove Respawn Cycles, Tokens Used, Active Time, Issues stats
that cluttered the Summary tab.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 13:03:17 +01:00
arkonandClaude Opus 4.5 6b101ba919 fix: simplify respawn tab in session options
Remove advanced options (After Update Prompt, Kickstart, Auto-Accept)
to reduce clutter. Defaults preserved via hidden inputs.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 12:59:42 +01:00
arkonandClaude Opus 4.5 e92ae7c3ce fix: improve tab close button usability
- Change cursor to default arrow when hovering close button
- Increase clickable area with more padding
- Add subtle background highlight on hover

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 12:49:44 +01:00
arkonandClaude Opus 4.5 db20f4f63d chore: bump version to 0.1427
- Remove TUI from git (moved to .gitignore for local development)
- Remove React/Ink dependencies (unused in published version)
- Remove tui command from CLI

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 12:47:23 +01:00
arkonandClaude Opus 4.5 a73f7c3a4f fix: prevent stale subagent data from showing in windows
- Reduce getRecentSubagents window from 60 to 15 minutes
- Skip old/completed agents when restoring window states (10 min cutoff)
- Clear old activity data when new agent with same ID is discovered
- Force close existing window for agentId before opening fresh one

Fixes issue where old prompts/input from previous Ralph Loop runs
were displayed when clicking on subagent windows.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 12:04:14 +01:00
arkonandClaude Opus 4.5 5c2d985dce chore: bump version to 0.1425
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 11:49:00 +01:00
arkonandClaude Opus 4.5 d040722d1d docs: clarify HTTP is fine for localhost, HTTPS only for remote
Localhost is treated as a secure context by browsers, so notifications
and all browser APIs work without HTTPS. Updated README, CLI help,
install script, and systemd service to default to HTTP.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 11:47:24 +01:00
arkonandClaude Opus 4.5 c667e0baac fix: match subagents to sessions by claudeSessionId instead of newest heuristic
When multiple Claudeman sessions share the same workingDir, subagents were
incorrectly attaching to the newest session instead of the actual parent.
Now uses direct claudeSessionId matching for reliable parent detection.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 11:39:12 +01:00
arkon ed2a2323f8 chore: bump version to 0.1422 2026-01-29 11:27:44 +01:00
arkon 662a2418a0 chore: bump version to 0.1421 2026-01-29 11:19:01 +01:00
arkon e8b688d24f chore: bump version to 0.1420 2026-01-29 11:11:55 +01:00
arkon f7c884ecff chore: bump version to 0.1419 2026-01-29 11:06:22 +01:00
arkonandClaude Opus 4.5 6c07541288 refactor: consolidate shared regex patterns and token validation
- Create src/utils/regex-patterns.ts with ANSI_ESCAPE_PATTERN_FULL,
  ANSI_ESCAPE_PATTERN_SIMPLE, TOKEN_PATTERN, and helper functions
- Create src/utils/token-validation.ts with MAX_SESSION_TOKENS and
  validation utilities
- Update session.ts, respawn-controller.ts, ai-checker-base.ts,
  ralph-tracker.ts, state-store.ts to use shared utilities
- Export all new utilities from src/utils/index.ts

Reduces code duplication while maintaining pre-compiled patterns
for performance.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 10:55:49 +01:00
arkon e0a695fed7 chore: bump version to 0.1417 2026-01-28 07:18:45 +01:00
arkonandClaude Opus 4.5 55e9f9f0a5 feat(execution): add ExecutionBridge for parallel task execution
Implements the Execution Optimizer Rework plan that enables the system
to actually use the optimizer metadata (parallelGroups, agentType,
recommendedModel, requiresFreshContext, estimatedTokens) that was
previously generated but ignored.

New components:
- ExecutionBridge: Central coordinator that loads optimized plans,
  manages parallel execution within groups, and coordinates with
  SpawnOrchestrator for session-based execution
- ModelSelector: Routes tasks to appropriate models (opus/sonnet/haiku)
  based on user defaults and agent type overrides. Optimizer
  recommendations are advisory only - user preferences always win
- GroupScheduler: Builds topologically ordered execution groups,
  manages dependencies, determines execution mode (session vs task-tool)
- ContextManager: Handles fresh context requirements via /clear+/init
  or new session spawning

Features:
- Parallel task execution within groups (configurable limit)
- Group-level dependency tracking (lower groups complete first)
- Partial failure handling (continue with non-dependent tasks)
- Model configuration in App Settings > Models tab
- Agent type overrides (explore, implement, test, review)
- Execution control API endpoints (start, pause, resume, cancel)
- SSE events for real-time execution progress visibility
- Execution history tracking

API endpoints:
- GET/POST/PUT /api/execution/* for execution control
- GET/PUT /api/execution/model-config for model settings

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-28 07:07:18 +01:00
arkonandClaude Opus 4.5 9eccd061b9 fix(orchestrator): pass enriched task description to all subagents
Verification, execution optimizer, and final review agents were receiving
the raw taskDescription instead of effectiveTaskDescription (which includes
research context). This caused them to work with outdated/wrong prompts
when regenerating plans.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-28 06:19:03 +01:00
arkonandClaude Opus 4.5 c17dc57fd9 feat(wizard): add minimize button and network retry for Ralph wizard
- Add minimize button to Ralph wizard modal header
- Minimized indicator shows at bottom of screen with elapsed time
- Click indicator to restore wizard
- Add retry logic (3 attempts with exponential backoff) for plan generation
- Shows "Connection lost, retrying..." message during retries

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-28 06:03:48 +01:00
arkonandClaude Opus 4.5 e60ef9a931 fix(respawn): preserve respawn state when session is renamed
Session updates (like renaming) were broadcasting toDetailedState() which
doesn't include respawn controller state. The frontend would then overwrite
the session object, losing respawnEnabled/respawnConfig/respawn fields.

Added getSessionStateWithRespawn() helper that includes respawn controller
state in all session:updated broadcasts.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-28 05:56:39 +01:00
arkonandClaude Opus 4.5 077e296750 fix(session): prevent isWorking flag from getting stuck true
- Add _awaitingIdleConfirmation flag to prevent status bar redraws from
  resetting the 2-second idle detection timeout
- Strip ANSI/OSC escape sequences before checking working patterns to
  avoid false positives from window titles like '3 File Reading Task'
- Reset _awaitingIdleConfirmation on PTY exit for proper cleanup

chore: bump version to 0.1412

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-28 05:34:25 +01:00
arkon 0a928144da chore: bump version to 0.1411 2026-01-28 04:17:14 +01:00
arkon 38c36502ec chore: bump version to 0.1410 2026-01-28 04:04:40 +01:00
arkonandClaude Opus 4.5 beb4242c74 feat(ralph-wizard): add auto-start option and improve /init timing
- Research agent now explores local project first (CLAUDE.md priority)
- Added {WORKING_DIR} placeholder to research prompt
- New "Auto-Start After Plan" checkbox in advanced options
- Increased /init timeout from 10s to 3 minutes
- Added 3s delay after /init completes for stability

chore: bump version to 0.1409

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-28 03:33:41 +01:00
arkonandClaude Opus 4.5 d3690a963f refactor(prompts): extract plan orchestrator prompts to separate files
Each prompt now lives in its own file under src/prompts/ for easier
editing and iteration. Includes index.ts for convenient re-exports.

chore: bump version to 0.1408

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-28 03:08:18 +01:00
arkonandClaude Opus 4.5 78c4912dcc fix(image-watcher): detect images in subdirectories
Removed depth:0 restriction so images saved in src/, assets/, etc.
are detected. Added filtering for node_modules, .git, dist, .next
for performance.

chore: bump version to 0.1407

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-28 02:43:18 +01:00
arkonandClaude Opus 4.5 f1058daa2c feat(image-popup): add auto-popup for detected screenshots and images
Implements image file watching in session working directories with
automatic popup display in the web UI:

- Add ImageWatcher class using chokidar for cross-platform file watching
- Add ImageDetectedEvent type for SSE broadcasting
- Integrate with session lifecycle (watch on create, unwatch on delete)
- Add image:detected SSE event handler in frontend
- Create draggable image popup window with open-in-new-tab support
- Add CSS styling with compact wizard layout

Supports: png, jpg, jpeg, gif, webp, bmp, svg

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-28 02:31:58 +01:00
arkon 24e8ebc9ea chore: bump version to 0.1406 2026-01-28 01:25:25 +01:00
arkonandClaude Opus 4.5 8c75dcdebc fix: wizard open detection for plan subagent windows
- Changed wizard modal detection from checking non-existent 'hidden' class
  and inline style.display to correctly checking for '.active' class
- This fixes plan subagent windows not appearing during Ralph wizard
  plan generation
- Also fixes connection lines between wizard, plan agents, and subagents

chore: bump version to 0.1405

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-28 00:45:37 +01:00
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