# Changelog

All notable changes to this project 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).

## [Unreleased]

## [0.1.0] - 2024-10-14

### Added
- **Core RAG Module**: Complete Rust implementation of enterprise RAG system
- **Vector Search**: Embedded Qdrant and local file-based vector stores
- **Model Management**: Automatic model downloading from Hugging Face Hub
  - BGE-M3 (1024D) with MiniLM fallback system
  - Local model caching with efficient transformer model management
  - Model size calculation and storage info
- **Chat Session Management**: Persistent chat sessions with context tracking
  - Session start/end functionality
  - Message pair storage (prompt/response)
  - Encrypted chat history with wrapper JSON structure
- **Security & Encryption**: AES-256-GCM encryption for sensitive data
  - Content and metadata encryption
  - Automatic encryption key management
  - Privacy-aware data filtering
- **Directory Structure Creation**: Auto-creates organized directory structure
  - `models/` - Downloaded ML models
  - `cache/` - Temporary cache
  - `data/` - Application data
  - `keys/` - Encryption keys (excluded from git)
  - `sync/` - Synchronization data
  - `qdrant-data/` - Vector database storage
  - `sessions/` - Session management
- **Multi-Cloud Support**: AWS, Azure, GCP estate data processing
- **Configuration Management**: YAML-based configuration with overrides
- **HTTP API Server**: Node.js compatible API endpoints
- **Documentation**: Comprehensive README with examples
- **Examples**: Working examples for model downloading and directory structure

### Security
- All sensitive data encrypted with AES-256-GCM
- Automatic `.gitignore` creation to exclude sensitive files
- Secure key generation and rotation
- Privacy-first configuration defaults

### Performance
- Zero-cost abstractions with Rust
- Async/await support with Tokio
- Efficient memory management
- Lock-free data structures where possible

### Compatibility
- Node.js API compatibility
- Data migration support from Node.js version
- Same directory structure as Node.js implementation
- Compatible model caching system

[Unreleased]: https://github.com/escher-dbai/rag-module-rust/compare/v0.1.0...HEAD
[0.1.0]: https://github.com/escher-dbai/rag-module-rust/releases/tag/v0.1.0