CortexDB · docs

CortexDB 0.9.6 — blob extraction repaired under the unified WAL

Patch release. One important fix: multimodal blob extraction works again on the unified-WAL write path — a regression present since v0.9.0, surfaced by an external real-data report on 2026-08-05. Plus cortexdb-connectors 0.2.16/0.2.17 with two batches of real-workspace Slack fixes. No storage format changes, no migration; 0.9.x data directories load as-is.

The fix (the headline)

Since v0.9.0, CORTEX_UNIFIED_WAL (the production default, and the architecture going forward) routed single POST /v1/experience writes through the indexer tail — which rebuilt each stored event without the API-resolved physical BlobRef. A content.kind=blob_ref experience (pdf/docx/image/audio uploaded via POST /v1/blobs) was therefore written and embedded but stamped Complete as plain text: the enrichment scanner's blob filter never matched and the configured Tika/vision/Whisper content processors were never invoked. Only text/plain (inlined at capture) passed through.

Now the indexer tail re-resolves the event's logical blob_id against the same blob metadata store instance the API layer resolves with — shared by construction — applying the same owner ACL (a blob owned by another actor stays opaque; DISC-024 parity) and the same binary-only gate. Wired into both tail apply paths (per-item and bulk) and the legacy crash-reconcile path, with regression pins so it cannot silently come back. Blob-backed experiences land as Pending, the scanner dispatches them, and extraction runs — with enrichment on or off.

Also in this area:

Connectors 0.2.16 / 0.2.17 (PyPI)

Two Slack bug-fix batches driven by a real-workspace hunt:

Compatibility