Repository navigation
v3.11.0 — recall reaches the right memories and checks its work
Version 3.11.0 makes recall search the whole brain more reliably, repairs fiber snapshots, and gives operators a direct way to measure sampled self-recall. It also makes automatic capture and memory expiry defaults match their documented intent.
Highlights
- Better recall candidates. Semantic anchors use indexed nearest-neighbor search instead of scoring only the first 1,000 neurons. Keyword anchors use BM25 relevance instead of record-id order. Newly written memories can rank by creation age and an explicitly requested priority. An optional fiber-level vector retriever can surface a relevant fiber even when none of its neurons won the anchor search.
- More honest confidence. A keyword-only match receives a proportional confidence discount when neither a neuron embedding nor a fiber-vector anchor grounds it. Intersection boosting is capped; fiber-vector hits count as grounding.
- Snapshots that retain fiber state. Export/import now round-trips every persisted fiber field, including summaries, tags, metadata, and the separately stored
fiber_vec. Old seven-field snapshots remain importable. PublicFiber.idvalues round-trip in their dashed form. - Capture and retention controls. Explicit
auto_capture_mode = "off"stops automatic writes.ungatedis available for intentional capture without the quality gate. New auto-classified DECISION, ERROR, TOOL, and PREDICTION memories no longer receive an implicit expiry. - A retrieval diagnostic.
smem brain recall-check --sample-size Nprobes sampled stored summaries through normal recall and reports how often their fibers are found. The existing health score remains a freshness and hygiene report. - Storage query plans. Neuron-state reads switch between direct record reads and a set query at the measured batch threshold, while the neuron-to-fiber lookup has regression coverage for its index plan.
Compatibility and rollout
- The fiber-vector retriever is disabled by default. To use it for an existing brain, backfill its vectors with
python scripts/backfill_fiber_vectors.py --brain <name> --apply, then enablefiber_vector_enabled. Enabling it without a backfill leaves that retrieval source empty. Back up the brain before a restore or migration. embedding_anchor_modedefaults toauto, with explicitknnandscanmodes.keyword_anchor_min_content_lendefaults to 25 and can be set to 0. Retrieval order and confidence values may change for existing queries.- The new expiry defaults apply to new writes and type edits; existing expiry timestamps are not rewritten. Explicit expiry remains effective. An inherited write-gate
mode = "off"keeps its prior ungated behavior; use explicitauto_capture_mode = "off"to stop automatic capture. smem brain recall-checksamples at most 100 of up to 1,000 scanned fibers. Its result is a diagnostic, not a guarantee of answer quality.- Publishing this draft should follow approval and merge of the release PR. Production deployment is a separate operation.
Verification
- Full local non-stress suite: 7,440 passed, 154 skipped, 1 expected failure.
scripts/pre_ship.pypassed all release checks: 16 synchronized version fields, changelog entry, Ruff, formatting, mypy, import and classifier smoke tests, cognitive integration, plugin checks, and documentation freshness.- Strict MkDocs build passed. Python sdist and wheel for 3.11.0 built successfully. Dashboard tests passed (21/21), and its production build passed.
- All nine GitHub CI jobs passed for release PR #254 at
1e2865a7, including Python 3.11/3.12, SurrealDB integration, documentation, and package build. Recheck if the PR head changes. Publishing the draft triggers the package release workflow; package publication and production deployment are not claimed here.
Changes
- Retrieval and ranking: #242, #244, #249. Indexed neuron anchors (#243) and the optional fiber-vector retriever (#245) entered
mainthrough #248. - Storage, snapshots, and query plans: #247, #248, #250. The
Fiber.idcorrection (#246) also entered through #248. - Capture, retention, and diagnostics: #251, #252, #253.