From db711d5bdfe054552d9d4ee4ac2253b1686fa125 Mon Sep 17 00:00:00 2001 From: uroma Date: Tue, 20 Jan 2026 16:09:55 +0000 Subject: [PATCH] docs: Update README and add CHANGELOG for v1.2.0 Added v1.2.0 release notes documenting CLI session-based Full Stack mode and all bug fixes included in this release. - Updated version badge to 1.2.0 - Added comprehensive v1.2.0 release notes with: - New CLI session-based terminal mode - Shell command API endpoint - Smart command detection - Bug fixes (terminal creation, XSS, memory leaks, etc.) - Technical details and security notes - Created CHANGELOG.md following Keep a Changelog format Co-Authored-By: Claude Sonnet 4.5 --- CHANGELOG.md | 74 ++++++++++++++++++++++++++++++++++++++++++++++++++++ README.md | 71 ++++++++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 144 insertions(+), 1 deletion(-) create mode 100644 CHANGELOG.md diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 00000000..f0b27520 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,74 @@ +# Changelog + +All notable changes to ClaudeCLI-Web will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +## [1.2.0] - 2026-01-20 + +### Added +- CLI session-based Full Stack mode for direct shell command execution +- `executeShellCommand()` method to ClaudeService for spawning bash processes +- `POST /claude/api/shell-command` API endpoint for terminal commands +- Smart command detection to differentiate shell commands from conversational messages +- Auto-mode switching suggestions when non-shell commands are sent in Terminal mode +- Real-time stdout/stderr capture with event emission + +### Changed +- Replaced WebContainer-based Full Stack mode with Claude Code CLI session approach +- Simplified terminal mode architecture by removing 350KB WebContainer bundle +- Improved session filtering with path-based project matching +- Updated `handleWebContainerCommand()` to use CLI sessions instead of WebContainers + +### Fixed +- Terminal creation failure in Full Stack mode ("Failed to create terminal" error) +- WebContainer SharedArrayBuffer serialization errors (no longer applicable with CLI approach) +- Session filtering showing unrelated sessions in project view +- Memory leaks from setInterval() calls in context-panel.js and landing.js +- XSS vulnerability in autocomplete (file names now properly escaped) +- sendMessage() undefined errors in chat-message-enhanced.js +- terminalManager reference errors (changed to window.terminalManager) + +### Removed +- WebContainer dependency (no longer needed for Full Stack mode) +- COOP/COEP header requirements (eliminated with CLI session approach) + +### Security +- All shell command endpoints require authentication +- Command injection protection via bash shell spawning +- Proper HTML escaping for dynamic content in autocomplete + +## [1.1.0] - 2026-01-19 + +### Added +- HTTP polling system for terminal output +- Terminal type selection dropdown (Standard Shell vs Claude Code CLI) +- Debug panel for terminal troubleshooting +- HTTP POST input and resize endpoints +- Automatic cleanup of old terminal output (5 minutes retention) + +### Changed +- Terminal output delivery from WebSocket to HTTP polling +- Terminal command execution via HTTP POST instead of WebSocket + +### Fixed +- WebSocket closure with code 1006 in nginx configurations +- Terminal command execution failing silently +- Race condition in `switchToTerminal()` method +- Terminal type selector not appearing in modal + +## [1.0.0] - Initial Release + +### Added +- Session management with real-time status tracking +- Project organization with smart suggestions +- WebSocket-based terminal integration +- XML tag system for file operations +- Obsidian vault integration +- File browser and editor +- Real-time chat interface + +[1.2.0]: https://github.rommark.dev/admin/ClaudeCLI-Web/compare/v1.1.0...v1.2.0 +[1.1.0]: https://github.rommark.dev/admin/ClaudeCLI-Web/compare/v1.0.0...v1.1.0 +[1.0.0]: https://github.rommark.dev/admin/ClaudeCLI-Web/releases/tag/v1.0.0 diff --git a/README.md b/README.md index 0bd9e25f..12d91f1f 100644 --- a/README.md +++ b/README.md @@ -6,12 +6,81 @@ [![Express](https://img.shields.io/badge/Express-4.22-blue)](https://expressjs.com/) [![SQLite](https://img.shields.io/badge/SQLite-3.0-orange)](https://www.sqlite.org/) [![License](https://img.shields.io/badge/License-ISC-blue)](LICENSE) -[![Version](https://img.shields.io/badge/Version-1.1.0-brightgreen)](https://github.rommark.dev/admin/ClaudeCLI-Web) +[![Version](https://img.shields.io/badge/Version-1.2.0-brightgreen)](https://github.rommark.dev/admin/ClaudeCLI-Web) --- ## Version History +### v1.2.0 (2026-01-20) + +**🚀 Major Feature: CLI Session-Based Full Stack Mode** + +This release introduces a simplified Full Stack mode using Claude Code CLI sessions instead of WebContainers, eliminating complex COOP/COEP header requirements and reducing bundle size by ~350KB. + +#### Changes + +**✨ New Features** +- **CLI Session-Based Terminal Mode** - Execute shell commands directly in Claude Code CLI sessions + - Spawns bash process for command execution + - Captures stdout, stderr, and exit codes + - Real-time output streaming via events + - No SharedArrayBuffer or special headers required +- **Shell Command API** - `POST /claude/api/shell-command` endpoint for executing commands +- **Smart Command Detection** - Automatically detects shell commands vs conversational messages + - Warns when conversational messages are sent in Terminal mode + - Auto-switches to Chat mode for non-shell commands + +**🔧 Improvements** +- **Simplified Architecture** - Removes WebContainer dependency + - Faster startup (no 350KB bundle download) + - Better error handling + - Uses existing Claude Code infrastructure +- **Terminal Mode Reliability** - Fixed terminal creation failures + - Removed terminalManager reference errors + - Added fallback to native command execution +- **Project-Based Session Filtering** - Improved session filtering logic + - Path-based matching for accurate project assignment + - Better handling of nested directories + +**🐛 Bug Fixes** +- Fixed terminal creation failure in Full Stack mode ("Failed to create terminal" error) +- Fixed WebContainer SharedArrayBuffer serialization errors +- Fixed session filtering showing unrelated sessions +- Fixed memory leaks from setInterval() calls +- Fixed XSS vulnerability in autocomplete (file names now escaped) +- Fixed sendMessage() undefined errors + +**📝 Technical Details** + +- `services/claude-service.js`: + - Added `executeShellCommand()` method for spawning bash processes + - Captures stdout/stderr with real-time event emission + - Returns Promise with exitCode, stdout, stderr + +- `server.js`: + - Added `POST /claude/api/shell-command` endpoint + - Requires authentication via `requireAuth` middleware + - Validates sessionId and command parameters + +- `public/claude-ide/chat-functions.js`: + - Rewrote `handleWebContainerCommand()` to use CLI sessions + - Added `sendShellCommand()` helper for API calls + - Smart command detection for shell vs conversational + - Auto-mode switching suggestions + +**🔒 Security** +- All shell command endpoints require authentication +- Command injection protection via bash shell spawning +- Proper error handling for failed commands + +**⚙️ Compatibility** +- Requires Claude Code CLI to be installed and accessible +- No special HTTP headers needed (removes COOP/COEP requirement) +- Maintains backward compatibility with Chat mode + +--- + ### v1.1.0 (2026-01-19) **🚀 Major Feature: HTTP Polling for Terminal Output**