Skip to content

Releases: one-bit/mnemoria

v0.3.5

02 Mar 11:32

Choose a tag to compare

What's Changed

  • Comprehensive doc comments across storage and search modules — Added /// documentation to all public types, functions, and struct fields in search/mod.rs, storage/manifest.rs, storage/log_reader.rs, storage/log_writer.rs, and storage/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 llm keyword with embeddings; added artificial-intelligence and data-structures categories for better discoverability on crates.io.

v0.3.4

26 Feb 13:09

Choose a tag to compare

What's Changed

  • Replaced manual atomic write pattern with atomic-write-file crate — The hand-rolled write-temp-fsync-rename-fsync_dir durability pattern in manifest.rs and api/mod.rs has been replaced with the atomic-write-file crate (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 prevent ACCESS_DENIED errors on Windows when attempting to fsync directories. This release supersedes that workaround entirely by delegating to atomic-write-file, which handles platform-specific durability guarantees internally.

  • Fixed macOS build failure from Linux-only errno symbol (#1 by @ramarivera) — is_process_alive used libc::__errno_location(), a Linux-specific symbol that caused error[E0425] on Darwin. Replaced with portable std::io::Error::last_os_error().raw_os_error() == Some(libc::EPERM).

  • Portable cfg-gating of model2vec in config struct — The model2vec field is now cfg-gated to match the feature flag, preventing compilation errors when built with --no-default-features.

  • Fixed unsafe extern block for Rust 2024 edition — Added required unsafe keyword to extern blocks 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-deny action with a pre-built binary for faster CI runs.

New Contributors

v0.3.3

16 Feb 15:54

Choose a tag to compare

What's Changed

  • Default model upgraded to potion-base-32M — Switched from potion-base-8M (256-dim) to potion-base-32M (512-dim) for improved embedding quality. The larger vocabulary and higher dimensionality provide better semantic search results.
  • Added --version / -V CLI flag — Quickly check the installed version with mnemoria --version.
  • Removed references to non-existent docs — Cleaned up README references to ARCHITECTURE.md and PRD.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

16 Feb 15:31

Choose a tag to compare

What's Changed

  • fix: Resolve fmt and clippy CI failures, add pre-commit hook
  • docs: Add CONTRIBUTING.md with pre-commit hook setup instructions
  • chore: Gitignore .env and update lockfile

v0.3.1

15 Feb 18:27

Choose a tag to compare

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 memory
  • search --agent <name> (optional) — filters search results to a single agent
  • ask --agent <name> (optional) — filters ask results to a single agent
  • timeline --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 parameter agent_name: &str
  • Mnemoria::search_memory() takes a new parameter agent_name: Option<&str>
  • Mnemoria::ask_memory() takes a new parameter agent_name: Option<&str>
  • TimelineOptions has a new agent_name: Option<String> field

Internals

  • MemoryEntry.agent_name is included in the CRC32 checksum chain
  • agent_name is indexed as a STRING field in the Tantivy search index
  • Agent name survives export/import round-trips

v0.1.3

15 Feb 16:56

Choose a tag to compare

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
    • Mnemoria struct and all 15 public methods fully documented
    • All public types: EntryType, MemoryEntry, SearchResult, MemoryStats, TimelineOptions, Config
    • Error enum and all variants
    • EmbeddingBackend and IndexManager structs
    • Storage module overview

Full Changelog: v0.1.2...v0.1.3

v0.1.2

15 Feb 16:45

Choose a tag to compare

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

15 Feb 16:36

Choose a tag to compare

Changes

  • Refactor: Consolidated public constants (DEFAULT_SIMILARITY_THRESHOLD, MAX_RESULTS_LIMIT, DEFAULT_MAX_RESULTS) into a dedicated constants.rs module for better code organization and discoverability.

Full Changelog: 72cedc3...v0.1.1