Skip to content

Releases: 4thel00z/memories

Release list

v0.7.0

Choose a tag to compare

@4thel00z 4thel00z released this 05 Jul 15:34

Highlights

  • Atomic, idempotent writesset, del, and edit now write and commit under a single cross-process lock, so concurrent agents can no longer interleave into a half-committed store. Re-setting an unchanged value and committing a clean tree are no-ops instead of errors.
  • The Go library works standalone — new mem.Init() bootstraps ./.mem (or ~/.mem with WithScope("global")) without shelling out to the CLI, and is safe to call repeatedly. Set/Delete commit together with the write.

Fixed

  • New stores initialize on main instead of master, and ship a committed .gitignore so config.yaml and vectors/ never show up as uncommitted changes.
  • mem branch <existing> switches to the branch instead of force-moving its ref onto the current HEAD (which could orphan history).
  • mem watch actually works: it watches the store tree (not the project root), picks up new key directories, commits pre-existing dirty state on startup, and reports errors instead of swallowing them.
  • mem del no longer panics when a built vector index is loaded.
  • mem summarize and the hook strategies resolve a configured LLM provider instead of failing unconditionally with "provider not available"; missing configuration now produces actionable errors.
  • External mem-* plugins receive all seven documented MEM_* environment variables.
  • mem index status reports real index statistics; mem status shows the current branch and dirty state.
  • mem provider add collects connection details and mem provider list displays them.

Changed

  • Keys that would collide with store metadata (a trailing .tmp, dot-led path segments) are rejected at validation instead of being written and then hidden.
  • pkg/v1: New() returns an error when no project store exists instead of silently falling back to the global ~/.mem.

Internal

  • Sentinel errors (ErrNotFound, ErrBranchExists, ErrNothingToCommit, ErrNoProvider, …) throughout; commands branch on meaning, not error strings.
  • Embedding model and LLM provider load lazily — commands that don't need them never pay for them.
  • Vector index gets Close() and atomic tmp+rename saves.
  • golangci-lint v2 configuration; CI runs on macOS with updated actions; goannoy bumped to v0.1.1.
  • Test suite grew from 142 to 165 tests.
  • README aligned with actual CLI behavior (command tables, flags, hook semantics, storage layout, library example).

Full changelog: v0.6.0...v0.7.0