# Changelog All notable changes to audiofiles will be documented in this file. Format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). Versioning follows [Semantic Versioning](https://semver.org/spec/v2.0.0.html). ## [Unreleased] ### Added - Forge: resample overshoot handling. Conforming to an integer target now detects true-peak overshoot (>1.0); by default the signal is left untouched and a warning is shown that it will clip. A new Settings > Forge toggle, "Auto-trim resample overshoot", opts in to the gentlest reversible fix (a single linear gain to full scale), reported when applied. 32-bit float targets are unaffected (lossless passthrough). ### Fixed - Store: importing identical bytes under a different file extension no longer leaves an unreachable orphan blob on disk; the import reuses the canonical content-addressed blob, restoring "import twice is a no-op". ## [0.4.1] - 2026-05-31 ### Added - Device profile fields: category and notes - Edit history affordance and review-sort in browser - Undo for sample edits - About modal (Cmd+I) with version and credits - Updater opt-out preference ### Changed - License-activation contact email points to info@makenot.work - Documentation: 2024 edition, plugin path references, theme phrasing ### Fixed - Export overwrite protection - Database initialization recovery - SyncKit client 0.4.0: pass sentinel key in token exchange ## [0.4.0] - 2026-04-16 ### Added - Trial mode: use the app without a license key with a 30-day countdown - Trial button on activation screen with days remaining indicator - Trial status display in Settings > License section - Trial state persisted to `~/.config/audiofiles/trial.json` ## [0.3.6] - 2026-04-16 ### Changed - Monorepo path dependency restructure (MNW shared libs) - Audit Run 14: test coverage, refactoring, cleanup - Added CONTRIBUTING.md with project coding patterns ## [0.3.5] - 2026-04-13 ### Added - SSE push notifications for real-time sync events - Background cleanup worker for orphaned sample removal - macOS metadata filtering during import - Collapsible filter panel in browser UI - Cleanup progress screen ### Changed - Extracted theme loading to shared `theme-common` crate - Preview decode cancellation for faster navigation - Increased undo stack depth ### Fixed - File list scroll-follow when selecting samples - Collection breadcrumb navigation - Collection export paths - Null-safe VFS handling and drag-drop ### Security - Disabled `eval()` and module imports in Rhai plugin engine - Blob validation on sync upload/download - OAuth state parameter verification ## [0.3.0] - 2026-03-28 First beta-ready release. ### Added - Cloud sync via SyncKit SDK (sample metadata, tags, VFS mappings) - OTA updates via custom reqwest-based checker - ML-based sample classification (two-layer system, 94.4% accuracy on drums) - VP-tree similarity search across sample library - Content-addressed blob store (SHA-256) - Virtual filesystem for sample organization - Device-aware export with 14 bundled sampler profiles - Rhai plugin system for custom device profiles - Drag-to-DAW export (macOS and Windows) - Waveform visualization - Collections for organizing samples - Audio analysis: spectral features, BPM, key detection, MFCC extraction - Bundled color themes (see `crates/audiofiles-browser/themes/`) - macOS, Windows, and Linux builds ### Fixed - All issues identified in audit runs 1–12 - Concurrency and type safety patterns (Rust patterns audit) ### Security - Full observability instrumentation (115 traced functions) - 17 justified FFI unsafe blocks for platform drag-and-drop (macOS objc2 + Windows COM)