v3.38.14
ruvnet/ruflov3.38.14Aug 21, 2026by ruvnet
AI Summary
Fixes `memory_store` tags cache-loss issue where tags were dropped after successful writes, causing subsequent retrieves to return empty tags.
Key Highlights
- Fixed `bridgeStoreEntry` to invalidate cache instead of storing partial entries.
- Ensures `tags`, `access_count`, `createdAt`, and `updatedAt` are consistent after store and retrieve operations.
Full Release Notes
Follow-up patch to v3.38.13 — fixes the last of the recently-reported issues.
## Fix
**#3051** — `memory_store` accepted a `tags` array and returned `success: true`, but the very next `memory_retrieve` (or `memory_list`) came back with `tags: []`.
Root cause was in `bridgeStoreEntry`: after the DB insert (which serialized tags correctly to the `tags` column), the write-through cache set stored only a partial entry — `{ id, key, namespace, content, embedding }` — with no `tags`. The next `bridgeGetEntry` hit that cache and returned `tags: cached.tags || []` = `[]`.
Fix: replace the partial write-through with cache invalidation. Next read re-fetches the authoritative row (which correctly parses the `tags` JSON column) and repopulates the cache with the full shape. Side benefit: same defect had also caused `access_count`, `createdAt`, and `updatedAt` to be stale from the cache — invalidation fixes those too.
Proven regression test in `__tests__/memory-store-tags-cache-3051.test.ts`: pre-fix returns `tags: []`, post-fix returns the real tags.
## Install
- `npx ruflo@latest` (or `@alpha` / `@v3alpha` — all three tags aligned)
## Merged PR
Closes #3051 — [#3079](https://github.com/ruvnet/ruflo/pull/3079)
🤖 Generated with [RuFlo](https://github.com/ruvnet/ruflo)
https://claude.ai/code/session_0118jMsYhwHD5dx2vStENsEB