This release includes 1 security fix for security teams reviewing exposed deployments.
Topics
+10 more
Affected surfaces
ReleasePort's take
Light signalv0.14.1 hardens schema migrations against SQL identifier injection and adds several operational features.
Why it matters: Security: hardened schema migrations mitigate SQL identifier injection (severity 70). Operators should review migration scripts for the new protections.
Summary
AI summaryAdded optional semantic sidecars for lexical, semantic, and hybrid retrieval while hardening schema migrations.
Changes in this release
| Type | Severity | Summary | CVE |
|---|---|---|---|
| Security | High |
Hardened schema migrations against SQL identifier injection. Hardened schema migrations against SQL identifier injection. Source: llm_adapter@2026-06-03 Confidence: high |
— |
| Feature | Low |
Added SQLite `PRAGMA busy_timeout=5000` on bridge connections. Added SQLite `PRAGMA busy_timeout=5000` on bridge connections. Source: llm_adapter@2026-06-03 Confidence: high |
— |
| Feature | Low |
Added indexed `is_learning_candidate` visibility column with legacy backfill. Added indexed `is_learning_candidate` visibility column with legacy backfill. Source: llm_adapter@2026-06-03 Confidence: high |
— |
| Feature | Low |
Blocked direct `promote(...)` on learning‑candidate records and forged `record_type: learning-candidate` content. Blocked direct `promote(...)` on learning‑candidate records and forged `record_type: learning-candidate` content. Source: llm_adapter@2026-06-03 Confidence: high |
— |
| Feature | Low |
Added `index-health` and `index-rebuild` CLI commands for FTS5 and embedding sidecar drift checks. Added `index-health` and `index-rebuild` CLI commands for FTS5 and embedding sidecar drift checks. Source: llm_adapter@2026-06-03 Confidence: high |
— |
| Feature | Low |
Added hybrid retrieval benchmark reporting that writes semantic/hybrid evidence to a separate snapshot. Added hybrid retrieval benchmark reporting that writes semantic/hybrid evidence to a separate snapshot. Source: llm_adapter@2026-06-03 Confidence: high |
— |
| Feature | Low |
Added deterministic local hash embedding provider for safe shadow tests. Added deterministic local hash embedding provider for safe shadow tests. Source: llm_adapter@2026-06-03 Confidence: high |
— |
| Feature | Low |
Added optional trusted command provider for local embedding gateways. Added optional trusted command provider for local embedding gateways. Source: llm_adapter@2026-06-03 Confidence: high |
— |
| Bugfix | Medium |
Made `ensure_column(...)` tolerate duplicate-column races from concurrent migration attempts. Made `ensure_column(...)` tolerate duplicate-column races from concurrent migration attempts. Source: llm_adapter@2026-06-03 Confidence: high |
— |
| Bugfix | Medium |
Wrapped FTS table rebuild in a savepoint and added a concurrency smoke regression test. Wrapped FTS table rebuild in a savepoint and added a concurrency smoke regression test. Source: llm_adapter@2026-06-03 Confidence: high |
— |
Full changelog
v0.14.1 - Governance and Retrieval Hardening
Agent Memory Bridge 0.14.1 hardens the 0.14 governed learning-candidate release and lays the Retrieval v2 foundation for safer BM25 + optional local semantic sidecars.
Thesis
0.14.1 = the 0.14 learning-candidate boundary made safer, while retrieval becomes inspectable, repairable, and ready for opt-in local embeddings without changing the 10-tool MCP surface.
What Changed
- Normalized empty optional text fields from static-schema MCP clients at the server and storage boundaries.
- Allowed durable
kind="memory"writes to tolerate placeholder emptyexpires_atwhile keeping directttl_secondsmisuse strict. - Normalized empty
claim_signalfilters so placeholdersignal_id,tags_any, orcorrelation_idvalues do not accidentally block eligible pending signals. - Hardened schema migrations against SQL identifier injection by validating table and column identifiers before
PRAGMA table_info(...). - Made
ensure_column(...)tolerate duplicate-column races from concurrent migration attempts. - Added SQLite
PRAGMA busy_timeout=5000on bridge connections. - Wrapped FTS table rebuild in a savepoint and added a concurrency smoke regression.
- Added an indexed
is_learning_candidatevisibility column and legacy backfill so learning-candidate suppression is exact and no longer depends on broad string scans. - Blocked direct
promote(...)on learning-candidate records and conservative forgedrecord_type: learning-candidatecontent. - Added MCP-boundary regressions for static-schema
store,claim_signal,recall, andexportbehavior. - Added a derived
memory_embeddingssidecar table for optional semantic retrieval while keepingmemoriesas the source of truth. - Added
lexical,semantic, andhybridretrieval modes, withlexicalstill the default. - Added a deterministic local hash embedding provider for safe shadow tests and an optional trusted command provider for local embedding gateways.
- Added
index-healthandindex-rebuildCLI commands for FTS5 and embedding sidecar drift checks. - Added hybrid retrieval benchmark reporting that keeps the canonical benchmark lexical-only and writes semantic/hybrid evidence to a separate snapshot.
- Documented the embedding command trust boundary and clarified that FTS/embedding indexes are derived caches, not durable authority.
Evidence
Current release snapshot:
pytest:261 passed- canonical lexical benchmark:
question_count = 11,memory_expected_top1_accuracy = 1.0,memory_mrr = 1.0,file_scan_expected_top1_accuracy = 0.636 - hybrid shadow benchmark:
semantic_expected_top1_accuracy = 0.455,hybrid_expected_top1_accuracy = 1.0,hybrid_degraded_relevant_rank_count = 0 - live copied-index proof: FTS and embedding rebuilds preserved
2148memoriesrows and the authoritative memory-row digest - targeted hardening subset: 59 targeted checks passed in
tests/test_v0141_hardening.py,tests/test_storage.py, andtests/test_learning_candidates.py - release contract: passed
- public surface contract: passed
- onboarding contract: passed
pip check: passed- public MCP tools:
10
Boundaries
The public MCP surface remains unchanged at 10 tools:
store,recall,browse,statsforget,promote,exportclaim_signal,extend_signal_lease,ack_signal
This release does not turn AMB into a scheduler, distributed lock service, hosted backend, or automatic durable writeback path. The FTS startup regression is a smoke-level concurrency check, not a proof of all multi-process lock interleavings.
Semantic and hybrid retrieval remain opt-in. The bundled hash provider is a deterministic local regression tool, not a claim of broad embedding quality. Command embeddings are trusted local code and receive memory text; they should be enabled only with reviewed local commands.
Security Fixes
- Hardened schema migrations against SQL identifier injection by validating identifiers before `PRAGMA table_info(...)`
Weekly OSS security release digest.
The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.
No spam, unsubscribe anytime.
Share this release
About zzhang82/Agent-Memory-Bridge
MCP-native, local-first memory for coding agents that turns coding sessions into reusable engineering memory: decisions, gotchas, and domain knowledge.
Related context
Beta — feedback welcome: [email protected]