Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .claude-plugin/marketplace.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
},
"metadata": {
"description": "Reflex-based memory system for AI agents with SurrealDB backend. Stores experiences as interconnected neurons, recalls through spreading activation — not search.",
"version": "3.11.0"
"version": "3.12.0"
},
"plugins": [
{
Expand All @@ -16,7 +16,7 @@
"repo": "acidkill/surreal-memory"
},
"description": "Reflex-based memory system for AI agents with SurrealDB backend — stores experiences as interconnected neurons and recalls them through spreading activation, mimicking how the human brain works.",
"version": "3.11.0",
"version": "3.12.0",
"author": {
"name": "Toni Nowak / AI-Flow NOWAK"
},
Expand Down
2 changes: 1 addition & 1 deletion .claude-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "surreal-memory",
"version": "3.11.0",
"version": "3.12.0",
"description": "Reflex-based memory system for AI agents with SurrealDB backend — stores experiences as interconnected neurons and recalls them through spreading activation, mimicking how the human brain works.",
"author": {
"name": "Toni Nowak / AI-Flow NOWAK"
Expand Down
58 changes: 57 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,65 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

## [Unreleased]

## [3.12.0] — 2026-09-25 — consolidation can resume its committed work

Large maintenance runs now make bounded progress and can continue from durable
checkpoints after interruption. Semantic discovery also detects source changes
that invalidate its saved work, while pruning, retention, compression, and
fiber-wide operations avoid relying on unbounded in-memory scans.

### Added

- Durable consolidation progress tracks committed work across bounded strategy
steps. Runs can resume across process interruptions, with lease fencing and
replay-safe tool events preventing competing workers or duplicate effects.
- Semantic-link discovery stores bounded staged state and source-revision
fences. It can resume discovery across checkpoints, detect stale work when
source records change, and recover safely when source drift repeats.
- Keyset-paged fiber censuses, maturation reads, compression, and activity
scans keep large maintenance jobs from requiring whole collections in memory.

### Changed

- Consolidation strategies and pruning advance through durable, committed
substeps. Retention resumes from its last committed phase after an error
rather than restarting already-completed work.
- Alias-pair checks use source indexes, unused connectivity queries are
removed from prune scans, and semantic-link candidate collection has a
bounded memory footprint.
- Schema migration advances compatible unfinished v3.11 consolidation
checkpoint metadata to schema v12 while retaining its phase, cursor, and
counters. Checkpoints with a different engine or progress-format marker are
left untouched.

### Fixed

- **Resumable semantic-link discovery** — discovery and similarity progress now checkpoint durably and resume from committed cursors/rows; changed source data invalidates stale progress.
- Compression preserves backups and resumes fiber processing safely, including
compatibility with older stored compression state.
- Context-overflow reranker requests split into smaller requests without
dropping or resetting candidate scores.
- Embedding credentials for OpenAI-compatible providers are isolated from
unrelated provider requests.
- Semantic discovery safely recovers unapplied legacy work, tolerates
unchanged changefeed metadata, handles barriers across changefeed cursors,
and safely restarts stale checkpoints.
- Semantic-link apply checkpoints batch their updates, and keyset range scans
remain bounded at page boundaries.
- Optional SDK-specific test fences no longer fail installations without that
optional package.

### Compatibility and rollout

- The database schema advances to v12 through the normal startup migration.
Take the usual database backup before deploying, particularly when a
consolidation may be in progress.
- Compatible v3.11 progress records retain the `3.11.0:checkpoint-v1` engine
marker; the marker is a checkpoint-compatibility identifier, not a package
version field, and it remains stable across compatible package releases.
Migration advances schema metadata without rewriting a checkpoint phase,
cursor, or counters. v3.12 can resume a compatible v3.11 checkpoint when its
schema, progress format, run options, and requested strategies still match;
incompatible markers and formats remain fenced off and are not rewritten.

## [3.11.0] — 2026-09-23 — recall reaches the right memories and checks its work

Expand Down
35 changes: 19 additions & 16 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,24 +19,27 @@ Restart your AI tool. Your agent now remembers.

---

## What's new in 3.11.0

- Recall can use BM25-ranked keyword anchors and indexed semantic anchors across
the whole brain. An optional fiber-vector retriever can also surface a fiber
whose neurons did not win an anchor search; existing fibers need a deliberate
vector backfill before enabling it.
- Creation age and an explicitly requested priority now affect recall ranking.
Confidence is reduced when no embedding or fiber-vector anchor grounds a
match, even if keyword anchors are present.
- Brain snapshots retain the persisted fiber fields and stored fiber vectors.
`smem brain recall-check` samples stored summaries through normal recall to
report self-recall separately from the health score.
- `auto_capture_mode = "off"` now disables automatic writes. Auto-classified
decisions, errors, tools, and predictions no longer receive an implicit
expiry; explicit expiry settings still apply.
## What's new in 3.12.0

- Consolidation now advances through bounded, durable work units. Interrupted
runs can resume from committed checkpoints, including semantic-link
discovery, deduplication, fiber censuses, compression, and lifecycle work.
- Semantic-link discovery limits candidate memory and records source revisions
so stale or repeatedly changing source data can be detected and recovered
safely instead of replaying unbounded work.
- Pruning and retention resume between committed substeps after errors, and
indexed keyset scans keep large graph operations bounded.
- The schema migration carries compatible unfinished v3.11 checkpoints
forward while preserving their phase data and `3.11.0:checkpoint-v1`
compatibility marker. Package-version bumps do not invalidate this v1
checkpoint epoch; incompatible formats, schema state, or run parameters
remain fenced off from resume.
- Reranker requests that exceed context limits are split without losing
candidate scores, and OpenAI-compatible embedding credentials are isolated
from unrelated provider requests.

See [CHANGELOG.md](CHANGELOG.md) for migration details and the complete list of
changes.
changes. For earlier releases, see the changelog.

---

Expand Down
4 changes: 2 additions & 2 deletions integrations/surreal-memory-client/package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion integrations/surreal-memory-client/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@acidkill/surreal-memory-client",
"version": "3.11.0",
"version": "3.12.0",
"description": "TypeScript client for the Surreal-Memory REST API \u2014 typed access to brains, neurons, synapses, fibers, recall, and sync.",
"type": "module",
"main": "dist/index.cjs",
Expand Down
2 changes: 1 addition & 1 deletion integrations/surrealmemory/openclaw.plugin.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
"kind": "memory",
"name": "Surreal-Memory",
"description": "Brain-inspired persistent memory for AI agents — neurons, synapses, and fibers. REQUIRED: set plugins.slots.memory = \"surrealmemory\" in openclaw.json to disable the default memory-core plugin and activate Surreal-Memory as the exclusive memory provider.",
"version": "3.11.0",
"version": "3.12.0",
"configSchema": {
"jsonSchema": {
"type": "object",
Expand Down
4 changes: 2 additions & 2 deletions integrations/surrealmemory/package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion integrations/surrealmemory/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "surrealmemory",
"version": "3.11.0",
"version": "3.12.0",
"description": "Surreal-Memory plugin for OpenClaw \u2014 graph-based persistent memory for AI agents with SurrealDB backend",
"type": "module",
"main": "dist/index.js",
Expand Down
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ build-backend = "hatchling.build"

[project]
name = "surreal-memory"
version = "3.11.0"
version = "3.12.0"
description = "Reflex-based memory system for AI agents with SurrealDB backend — retrieval through activation, not search"
readme = "README.md"
license = "MIT"
Expand Down
2 changes: 1 addition & 1 deletion src/surreal_memory/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
from surreal_memory.engine.reflex_activation import CoActivation, ReflexActivation
from surreal_memory.engine.retrieval import DepthLevel, ReflexPipeline, RetrievalResult

__version__ = "3.11.0"
__version__ = "3.12.0"

__all__ = [
"__version__",
Expand Down
5 changes: 3 additions & 2 deletions src/surreal_memory/engine/consolidation_progress.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,15 +12,16 @@
from typing import Any
from uuid import uuid4

from surreal_memory import __version__
from surreal_memory.storage.base import NeuralStorage
from surreal_memory.storage.surrealdb.schema import SCHEMA_VERSION
from surreal_memory.utils.timeutils import ensure_naive_utc, utcnow

logger = logging.getLogger(__name__)

PROGRESS_FORMAT_VERSION = 1
CONSOLIDATION_ENGINE_VERSION = f"{__version__}:checkpoint-v1"
# Keep this compatibility epoch stable across package releases; change it only
# when checkpoint semantics become incompatible.
CONSOLIDATION_ENGINE_VERSION = "3.11.0:checkpoint-v1"
LEASE_SECONDS = 180
INCOMPLETE_STATUSES = {"queued", "running", "paused", "failed"}

Expand Down
1 change: 1 addition & 0 deletions tests/unit/test_consolidation_progress.py
Original file line number Diff line number Diff line change
Expand Up @@ -98,6 +98,7 @@ async def test_new_run_persists_committed_checkpoints_and_completion() -> None:
assert session.state["status"] == "running"
assert session.state["schema_version"] > 0
assert session.state["engine_version"] == progress_module.CONSOLIDATION_ENGINE_VERSION
assert session.state["engine_version"] == "3.11.0:checkpoint-v1"
assert storage.started == 1

await session.checkpoint(
Expand Down
2 changes: 1 addition & 1 deletion tests/unit/test_health_fixes.py
Original file line number Diff line number Diff line change
Expand Up @@ -485,7 +485,7 @@ class TestVersionBump:
def test_version_is_current(self) -> None:
import surreal_memory

assert surreal_memory.__version__ == "3.11.0"
assert surreal_memory.__version__ == "3.12.0"


class TestPackageIntegrity:
Expand Down
4 changes: 2 additions & 2 deletions vscode-extension/package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion vscode-extension/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
"name": "surrealmemory",
"displayName": "Surreal-Memory",
"description": "Visual brain explorer, inline recall, and memory management for Surreal-Memory",
"version": "3.11.0",
"version": "3.12.0",
"publisher": "ai-flow-nowak",
"license": "MIT",
"preview": true,
Expand Down
Loading