From 51c16a5671852473cb10e4b06eff9d937e9b7851 Mon Sep 17 00:00:00 2001 From: uroma Date: Mon, 19 Jan 2026 20:56:57 +0000 Subject: [PATCH] docs: add version 1.1.0 and comprehensive changelog Add version badge and detailed changelog for v1.1.0 release documenting: - HTTP polling system for terminal output - Terminal type selection (Standard Shell vs Claude Code CLI) - Debug panel improvements - Bug fixes for WebSocket closure issues - Technical details for all modified files - Security and compatibility notes Co-Authored-By: Claude Sonnet 4.5 --- README.md | 74 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 74 insertions(+) diff --git a/README.md b/README.md index 087d1a3c..0bd9e25f 100644 --- a/README.md +++ b/README.md @@ -6,6 +6,80 @@ [![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 History + +### v1.1.0 (2026-01-19) + +**🚀 Major Feature: HTTP Polling for Terminal Output** + +This release addresses critical WebSocket connectivity issues in nginx reverse proxy configurations by implementing a robust HTTP polling mechanism for terminal output. + +#### Changes + +**✨ New Features** +- **HTTP Polling System** - Terminal output now uses HTTP polling instead of WebSocket for reliable data delivery + - Server buffers PTY output in memory with automatic cleanup + - Frontend polls every 100ms for new output entries + - Monotonically increasing index for efficient data retrieval + - Automatic cleanup of old output (5 minutes retention) + +**🔧 Improvements** +- **Terminal Type Selection** - Added dropdown to choose between: + - Standard Shell (bash/zsh) + - Claude Code CLI (auto-launches with `--dangerously-skip-permissions`) +- **Debug Panel** - Always-visible debug panel for troubleshooting terminal issues +- **HTTP POST Input** - Commands sent via HTTP POST to bypass WebSocket send failures +- **Terminal Resize** - HTTP-based resize endpoint for terminal dimensions + +**🐛 Bug Fixes** +- Fixed WebSocket closure with code 1006 (abnormal closure) in nginx configurations +- Fixed terminal command execution failing silently +- Fixed race condition in `switchToTerminal()` method +- Removed stabilization delays that caused WebSocket issues +- Fixed terminal type selector not appearing in modal + +**📝 Technical Details** +- `services/terminal-service.js`: + - Added `bufferOutput()` method for capturing PTY data + - Added `getTerminalOutput()` for HTTP polling endpoint + - Added `resizeTerminal()` for HTTP resize handling + - Maintains WebSocket compatibility for legacy support + +- `server.js`: + - `GET /claude/api/terminals/:id/output` - Poll for new output + - `POST /claude/api/terminals/:id/input` - Send command input + - `POST /claude/api/terminals/:id/resize` - Resize terminal + +- `public/claude-ide/terminal.js`: + - Added `startPolling()` - 100ms interval polling + - Added `stopPolling()` - Clean polling termination + - Added `sendTerminalInput()` - HTTP POST for commands + - Added `sendTerminalResize()` - HTTP POST for resize + - Removed dependency on WebSocket for output display + +**🔒 Security** +- All polling endpoints require authentication +- Output buffer size limited to 10,000 entries per terminal +- Automatic cleanup prevents memory exhaustion + +**⚙️ Compatibility** +- Maintains backward compatibility with WebSocket connections +- Works seamlessly with nginx reverse proxy +- No configuration changes required + +--- + +### v1.0.0 (Initial Release) + +- 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 ---