semantic-memory 0.5.1

Local-first hybrid semantic search (SQLite + FTS5 + usearch 2.25) with bitemporal truth and typed receipts
Documentation
# Regression Test Matrix

## Embedding invariants

- Fake embedder returns fewer embeddings than requested for document ingest.
- Fake embedder returns more embeddings than requested for document ingest.
- Same mismatch cases for facts/chunks/messages/episodes reembedding.
- NaN/+Inf/-Inf rejected through every public write path.
- Wrong dimension rejected through every public write path.
- Invalid persisted vector blob rejected without panic.

## Deletion / stale-state

- Delete document with chunks + episodes + FTS + HNSW hit; assert no stale search hit.
- Delete fact referenced by episode cause; assert no dangling episode_causes.
- Delete namespace; assert structured report counts all affected rows.
- Full integrity after deletes reports clean.

## Integrity

- Equal-count but wrong FTS rowid map fails.
- Equal-count but wrong HNSW keymap fails.
- q8 missing state follows chosen mandatory/optional policy.
- Repair removes stale derived state and/or backfills missing acceleration rows.

## HNSW persistence

- Corrupt header.
- Truncated graph/data/keymap.
- Huge declared byte_len.
- Dimension mismatch.
- Keymap missing.
- Save failure leaves pending ops replayable.
- Repeated upsert does not produce duplicate stale hits.
- Concurrent save/write does not corrupt sidecar.

## Search

- Mismatched cosine inputs fail.
- NaN scores do not enter ranking.
- Namespace/session/source filtered HNSW falls back when ANN candidates are filtered out.
- top_k/candidate/rerank caps enforced.
- deterministic tie order.
- conversation vector search runs via blocking helper.

## Packaging

- Clean extraction builds/tests/clippy/docs without parent workspace.
- Certifier returns zero findings.
- Archive contains no stale generated sidecars, no prior archives, no target/target-* dirs.