Releases: one-bit/mnemoria
v0.3.5
What's Changed
-
Comprehensive doc comments across storage and search modules — Added
///documentation to all public types, functions, and struct fields insearch/mod.rs,storage/manifest.rs,storage/log_reader.rs,storage/log_writer.rs, andstorage/file_lock.rs. This brings the crate closer to#![warn(missing_docs)]readiness and improves the docs.rs experience. -
Library usage example in README — Added a complete
#[tokio::main]code sample showing how to create a store, remember entries, search, and retrieve by ID, making it easier for new users to get started with the library API. -
Additional README badges — Added docs.rs and MIT license badges alongside the existing CI, crates.io, and Sponsor badges.
-
Updated crate keywords and categories — Replaced
llmkeyword withembeddings; addedartificial-intelligenceanddata-structurescategories for better discoverability on crates.io.
v0.3.4
What's Changed
-
Replaced manual atomic write pattern with
atomic-write-filecrate — The hand-rolled write-temp-fsync-rename-fsync_dir durability pattern inmanifest.rsandapi/mod.rshas been replaced with theatomic-write-filecrate (v0.3, 4.3M downloads). This crate handles all platform differences internally (Unix directory fsync, Windows compatibility), removing the#[cfg(unix)]guards that were previously needed to work around Windows CI failures. -
Fixed Windows compatibility for directory fsync — Previous releases added
#[cfg(unix)]guards to preventACCESS_DENIEDerrors on Windows when attempting to fsync directories. This release supersedes that workaround entirely by delegating toatomic-write-file, which handles platform-specific durability guarantees internally. -
Fixed macOS build failure from Linux-only errno symbol (#1 by @ramarivera) —
is_process_aliveusedlibc::__errno_location(), a Linux-specific symbol that causederror[E0425]on Darwin. Replaced with portablestd::io::Error::last_os_error().raw_os_error() == Some(libc::EPERM). -
Portable cfg-gating of
model2vecin config struct — Themodel2vecfield is now cfg-gated to match the feature flag, preventing compilation errors when built with--no-default-features. -
Fixed
unsafeextern block for Rust 2024 edition — Added requiredunsafekeyword toexternblocks to comply with Rust 2024 edition requirements. -
MSRV bumped to 1.89 — Minimum supported Rust version raised from 1.85 to 1.89 to support Rust 2024 edition.
-
Cross-platform CI improvements — Added cross-platform testing, MSRV verification, doc building, and benchmark jobs to CI. Replaced Docker-based
cargo-denyaction with a pre-built binary for faster CI runs.
New Contributors
- @ramarivera made their first contribution in #1
v0.3.3
What's Changed
- Default model upgraded to
potion-base-32M— Switched frompotion-base-8M(256-dim) topotion-base-32M(512-dim) for improved embedding quality. The larger vocabulary and higher dimensionality provide better semantic search results. - Added
--version/-VCLI flag — Quickly check the installed version withmnemoria --version. - Removed references to non-existent docs — Cleaned up README references to
ARCHITECTURE.mdandPRD.md.
Note: The new default model is ~130MB (up from ~30MB). Any model2vec-compatible model can still be used via the --model flag.
v0.3.2
v0.3.1
What's New
Agent name as first-class metadata
Memories now carry an agent_name field identifying which agent stored them. This is a breaking change to the remember() API and binary log format.
CLI
add --agent <name>(required) — stores the agent name alongside the memorysearch --agent <name>(optional) — filters search results to a single agentask --agent <name>(optional) — filters ask results to a single agenttimeline --agent <name>(optional) — filters timeline to a single agent- Output now shows the agent name inline:
1. [discovery] (build) Some summary (score: 0.288)
Library API
Mnemoria::remember()takes a new first parameteragent_name: &strMnemoria::search_memory()takes a new parameteragent_name: Option<&str>Mnemoria::ask_memory()takes a new parameteragent_name: Option<&str>TimelineOptionshas a newagent_name: Option<String>field
Internals
MemoryEntry.agent_nameis included in the CRC32 checksum chainagent_nameis indexed as aSTRINGfield in the Tantivy search index- Agent name survives export/import round-trips
v0.1.3
Changes
- Documentation: Added comprehensive doc comments across the entire public API:
- Crate-level docs with quick start example, feature flag table, and storage format overview
Mnemoriastruct and all 15 public methods fully documented- All public types:
EntryType,MemoryEntry,SearchResult,MemoryStats,TimelineOptions,Config Errorenum and all variantsEmbeddingBackendandIndexManagerstructs- Storage module overview
Full Changelog: v0.1.2...v0.1.3
v0.1.2
Changes
- Metadata: Improved crate description, keywords, and categories for better discoverability on crates.io
- README: Updated crates.io install section (no longer "coming soon")
- GitHub: Added repository topics, updated description and homepage
Full Changelog: v0.1.1...v0.1.2
v0.1.1
Changes
- Refactor: Consolidated public constants (
DEFAULT_SIMILARITY_THRESHOLD,MAX_RESULTS_LIMIT,DEFAULT_MAX_RESULTS) into a dedicatedconstants.rsmodule for better code organization and discoverability.
Full Changelog: 72cedc3...v0.1.1