|
| 1 | +// SPDX-License-Identifier: AGPL-3.0-or-later |
| 2 | += Changelog |
| 3 | + |
| 4 | +All notable changes to this project will be documented in this file. |
| 5 | + |
| 6 | +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), |
| 7 | +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). |
| 8 | + |
| 9 | +== [Unreleased] |
| 10 | + |
| 11 | +=== Planned |
| 12 | +- JWT-based authentication for HTTP API |
| 13 | +- Rate limiting for all endpoints |
| 14 | +- TLS support for encrypted connections |
| 15 | +- WASM core module for sandboxed conversion execution |
| 16 | +- Advanced format support (YAML, XML, TOML) |
| 17 | +- Plugin system for custom converters |
| 18 | +- LSP 3.18 feature support |
| 19 | +- Performance optimizations |
| 20 | + |
| 21 | +== [0.1.0] - 2025-11-22 |
| 22 | + |
| 23 | +=== Added |
| 24 | +- **LSP Server**: Complete LSP 3.17 implementation with tower-lsp |
| 25 | + - Document synchronization (didOpen, didChange, didSave, didClose) |
| 26 | + - Code completion with format-aware suggestions |
| 27 | + - Hover information showing document statistics |
| 28 | + - Execute commands for document conversion |
| 29 | + - Diagnostic validation for document formats |
| 30 | +- **HTTP REST API**: Full REST API with axum |
| 31 | + - POST /api/convert - Convert documents between formats |
| 32 | + - GET /api/documents - List all documents |
| 33 | + - GET /api/documents/:id - Get specific document |
| 34 | + - DELETE /api/documents/:id - Delete document |
| 35 | + - POST /api/validate - Validate document format |
| 36 | + - GET /api/stats - Server statistics |
| 37 | + - GET /api/health - Health check endpoint |
| 38 | +- **WebSocket Server**: Real-time document updates |
| 39 | + - Subscribe/unsubscribe to document changes |
| 40 | + - Document update notifications |
| 41 | + - Ping/pong keepalive |
| 42 | + - Broadcast messaging |
| 43 | +- **Conversion Engine**: Bidirectional format conversion |
| 44 | + - Markdown ↔ HTML (full support via pulldown-cmark) |
| 45 | + - Markdown ↔ JSON (structured representation) |
| 46 | + - HTML ↔ JSON (DOM structure extraction) |
| 47 | + - Format validation and diagnostics |
| 48 | +- **Document Store**: Lock-free concurrent storage |
| 49 | + - DashMap for thread-safe operations |
| 50 | + - Document versioning |
| 51 | + - Metadata tracking (creation time, modification time) |
| 52 | + - UUID-based identification |
| 53 | +- **Editor Clients**: 7 editor integrations (all <100 LOC) |
| 54 | + - VS Code extension (~70 LOC) |
| 55 | + - Neovim plugin (~65 LOC) |
| 56 | + - Emacs package (~75 LOC) |
| 57 | + - JetBrains plugin (~55 LOC) |
| 58 | + - Sublime Text plugin (~60 LOC) |
| 59 | + - Zed configuration |
| 60 | + - Helix configuration |
| 61 | +- **Web UI**: Single-page application |
| 62 | + - Live document converter |
| 63 | + - Real-time dashboard with WebSocket updates |
| 64 | + - Document manager interface |
| 65 | + - Server statistics display |
| 66 | + - Responsive design for mobile/desktop |
| 67 | +- **Infrastructure**: |
| 68 | + - Dockerfile with multi-stage builds |
| 69 | + - docker-compose.yml for orchestration |
| 70 | + - podman-compose.yml for Podman support |
| 71 | + - Comprehensive Makefile with 20+ targets |
| 72 | + - Example configurations and conversions |
| 73 | +- **Documentation**: |
| 74 | + - Complete README with quick start |
| 75 | + - API documentation with examples |
| 76 | + - CONTRIBUTING.md for developers |
| 77 | + - SECURITY.md for security policies |
| 78 | + - CODE_OF_CONDUCT.md for community |
| 79 | + - MAINTAINERS.md for governance |
| 80 | +- **Testing**: |
| 81 | + - LSP compliance test suite |
| 82 | + - HTTP API integration tests |
| 83 | + - Core conversion engine tests |
| 84 | + - Document store concurrency tests |
| 85 | +- **RSR Compliance**: |
| 86 | + - .well-known/security.txt (RFC 9116) |
| 87 | + - .well-known/ai.txt (AI training policies) |
| 88 | + - .well-known/humans.txt (attribution) |
| 89 | + - justfile with build recipes |
| 90 | + - flake.nix for Nix reproducible builds |
| 91 | + - .gitlab-ci.yml for CI/CD |
| 92 | + |
| 93 | +=== Changed |
| 94 | +- N/A (initial release) |
| 95 | + |
| 96 | +=== Deprecated |
| 97 | +- N/A (initial release) |
| 98 | + |
| 99 | +=== Removed |
| 100 | +- N/A (initial release) |
| 101 | + |
| 102 | +=== Fixed |
| 103 | +- N/A (initial release) |
| 104 | + |
| 105 | +=== Security |
| 106 | +- Memory safety guaranteed by Rust ownership system |
| 107 | +- No unsafe code blocks in implementation |
| 108 | +- Input validation for all HTTP endpoints |
| 109 | +- LSP message validation |
| 110 | +- CORS enabled for web UI access |
| 111 | + |
| 112 | +== Version History |
| 113 | + |
| 114 | +- [0.1.0] - 2025-11-22: Initial release with core functionality |
| 115 | + |
| 116 | +== Migration Guides |
| 117 | + |
| 118 | +=== From Non-LSP Solutions |
| 119 | + |
| 120 | +If migrating from traditional editor-specific plugins: |
| 121 | + |
| 122 | +1. **Install Server**: Build and install the Rust server |
| 123 | +2. **Install Client**: Install editor-specific client for your editor |
| 124 | +3. **Configure**: Set server path in client configuration |
| 125 | +4. **Test**: Open a Markdown/HTML/JSON file and test conversion commands |
| 126 | + |
| 127 | +=== Future Migrations |
| 128 | + |
| 129 | +When upgrading to future versions, consult version-specific migration guides. |
| 130 | + |
| 131 | +== Deprecation Policy |
| 132 | + |
| 133 | +- **Minor versions**: Features deprecated with 6-month warning |
| 134 | +- **Major versions**: Breaking changes allowed with migration guide |
| 135 | +- **Security**: Immediate deprecation if security risk identified |
| 136 | + |
| 137 | +== Support |
| 138 | + |
| 139 | +- **Current Version**: 0.1.0 (active development) |
| 140 | +- **LTS**: Not yet designated |
| 141 | +- **EOL**: None yet |
| 142 | + |
| 143 | +== Links |
| 144 | + |
| 145 | +- [Repository](https://github.com/universal-connector/universal-language-connector) |
| 146 | +- [Issue Tracker](https://github.com/universal-connector/universal-language-connector/issues) |
| 147 | +- [Documentation](https://universal-connector.org/docs) |
| 148 | +- [Changelog](https://github.com/universal-connector/universal-language-connector/blob/main/CHANGELOG.md) |
| 149 | + |
| 150 | +--- |
| 151 | + |
| 152 | +**Changelog Format**: [Keep a Changelog](https://keepachangelog.com/) |
| 153 | +**Versioning**: [Semantic Versioning](https://semver.org/) |
0 commit comments