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 <noreply@anthropic.com>
This commit is contained in:
uroma
2026-01-19 20:56:57 +00:00
Unverified
parent 64f1ffb484
commit 51c16a5671

View File

@@ -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
---