Commit Graph
429 Commits
Author SHA1 Message Date
arkonandClaude Opus 4.5 59b406f73f feat: add CPU limiting and Ralph Loop wizard plan generation
CPU Limiting:
- Add CpuLimitConfig type and settings in App Settings
- Use nice command for process priority (-20 to 19)
- Optional cpulimit integration for hard CPU limits (if installed)
- Applied to new sessions via screen-manager and session modules

Ralph Loop Wizard:
- 3-step wizard: Describe → Plan → Launch
- New /api/generate-plan endpoint generates implementation steps via Claude
- Plan editor with checkboxes, priorities (P0/P1/P2), reordering
- Skip plan option for manual workflows
- Compact wizard modal layout

UI Updates:
- Form section headers for grouped settings
- CPU limit status indicator (cpulimit availability)
- Wizard modal wider layout and inline fields

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-27 01:58:14 +01:00
arkonandClaude Opus 4.5 7cb7bc96e9 fix: subagent window parent attachment and stale name after rename
Bug 1 - Wrong parent attachment with same workingDir:
- Rewrote findParentSessionForSubagent() with two-strategy approach
- Strategy 1: Sibling matching - check if another subagent with same
  Claude sessionId already has a parent assigned, use that
- Strategy 2: Heuristic fallback - if multiple sessions match by
  workingDir, prefer the most recently created session
- Removes bias toward active session that caused wrong attachment

Bug 2 - Stale parentSessionName after rename:
- Added updateSubagentParentNames() method to refresh cached names
- Called from session:updated SSE handler when session changes
- Updates both the agent object and window header DOM element
- Refreshes connection lines after name updates

Also includes unrelated plan generation wizard changes that were
already staged in app.js.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-27 01:23:12 +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 11d4666d19 feat: add RALPH_STATUS block parsing and circuit breaker pattern
Phase 1 Ralph enhancement implementation:
- Parse RALPH_STATUS blocks from Claude output (status, tasks, files, tests)
- Circuit breaker state machine (CLOSED → HALF_OPEN → OPEN) for stuck detection
- Dual-condition exit gate (completion indicators >= 2 AND EXIT_SIGNAL)
- Frontend: circuit breaker badge (yellow warning, red stuck), status block display
- API: circuit breaker reset endpoint, ralph status endpoint
- Notifications when circuit breaker opens or exit gate is met

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-27 00:29:38 +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
arkonandClaude Opus 4.5 a730a295b1 fix: tab blinking for hook events persists through session:working
Implement pending hooks state machine to track hook events per session.
Tab alerts now derive from pending hooks rather than being set directly,
so session:working events don't clear alerts when prompts are still pending.

- Add pendingHooks Map to track permission_prompt, elicitation_dialog, idle_prompt
- Action hooks (permission/elicitation) take priority over idle for alert type
- hook:stop clears all pending hooks when Claude finishes responding
- selectSession() only clears idle hooks; action hooks persist until user input
- User input clears all pending hooks (they've addressed the prompt)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-26 23:00:47 +01:00
arkonandClaude Opus 4.5 cbc572593b docs: add agent visualization, run summary, and subagent API to README
- Add Live Agent Visualization section with floating windows, connection lines, status indicators
- Add Project Insights Panel section for real-time tool visibility
- Add Run Summary section for "what happened while away" feature
- Add Subagents API endpoints documentation
- Add Run Summary API endpoint
- Update architecture diagram with Subagent Watcher and Background Agents
- Update tagline to include "Visualize agents"

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-26 22:16:10 +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 47622917e6 docs: update next available test port to 3155
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-26 15:02:39 +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 fe334c2ea6 fix: improve stability with memory leak fixes and atomic writes
Session Manager:
- Store event handlers for proper cleanup on session stop
- Add resetSessionManager() for test isolation

State Store:
- Use atomic write pattern (temp file + rename) to prevent corruption
- Add tokenStats to AppState interface

Subagent Watcher:
- Clean up pendingToolCalls on agent completion
- Add cleanupStaleAgents() for 24h+ old agents
- Clear all state maps on stop() for clean restart

Web Server:
- Remove listeners from transcript watcher before stopping
- Clean up respawn timers when session is deleted
- Use cleanupSession() in spawn orchestrator for proper resource cleanup

Frontend:
- Close existing EventSource before reconnecting to prevent duplicates
- Close failed connection before scheduling reconnect

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-26 12:35:00 +01:00
arkonandClaude Opus 4.5 6e4564abd1 fix: add validation to prevent token counter corruption
- Add max 500k tokens per session limit (Claude's context is ~200k)
- Add max 100k tokens per update to prevent sudden jumps from parsing errors
- Reject "M" suffix values > 0.5M to prevent false matches in output text
- Add validation to restoreTokens() to reject corrupted values from state.json
- Add validation to addToGlobalStats() for negative and absurd values
- Fix daily sessions count: track unique session IDs instead of incrementing
  on every 5-minute recording interval
- Pass sessionId to recordDailyUsage() for accurate session counting

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-26 12:22:05 +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 1c9a7dc077 chore: remove temporary respawn monitoring files
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-26 10:51:55 +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 fc940e153b fix: correct Task tool description extraction for subagent window titles
- Add parseTaskDescriptionsFromTerminalData() to parse raw terminal data in
  interactive sessions (not just one-shot mode)
- Strip ANSI codes before regex matching since terminal output has embedded
  codes like [1mExplore[0m
- Fix getTaskDescriptionForSubagent() to check ALL sessions with matching
  project hash (not just the first one found) since multiple sessions can
  share the same working directory
- Add tool_result event forwarding for subagent SSE broadcasts

The pattern Explore(Description) in terminal output is now correctly parsed
and used as the subagent window title instead of extracting from the prompt.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-26 10:42:04 +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 f95ffd12e2 chore: remove stale respawn monitoring files
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-26 08:43:48 +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 6187444118 fix: improve file-link-click tests with proper assertions and error handling
- Add unit tests for file path pattern matching (cmdPattern, extPattern, bashPattern)
- Add tests for invalid/unsafe path rejection
- Fix streaming test to create session when browser tests are skipped
- Fix SSE assertion: 'event:' → 'data:' (correct SSE format)
- Fix API response access: data.session.id → data.sessionId
- Improve error handling: re-throw errors after cleanup instead of swallowing

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-26 04:35:14 +01:00
arkonandClaude Opus 4.5 7b2440a49d fix: improve install scripts robustness and edge cases
install.sh:
- Fix NodeSource GPG key overwrite issue (rm before dearmor)
- Fix systemd ExecStart missing node binary prefix
- Add SUSE/openSUSE support (zypper-based)
- Add local changes check before git reset --hard
- Add curl/wget detection with fallback support
- Use shallow clone (--depth 1) for faster install
- Update Node.js target to v22 (current LTS)
- Add CLAUDEMAN_NODE_VERSION env var for customization
- Add run_as_root/ensure_sudo helpers for consistent privilege handling
- Add cleanup trap with helpful failure message
- Add Windows detection with WSL guidance
- Fix PATH substring check (was using grep -qx incorrectly)
- Add stdin TTY check for non-interactive piped input
- Update Claude CLI install to official curl installer
- Add armv7 architecture support (Raspberry Pi)
- Quieter apt/dnf output with -qq flags

scripts/postinstall.js:
- Fix command detection for Windows (where vs command -v)
- Add Fedora/Arch/Alpine install instructions for screen
- Add Windows/WSL guidance
- Show Claude CLI path when found
- Refactor with clear sections and helper functions

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-26 03:48:03 +01:00
arkonandClaude Opus 4.5 34e32ad999 feat: add universal install script for macOS & Linux
- Add install.sh with curl one-liner installation
- Supports macOS (Homebrew), Debian/Ubuntu (apt), Fedora (dnf), Arch (pacman), Alpine (apk)
- Auto-detects OS, architecture, and Linux distro
- Checks/installs Node.js 18+, GNU Screen, warns about Claude CLI
- Clones to ~/.claudeman/app, builds, adds to PATH
- Optional systemd service setup on Linux
- Add postinstall.js for npm install verification
- Update README with simplified installation section

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-26 03:38:26 +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 1394926e3f style: add color styling for subagent window status badges
Add idle (yellow) and completed (blue) status colors to match the
minimized robot tab styling. Also use var(--green) for active status
for consistency with dropdown badges.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-26 03:28:08 +01:00
arkonandClaude Opus 4.5 e32ba17443 fix: prevent daily token stats from re-counting restored sessions
When sessions were restored after server restart, lastRecordedTokens
was not initialized, causing the periodic token recording to treat
the entire restored token count as new usage. This inflated daily
stats by re-counting tokens on every server restart.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-26 03:13:54 +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 5ca4981ea8 fix: add 2-minute grace period for respawn after server restart
Prevents false idle detection when server is rebuilt/restarted.
Previously, restored respawn controllers would start immediately
and trigger after 30s of "no output" because the session wasn't
fully connected yet.

Now waits 2 minutes from server startup before activating restored
respawn controllers, giving sessions time to reconnect and stabilize.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-26 03:08:13 +01:00
arkonandClaude Opus 4.5 223ba078b9 fix: subagent dropdown clipped by contain:layout
The .session-tabs container has contain:layout which creates a new
containing block, breaking position:fixed on the dropdown. Fixed by
moving the dropdown to document.body when opened (portal pattern),
then moving it back when closed.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-26 02:55:19 +01:00
arkonandClaude Opus 4.5 464c4c479d fix: subagent dropdown hidden by overflow:hidden parent
The dropdown was being clipped by .session-tabs overflow-y:auto.
Changed from position:absolute to position:fixed and calculate
position dynamically in JS using getBoundingClientRect().

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-26 02:38:55 +01:00
arkonandClaude Opus 4.5 f9ffe17c3e fix: subagent dropdown hidden behind terminal
Add z-index to header so dropdown menus appear above the main
content/terminal area.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-26 02:27:12 +01:00
arkonandClaude Opus 4.5 565fc80f18 fix: compact respawn controller UI with filtered action log
- Restructure banner to 2-column layout (status left, log right)
- Row 1: state, confidence, cycles, timer, tokens
- Row 2: hook/AI check status, countdown timers (auto-hidden when empty)
- Remove ALL timer-cancel messages from action log
- Only log interesting events: commands, hooks, AI/plan verdicts
- Compact text: "✓ Idle (30s)" instead of verbose messages
- Smaller fonts and padding throughout

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-26 02:21:34 +01:00
arkonandClaude Opus 4.5 2ea3011397 feat: add setting to show subagent windows for active tab only
Adds "Subagents for Active Tab Only" toggle in App Settings → Display:
- OFF (default): windows visible regardless of active tab (original behavior)
- ON: windows only visible when their parent tab is selected

Also improves parent session detection by checking active session first,
which fixes connection lines going to wrong tabs when multiple sessions
share the same working directory.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-26 01:17:57 +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 fbecbfb7cf feat: rename Active Tools to Project Insights panel
- Rename Active Tools panel to Project Insights with updated styling
- Make panel bigger (450x350px) and resizable with drag handle
- Add settings toggle in Display tab to enable/disable panel
- Close subagent windows when parent session is killed/closed

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-26 00:15:11 +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 5e08fb5a75 fix: lazy lookup for run summary tracker in respawn listeners
The run summary tracker wasn't tracking respawn events for restored
sessions because the tracker didn't exist when setupRespawnListeners
was called during session restoration. Changed to lazy lookup so
the tracker is retrieved each time an event fires.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-25 22:28:30 +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 12d9fd4cb2 chore: add data-session-id to summary icon for future enhancements
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-25 22:17:19 +01:00