Release 7.0.5 #43

Merged
ric merged 10 commits from v7.0.x into main 2026-10-29 11:01:10 +00:00
Owner

OmniMem 7.0.5, tagged v7.0.5 on v7.0.x. The full notes are in CHANGELOG.md.

  • Current Claude models work for fact extraction and the other Claude calls: OmniMem now reads the first text block of a reply (GitHub #4). Claude Haiku 5.5 is the default model.
  • Memories imported into a running server's database are found without a restart (#5).
  • A refused Host gets 421 on /mcp, before the token check: MCP_ALLOWED_HOSTS=* is now accepted, there's a startup hint, and the docs are fixed (#6).
  • Recall results add similarity (raw similarity, beside the score they're ranked by), and a forget preview adds a hint saying how to confirm (#7).
  • RECALL_EXPERIENCE_SPAN (opt-in): experience is added to the score instead of multiplying it, so it can't outrank a clearly better match (#8).
  • EMBEDDING_QUERY_PREFIX and EMBEDDING_PASSAGE_PREFIX: for models such as bge and e5, which expect a prefix (#9).
  • Extracted facts follow their source through the lifecycle and carry as_of, and preferences are stricter (#10).
  • CONTRADICTION_MODEL and RSS_SUMMARY_MODEL: both are configurable from the environment and the settings window (#11).

🤖 Generated with Claude Code

https://claude.ai/code/session_01V9cZqempzHD2h4Xyjm3gFL

OmniMem 7.0.5, tagged `v7.0.5` on `v7.0.x`. The full notes are in CHANGELOG.md. - **Current Claude models work for fact extraction and the other Claude calls**: OmniMem now reads the first text block of a reply (GitHub #4). Claude Haiku 5.5 is the default model. - **Memories imported into a running server's database are found without a restart** (#5). - **A refused Host gets 421 on `/mcp`, before the token check**: `MCP_ALLOWED_HOSTS=*` is now accepted, there's a startup hint, and the docs are fixed (#6). - **Recall results add `similarity`** (raw similarity, beside the score they're ranked by), and a `forget` preview adds a `hint` saying how to confirm (#7). - **`RECALL_EXPERIENCE_SPAN`** (opt-in): experience is added to the score instead of multiplying it, so it can't outrank a clearly better match (#8). - **`EMBEDDING_QUERY_PREFIX` and `EMBEDDING_PASSAGE_PREFIX`**: for models such as bge and e5, which expect a prefix (#9). - **Extracted facts follow their source through the lifecycle and carry `as_of`**, and preferences are stricter (#10). - **`CONTRADICTION_MODEL` and `RSS_SUMMARY_MODEL`**: both are configurable from the environment and the settings window (#11). 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_01V9cZqempzHD2h4Xyjm3gFL
ric added 10 commits 2026-10-29 10:28:16 +00:00
Newer models can open a reply with a block that isn't text, and reading
content[0] as 6.x did failed every fact extraction with "no text in the
first content block". The default model for extraction, query expansion,
contradiction checks and RSS summaries moves to claude-haiku-5-5.
Version 7.0.5.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01V9cZqempzHD2h4Xyjm3gFL
feat: RECALL_EXPERIENCE_SPAN makes the experience boost a bounded nudge
Some checks failed
Build / macOS arm64 (push) Successful in 4m33s
Build / Linux amd64 (push) Has been cancelled
Build / Linux arm64 (push) Has been cancelled
Build / Windows x64 (cross-built) (push) Has been cancelled
Build / Publish (push) Has been cancelled
Coverage and security / Test coverage (push) Has been cancelled
Coverage and security / Security scans (push) Has been cancelled
708303fae2
Recall multiplies by the experience weight however relevant a memory is,
so a boosted loose match outranks a near-exact one: a user's 36-query
benchmark found 20 targets ranked first on raw similarity and 11 through
recall(). Above 0, the weight adds (weight - 1) * span instead, which
settles near-ties without beating clearly better matches. 0, the default,
keeps 6.x's multiplier.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01V9cZqempzHD2h4Xyjm3gFL
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01V9cZqempzHD2h4Xyjm3gFL
fix: a refused Host gets 421 on /mcp before the token check, and the docs say how hosts match
Some checks failed
Build / Linux amd64 (push) Has been cancelled
Build / Linux arm64 (push) Has been cancelled
Build / macOS arm64 (push) Has been cancelled
Build / Windows x64 (cross-built) (push) Has been cancelled
Build / Publish (push) Has been cancelled
Coverage and security / Test coverage (push) Has been cancelled
Coverage and security / Security scans (push) Has been cancelled
a6ad0019d9
/mcp answered a Host that isn't allowed with rmcp's 403 while the docs
said 421, and the token check ran first, so a probe without a token saw
401 and looked healthy. OmniMem's guard now sits in front of /mcp ahead
of authentication, logs the setting to change, and accepts `*`. The
server warns at startup when it listens everywhere with no host names
allowed. Docs: how ports and `*` match, 3.x imports, the git pull trap
for 6.x clones of main, the empty priming SSE event. The search help
text and the dead Anthropic feed are fixed too. GitHub #6.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01V9cZqempzHD2h4Xyjm3gFL
feat: recall results carry raw similarity, and a forget preview says how to confirm
Some checks failed
Build / Linux amd64 (push) Has been cancelled
Build / Linux arm64 (push) Has been cancelled
Build / macOS arm64 (push) Has been cancelled
Build / Windows x64 (cross-built) (push) Has been cancelled
Build / Publish (push) Has been cancelled
Coverage and security / Test coverage (push) Has been cancelled
Coverage and security / Security scans (push) Has been cancelled
af40bc5048
`score` is the ranked score while the relevance floor and weak band read
raw similarity, so results now show both. GitHub #7.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01V9cZqempzHD2h4Xyjm3gFL
fix: memories another process writes are found without restarting the server
Some checks failed
Build / Linux amd64 (push) Has been cancelled
Build / Linux arm64 (push) Has been cancelled
Build / macOS arm64 (push) Has been cancelled
Build / Windows x64 (cross-built) (push) Has been cancelled
Build / Publish (push) Has been cancelled
Coverage and security / Test coverage (push) Has been cancelled
Coverage and security / Security scans (push) Has been cancelled
d7735045dd
The vector matrix is loaded once at start, so an `omnimem import` beside a
running server stayed invisible to recall until a restart. The store now
checks PRAGMA data_version before searching and reloads the matrix when
another connection has committed. GitHub #5.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01V9cZqempzHD2h4Xyjm3gFL
feat: query and passage prefixes for embedding models that expect them
Some checks failed
Build / Linux amd64 (push) Has been cancelled
Build / Linux arm64 (push) Has been cancelled
Build / macOS arm64 (push) Has been cancelled
Build / Windows x64 (cross-built) (push) Has been cancelled
Build / Publish (push) Has been cancelled
Coverage and security / Test coverage (push) Has been cancelled
Coverage and security / Security scans (push) Has been cancelled
79aba3e4ed
EMBEDDING_QUERY_PREFIX goes before every search query and
EMBEDDING_PASSAGE_PREFIX before everything stored, so models such as
bge-*-en-v1.5 and e5 can be used as trained. TextEmbedder gains
embed_queries (defaulting to embed_texts), and the engine's searches use
it. Unset by default, so MiniLM's vectors don't move; a bge or e5 model
without prefixes gets a startup warning. Also corrects the --no-embed
hint, which pointed at reindex (that reloads vectors, it doesn't embed).
GitHub #9.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01V9cZqempzHD2h4Xyjm3gFL
feat: extracted facts follow their source, carry an as-of date, and preferences mean rules
All checks were successful
Build / macOS arm64 (push) Successful in 4m59s
Build / Linux arm64 (push) Successful in 8m37s
Build / Windows x64 (cross-built) (push) Successful in 1m48s
Coverage and security / Test coverage (push) Successful in 1m5s
Build / Linux amd64 (push) Successful in 28m20s
Coverage and security / Security scans (push) Successful in 34s
Build / Publish (push) Successful in 50s
9f541ed611
Deprioritising, archiving or forgetting a memory now does the same to the
facts and preferences extracted from it, and reinstating it restores the
ones it took, as they were. Facts store `as_of` (their source's
created_at) and recall shows it as a date. The extraction prompt files
statuses, tasks and plans as facts, never preferences. A deprioritise by
query tolerates a fact its source has already taken. GitHub #10.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01V9cZqempzHD2h4Xyjm3gFL
feat: CONTRADICTION_MODEL and RSS_SUMMARY_MODEL pick the model for those Claude calls
All checks were successful
Build / macOS arm64 (push) Successful in 5m3s
Build / Linux arm64 (push) Successful in 8m45s
Build / Windows x64 (cross-built) (push) Successful in 1m49s
Coverage and security / Test coverage (push) Successful in 48s
Build / Linux amd64 (push) Successful in 32m18s
Coverage and security / Security scans (push) Successful in 34s
Build / Publish (push) Successful in 52s
006360f4b0
The contradiction check and RSS summaries (with digest item extraction)
were fixed to Haiku, as in 6.x. Both now read a model from the
environment, omnimem.env or the settings window's Configuration page,
defaulting to claude-haiku-5-5. Closes #11 on release.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01V9cZqempzHD2h4Xyjm3gFL
release: OmniMem 7.0.5, with configurable models, prefixes and facts that follow their source
All checks were successful
Coverage and security / Test coverage (push) Successful in 44s
Coverage and security / Security scans (push) Successful in 33s
Build / macOS arm64 (push) Successful in 5m5s
Build / Linux arm64 (push) Successful in 8m30s
Build / Windows x64 (cross-built) (push) Successful in 1m47s
Coverage and security / Test coverage (pull_request) Successful in 50s
Build / Linux amd64 (push) Successful in 31m15s
Coverage and security / Security scans (pull_request) Successful in 33s
Build / Publish (push) Successful in 1m3s
858fa12671
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01V9cZqempzHD2h4Xyjm3gFL
ric merged commit 3790d5b752 into main 2026-10-29 11:01:10 +00:00
ric referenced this pull request from a commit 2026-10-29 11:01:11 +00:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
ric/omnimem!43
No description provided.