yams/docs/changelogs/v0.3.md
2025-09-11 11:28:42 -04:00

142 lines
7.1 KiB
Markdown

# Changelog Archive: v0.3.x Series
## [v0.3.4] - 2025-08-16
### Added
- **Hybrid Grep Command**
- Semantic search capability integrated into grep command
- Shows both "Text Matches" (regex) and "Semantic Matches" sections
- `--regex-only` flag to disable semantic search when needed
- `--semantic-limit` option to control number of semantic results (default: 3)
- Automatic parallel execution of regex and semantic searches for better performance
- **Enhanced Vector Search**
- Query embedding generation for accurate semantic search
- Automatic embedding generator creation based on available models
- Improved search accuracy with actual query vectors instead of placeholders
- Default embedding support through factory pattern
- **Automatic Embedding Generation**
- Vector database auto-creation on initialization
- Repair thread auto-starts when missing embeddings detected
- Background embedding generation without manual intervention
- Proactive database initialization to avoid "Not found" messages
### Fixed
- **Vector Database Initialization**
- Fixed auto-creation of vectors.db on first run
- Repair thread now triggers during storage initialization
- Improved embedding health detection with better sampling
- Correct variable names in initialization code (metadataRepo_ vs metadataRepository_)
### Changed
- **Search Command**
- Now uses hybrid search by default with vector and keyword fusion
- Ignores --type flag for better ergonomics (hybrid is always best)
- Automatic fallback to keyword search if vector search unavailable
## [v0.3.3] - 2025-08-15
### Added
- **MCP Server**
- Spec-compliant stdio framing (Content-Length + CRLF) with readiness notifications
- Tool schemas aligned with implementation and tests
- MCP tool handlers refactored into thin adapters that map JSON ↔ service DTOs
- CLI/MCP parity via shared service layer (Search, Grep, Document); MCP now delegates:
- grep_documents → GrepService
- list_documents, retrieve_document, update_document_metadata, get_by_name, cat_document, delete_by_name → DocumentService
- **Tracy Profiling Support**
- **List Command Enhancements**
- `--changes` flag to show documents with recent modifications (last 24h by default)
- `--since` option to show documents changed since specified time (ISO8601, relative, or natural formats)
- `--diff-tags` flag for grouped change visualization showing added/modified/deleted documents
- `--show-deleted` flag to include deleted documents in listings
- File type indicators in diff-tags output showing `[extension|bin/txt|category]` for all files
- **Grep Command Enhancements**
- Support for searching specific file paths in addition to patterns
- Improved path matching with suffix lookup for partial paths
- `--paths-only` flag for LLM-friendly output (one file path per line)
- **Code Quality**
- Added clang-format configuration for consistent code style
- Pre-commit hook for automatic code formatting
- Application services layer for shared CLI/MCP functionality
### Fixed
- **MCP Server Initialization**
- **Vector Database**: Simplified embedding generation using existing repair command patterns
- Stats no longer unconditionally recommends 'yams repair --embeddings' when embeddings already exist; guidance is shown only when count is zero
- **Stats Display**: Improved embedding system status to show meaningful health info instead of misleading zero-activity counters
- **Vector Index**: Fixed initialization with smart dimension detection from existing models and databases
- **Async Processing**: Documents now get embeddings generated asynchronously in detached threads (non-blocking)
- **Reliability**: Embedding generation now works by default, if it fails you will see ```yams repair --embeddings``` in ```yams status```
- **Stats Command**: Replaced confusing worker activity counters with clear system capability status
- **List Command Filtering**: Fixed diff-tags logic to properly skip change filters when showing diff visualization
- **Security**
- Fixed command injection vulnerability in model_command.cpp by replacing system() calls with safe execvp()
- Added path validation and sanitization for user inputs
- Validate output paths to prevent directory traversal attacks
## [v0.3.2] - 2025-08-15
### Added
- **Preview: Vector Database (experimental)**
- `SqliteVecBackend` for persistent vector storage via the sqlite-vec extension
- BLOB storage format for embeddings with transaction-safe writes across vector and metadata tables
- CLI integration: enable via `yams init` or follow prompts shown in `yams stats --health`
- **MCP Server**
- Stdio transport only; HTTP framework dependencies removed
### Fixed
- **Vector DB**
- Embeddings now persist across restarts
- Updated CRUD operations for new two-table architecture
- **Build/CI**
- Fixed Conan ARM64 architecture detection on macOS self-hosted runner
- **MCP**
- Removed Drogon and Boost dependencies that caused runtime issues
### Notes
- **Usage**
- Vector search is off by default. Initialize and configure embeddings with `yams init` or via health prompts in `yams stats --health`.
- **Requirements**
- SQLite with the sqlite-vec extension available at runtime.
- **Limitations (preview)**
- Schema and APIs may change between minor versions.
- Not enabled by default; indexing currently targets text documents only.
- Single-process/local database only; no cross-process index sharing yet.
## [v0.3.1] - 2025-08-14
### Fixed
- **Critical: Missing ref_transactions table after init**
- Fixed incomplete schema initialization in reference counter that caused "no such table: ref_transactions" error
- Added complete inline schema fallback with all required tables (ref_transactions, ref_transaction_ops, ref_statistics, ref_audit_log)
- Implemented proper resource file discovery for production deployments
- Added installation of SQL schema files to CMake configuration
- **CI/CD Workflow Simplification**
- Removed all cross-compilation logic from release workflow
- Fixed CI build failures on Linux (gtest cache corruption) and macOS (runner detection)
- Moved macOS x86_64 builds to GitHub hosted runners (macos-13)
- Docker builds now use native architecture on each runner (ARM on macOS, x86 on Linux)
### Changed
- **Build Infrastructure**
- All builds now use native compilation for better performance and reliability
- Simplified Conan configuration by removing cross-compilation complexity
- Docker workflow split into separate jobs per architecture for efficiency
- Data files (magic_numbers.json, reference_schema.sql) now properly installed with binary
## [v0.3.0] - 2025-08-14
### Added
- **Apple Silicon Optimizations**
- New `YAMS_ENABLE_APPLE_SILICON_OPTIMIZATIONS` CMake option (enabled by default on ARM64 Macs)
- Native `-mcpu=apple-m1` optimization flag for M1/M2/M3 processors
- Added `-fvectorize` for improved SIMD utilization on Apple Silicon
### Fixed
- **CI/CD C++ Standard Configuration**
- Fixed Conan profile resetting to C++17 in CI/CD workflows
- Added explicit C++20 enforcement after `conan profile detect --force`
- Fixed cross-compilation profile configurations for both CI and Release workflows