From 5638f7ca233eeffda66221ddde8df4354b74fcde Mon Sep 17 00:00:00 2001 From: uroma Date: Tue, 20 Jan 2026 16:25:47 +0000 Subject: [PATCH] docs: release v1.3.0 - OpenCode-style session management Add comprehensive v1.3.0 release notes documenting: - Project-based session filtering - Read-only session history browser - Continue in Chat integration - Enhanced session details - Bug fixes (status detection, sendShellCommand, XSS) Updated version badge to 1.3.0. Co-Authored-By: Claude Sonnet 4.5 --- CHANGELOG.md | 87 +++++++++++++++++++--------------------------------- README.md | 60 +++++++++++++++++++++++++++++++++++- 2 files changed, 90 insertions(+), 57 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f0b27520..d81d9e72 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,70 +5,45 @@ 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 +## [1.3.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 +- Project-based session filtering in Sessions view (respects `?project=` URL parameter) +- Read-only session history browser following OpenCode desktop patterns +- "Continue in Chat" action to switch from Sessions view to Chat workspace +- "Duplicate Session" action to create new session with same working directory +- "Terminate Session" action for running sessions +- Enhanced session details display (metadata, token usage, output preview) +- Relative time display (5m ago, 2h ago, 3d ago) +- Session list sorting by last activity (newest first) +- Pending session detection in Chat view for seamless continuation +- `loadSessionIntoChat()` function to restore session messages +- `sendShellCommand()` helper function for Full Stack mode +- Comprehensive error states (404, 500, session expired) +- XSS prevention with HTML escaping for all dynamic content ### 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 +- Transformed Sessions view from command interface to read-only browser +- Removed duplicate command input from Sessions view +- Sessions view now filters by current project directory +- Session status detection now correctly identifies running vs stopped processes +- Improved session list with better visual hierarchy and styling ### 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) +- All sessions showing as "running" regardless of actual process state +- Sessions from other projects appearing in current project view +- "sendShellCommand is not defined" error in Full Stack mode +- Duplicate command input in Sessions view causing user confusion +- Missing HTML escaping causing potential XSS vulnerabilities -### 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 +### Technical Details +- Backend: Modified `/claude/api/claude/sessions` to accept `?project=` query parameter +- Frontend: Added `viewSessionDetails()`, `continueSessionInChat()`, `duplicateSession()`, `terminateSession()` +- Frontend: Added `loadSessionIntoChat()` for Chat view session restoration +- Frontend: Added helper functions `getRelativeTime()`, `escapeHtml()`, `sendShellCommand()` +- Styling: Added 450+ lines of CSS for session list and detail views +[1.3.0]: https://github.rommark.dev/admin/ClaudeCLI-Web/compare/v1.2.0...v1.3.0 [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 12d91f1f..3804ad78 100644 --- a/README.md +++ b/README.md @@ -6,12 +6,70 @@ [![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.2.0-brightgreen)](https://github.rommark.dev/admin/ClaudeCLI-Web) +[![Version](https://img.shields.io/badge/Version-1.3.0-brightgreen)](https://github.rommark.dev/admin/ClaudeCLI-Web) --- ## Version History +### v1.3.0 (2026-01-20) + +**πŸš€ Major Feature: OpenCode-Style Session Management** + +This release transforms the Sessions view into a clean history browser following OpenCode desktop patterns, removing duplicate UI and implementing seamless Chat view integration. + +#### Changes + +**✨ New Features** +- **Project-Based Session Filtering** - Sessions view now filters by current project + - Respects `?project=` URL parameter + - Only shows sessions from current project directory + - Prevents confusion from seeing unrelated sessions +- **Read-Only Session Browser** - Transformed Sessions view from command interface to history viewer + - Removed duplicate command input (use Chat view for active work) + - Added "Continue in Chat" action to switch to workspace + - Added "Duplicate" action to create new session with same working directory + - Added "Terminate" action for running sessions +- **Enhanced Session Details** - Comprehensive session information display + - Session metadata (created, last activity, message count) + - Token usage progress bar + - Output preview (first 50 entries with scroll) + - Clear status badges (🟒 Running vs ⏸️ Stopped/Historical) +- **Seamless Chat Integration** - Continue sessions from Sessions view + - Click "Continue in Chat" to switch views with session loaded + - Pending session detection in Chat view + - Automatic message restoration (both user and assistant) + - Subscribe to live updates for running sessions + +**πŸ”§ Improvements** +- **Relative Time Display** - Shows "5m ago", "2h ago", "3d ago" instead of timestamps +- **Sorted Session List** - Sessions sorted by last activity (newest first) +- **Better Empty States** - Helpful messages when no sessions exist +- **Comprehensive Error Handling** - Clear error messages for 404, 500, etc. +- **XSS Prevention** - All dynamic content properly escaped + +**πŸ› Bug Fixes** +- Fixed session status showing all sessions as "running" regardless of actual state +- Fixed sessions from other projects appearing in current project view +- Fixed "sendShellCommand is not defined" error in Full Stack mode +- Fixed duplicate command input in Sessions view causing confusion + +**πŸ“ Technical Details** + +- Backend API: `GET /claude/api/claude/sessions?project=` filters by working directory +- Frontend: `loadSessions()` extracts project from URL and filters session list +- Frontend: `viewSessionDetails()` shows read-only session information +- Frontend: `continueSessionInChat()` stores pending session for Chat view pickup +- Frontend: `loadSessionIntoChat()` restores session messages in Chat view +- Frontend: `sendShellCommand()` helper for Full Stack mode shell commands + +**πŸ”’ Security** +- All session operations require authentication +- HTML escaping prevents XSS in session display +- Session validation prevents unauthorized access + +--- + ### v1.2.0 (2026-01-20) **πŸš€ Major Feature: CLI Session-Based Full Stack Mode**