Releases: vultuk/claude-code-web
v3.4.0 - Working VS Code-Style Split View
🎉 Major Improvement: Working Split View!
This release completely rewrites the split view system, replacing 1000+ lines of broken code with a clean, reliable VS Code-style implementation.
✨ New Features
VS Code-Style Split View
- 🔀 Drag any tab to the right edge of the terminal to create a side-by-side split
- 🖥️ Each split has its own independent terminal instance and WebSocket connection
- 📐 Resizable divider - drag the blue line to adjust split widths
- ⌨️ Keyboard shortcuts:
Ctrl+1/Ctrl+2- Focus left/right splitCtrl+\- Close split and return to single pane
- ❌ Close button (X) in top-right corner of right split
- 💾 Split state persists with localStorage
🗑️ Removed
- Deleted broken panes.js (1018 lines)
- Complex grid system with rows×cols causing constant bugs
- Sessions getting lost during grid rebuilds
- Panels getting stuck
- Non-functional drag and drop
- Memory leaks and orphaned connections
🐛 Fixed
- ✅ Sessions no longer get lost during split operations
- ✅ Panels can now be closed reliably
- ✅ Drag and drop works correctly
- ✅ No more orphaned terminal instances
- ✅ No more WebSocket connection leaks
- ✅ Proper cleanup when closing splits
📊 Technical Details
- Before: 1018 lines of panes.js + complex integration = constant bugs
- After: 400 lines of splits.js = clean, working implementation
- Architecture: Each split is independent with its own terminal and connection
- Compatibility: Fully backward compatible - single-pane mode unchanged
🧪 Testing
- ✅ All 12 tests passing
- ✅ No linter errors
- ✅ Tested: create split, switch sessions, close split, resize
- ✅ No console errors or warnings
Full Changelog: v3.3.0...v3.4.0
v3.3.0 - Bug Fixes and UI Improvements
What's Changed
Fixed
- Critical: Fixed syntax error in
server.jsclose() method causing improper indentation in agent session cleanup - Critical: Fixed memory leaks in all three bridge files (claude-bridge.js, codex-bridge.js, agent-bridge.js) by properly tracking and clearing kill timeouts
- Fixed race condition in
session-store.jswhere atomic rename could fail if directory was deleted between write and rename operations - Fixed duplicate signal handlers in
server.jsthat could cause double-shutdown attempts - Removed call to undefined method
clearProcessedEntriesCache()inusage-reader.js - Removed unused
sessionCacheMap variable fromusage-reader.js - Added missing test coverage for agent alias in server alias tests
- Fixed test cleanup warnings by ensuring storage directory exists before save operations
Changed
- Removed token usage top bar from UI - no longer displays real-time token statistics in the header
- Updated
applySettings()to reflect removal of token stats visibility toggle - Disabled
updateUsageDisplay()andstartSessionTimerUpdate()functions as UI elements no longer exist
Notes
- All bug fixes are backward-compatible
- Usage statistics backend code still runs but is no longer displayed in the UI
- Test suite passing: 12/12 tests
Full Changelog: v3.2.2...v3.3.0
v3.2.2 - Fix Loading Spinner Overlay Issue
Fixed
- Fixed loading spinner overlay remaining visible when showing folder browser
- Added proper overlay hiding before showing folder browser in all locations
- Resolves issue where users couldn't interact with folder browser due to stuck spinner
This patch release fixes a critical UI issue where the loading spinner would remain visible, preventing users from interacting with the folder browser on initial load.
v3.2.1: Fix cursor-agent Command Name
🔧 Critical Fix for v3.2.0
This patch release fixes the agent command name that was incorrectly set in v3.2.0.
🐛 Bug Fixes
- Fixed agent command: Changed from
claude-agenttocursor-agentin AgentBridge - Updated search paths: Now correctly searches in
~/.cursor/directory instead of~/.agent/
📦 Impact
If you installed v3.2.0, please upgrade to v3.2.1 to ensure the cursor-agent functionality works correctly.
⚡ Installation
npm install -g claude-code-web@latestFull Changelog: v3.2.0...v3.2.1
v3.2.0: Add Cursor Agent Support
🎉 Cursor Agent Support
This release adds cursor-agent as a third CLI option alongside Claude and Codex, giving you more flexibility in choosing your AI assistant.
✨ New Features
- Cursor Agent Integration: Start cursor-agent sessions with the new "Start Cursor" button
- Custom Alias Support: Use
--agent-aliasflag orAGENT_ALIASenv var to customize the display name (default: "Cursor") - Full Session Management: Complete WebSocket support with
agent_startedand `agent_stopped" events - Automatic Command Detection: Searches standard paths for cursor-agent installation
🔧 Usage
# Start with default "Cursor" alias
cc-web
# Use custom agent alias
cc-web --agent-alias "MyAgent"
# Or via environment variable
AGENT_ALIAS="MyAgent" cc-web📋 What's Changed
- Added
AgentBridgefor managing cursor-agent sessions - Added
--agent-aliasCLI flag andAGENT_ALIASenvironment variable - Added "Start Cursor" button to UI (main overlay and per-pane overlays)
- Extended session management to support three concurrent agent types
- Updated startup logs to display all three assistant aliases
⚡ Backwards Compatibility
This is a fully backwards-compatible feature addition. Existing Claude and Codex functionality remains unchanged.
🔍 Technical Details
- Agent bridge searches for
cursor-agentin standard paths (~/.cursor/local/cursor-agent,~/.local/bin/cursor-agent, etc.) - No special CLI flags required for agent (unlike Claude's
--dangerously-skip-permissionsor Codex's bypass flag) - Session state properly persists across server restarts
Full Changelog: v3.1.0...v3.2.0
v3.1.0
What's Changed
- Session tabs now maintain explicit order and MRU history for VS Code-style navigation.
- Added middle-click close, inline rename styling, and auto scroll-into-view for active tabs.
- Mobile overflow counters/menus and backend-driven tab removal are more reliable.
v3.0.4
Fixes:
- Restore VS Code-style tabs with optional panes.
- Tabs visible in tiled mode; selection targets active pane.
- Pane '+' opens session picker; Shift+click to create session.
- Replay recent output buffer when (re)joining sessions in splits.
- Remove CSS that hid tabs; panes fill width without interfering.
v3.0.3
v3.0.2
Patch release with stability fixes for tiled splits.\n\nFixes:\n- Correct split index math; insert column/row helpers\n- Reattach sessions after grid rebuilds\n- Respect copy vs move on drag; avoid removing from wrong source\n- Make edge-of-grid splits consistent\n\nSee CHANGELOG.md for details.