# Changelog All notable changes to YAMS (Yet Another Memory System) will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). ## [Unreleased] ## [0.0.5] - 2025-08-11 ### Added - **Build System Enhancements**: - Automatic std::format detection with fallback to fmt library for older compilers - Improved ncurses detection for Linux builds with clear error messages - BUILD-GCC.md documentation for building with GNU toolchain - **Search Improvements**: - Word-by-word processing for multi-word queries (e.g., "chain event ingestion" searches each word independently) - Minimum-should-match scoring (50% of query words must match by default) - Intelligent result aggregation with boost for documents matching all query words - Edit distance-based scoring (closer matches score higher) - Automatic fallback to fuzzy search when FTS5 fails ### Fixed - Proper handling of hyphens in queries like "PBI-6", "task-4", "feature-123" - Special characters (@, #, ?, :, /, \, [], {}, ()) no longer cause SQL errors - Advanced FTS5 operators (AND, OR, NOT, NEAR) still available for power users - **Fuzzy search matching**: Completely rewrote trigram similarity calculation - **CI/CD Pipeline**: - Added install step verification to ensure artifacts are created - Added libncurses-dev to Ubuntu dependencies - Enabled Ubuntu traditional (non-Conan) builds in CI matrix ### Changed - **Search indexing strategy**: Enhanced to support both single and multi-word queries effectively - Documents now indexed at word level in addition to full content - Keywords extracted more comprehensively with 2-word phrases - Improved tokenization with punctuation handling - **Error handling**: FTS5 failures now gracefully fall back to fuzzy search instead of returning errors ## [0.0.4] - 2025-08-11 ### Added - **Directory-based workflows** with collections and snapshots for multi-folder ingestion - `add --collection `: Add documents to a named collection for organization - `add --snapshot-id --snapshot-label