Added
EMBEDDING_API_KEY, an optional embedding-only credential resolved ahead of
OPENAI_API_KEY and LLM_API_KEY. Embeddings are already independently
configurable — AI_MEMORY_EMBEDDING_PROVIDER, _MODEL, _DIM and
_BASE_URL each have their own setting — but there was no key to go with
them, so pointing AI_MEMORY_EMBEDDING_BASE_URL at a second provider sent it
whichever credential the chat model happened to use. voyage and
google/gemini were unaffected: they already name their own key. openai
now resolves EMBEDDING_API_KEY → OPENAI_API_KEY → LLM_API_KEY (the last
still only with a custom base URL); openai-compat resolves
EMBEDDING_API_KEY → LLM_API_KEY and stays keyless when neither is set.
With the new variable absent, resolution is byte-identical to before. Both
NotConfigured messages name it, since that error is where an operator hits
the missing-key path. (#514)
- The standalone
ai-memory-importer companion can now replay bounded generic
external-conversation JSON into the existing observation/consolidation
pipeline. It is dry-run by default; --apply sends one ordered /hook/batch
with the dedicated external-import wire identity (stored in core's closed
other bucket), with extension provenance for assistant and system messages.
Full-envelope validation, client-side credential redaction,
stable session/event idempotency keys, event/byte caps, and a durable partial
failure manifest make interrupted imports safely resumable. Product-specific
ChatGPT/Claude export adapters and watch folders remain out of tree. (#483)
- Added
ai-memory workstreams, a read-only checkout-local list of recent
managed workstreams with the current selection first, linked harnesses,
timestamps, and stable ids. Human-readable and --json output share the same
bounded POST query, which follows run's exact workspace, project,
repository, and worktree identity without returning checkout paths,
fingerprints, or native session ids. The Docker shell wrapper routes the
command through its native host client so repository identity remains
correct. (#499)
Fixed
- OpenCode subagent session pages no longer use the fixed
You are a subagent spawned by another session. preamble as their title. The zero-LLM
synthesizer now promotes the first usable task line from the prompt body and
falls back to the session identity when the prompt contains only the
preamble. Repeated real user requests still remain separate session pages.
(#518)
Checksums (SHA256)
572b3ec67ea080f1c28bfbaf92e437481aabe074605de690a4621ea550c3091a ai-memory-hooks.tar.gz
448f6cfad616e13692598dd49709ce9dec10eed0f702818ccca4a0c54a79f8c7 ai-memory-install-hooks
b1cdcfcda06d5bb7c69f31745367252a3a129e3bbcaf0e3355a6eda083612397 ai-memory-linux-aarch64.tar.gz
d7185a4b766cf24c62518f7d8dc2a56bc5078e0a202077532da7358da8489a71 ai-memory-linux-x86_64.tar.gz
18c06f70c4eead5ab2931bf7cbd812b3fadd95d33203e56b3fb570e8acde4cf7 ai-memory-macos-aarch64.tar.gz
477572e300275a9b8ee9ea5d4e14bbb76a743105a1f171d0b8864e58247fe228 ai-memory-macos-x86_64.tar.gz
407f425602be5a3866ef8e024de68cdfc9ab052d9558bc751bb8b6662f51aef2 ai-memory-windows-x86_64.zip
6a91c44ffa2e85d3b5a6ce26a4ccff0286b91d08d276d2bb4d47c346b036ee8b ai-memory-wrapper.cmd
f4912fadae3f7aa0fa2f1612b40c8a915462330c217a6e7780cdd7be5ce5b068 ai-memory-wrapper.ps1
a83bde7e2a372181805be5670fb35f121bcec6cd73c5be86d8917fead9fff1dd ai-memory-wrapper
Install
# Arch Linux (AUR)
yay -S ai-memory-bin # prebuilt Linux x86_64/aarch64 binary
yay -S ai-memory # builds from source
# Docker
docker pull akitaonrails/ai-memory:1.34.0
# macOS aarch64/x86_64 (no toolchain): download the matching ai-memory-macos-<arch>.tar.gz below,
# extract it, and follow the bundled docs/macos.md.
# Windows x86_64 (no toolchain): download ai-memory-windows-x86_64.zip below,
# extract it, and follow the bundled docs/windows.md.
# From source
cargo install --git https://github.com/akitaonrails/ai-memory --tag v1.34.0