# 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