Repository navigation
Conversation
Akryum
commented
Jun 4, 2026
- Move cache storage and merge logic into core store-engine modules
- Bridge Vue cache through fine-grained signals for item, list, and relation updates
- Add store-engine tests for writes, layers, observers, tombstones, serialization, and CRDT behavior
- Add Vue cache granularity coverage and legacy benchmarks
There was a problem hiding this comment.
Code Review
This pull request introduces a new framework-agnostic storage engine under packages/core/src/store-engine and refactors the Vue package to act as a thin reactivity bridge over it. This architecture provides fine-grained reactivity, ensuring that single-item writes do not trigger full collection list re-runs. The review feedback highlights several critical issues, including memory leaks in the Vue cache bridge (due to signals not being dropped on item eviction or cache reset), a bug in index mapping where explicit null updates are ignored, a bug in replaceModuleContents when handling arrays, a performance bottleneck in clearCollection due to multiple synchronous flushes, and dangling timers in the staggering controller upon engine disposal.
Important
The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.
@rstore/connector-toolkit
@rstore/core
@rstore/devtools
@rstore/directus
@rstore/monospace
@rstore/nuxt
@rstore/nuxt-directus
@rstore/nuxt-drizzle
@rstore/nuxt-monospace
@rstore/nuxt-multiplayer
@rstore/nuxt-multiplayer-server
@rstore/offline
@rstore/shared
@rstore/vite-directus
@rstore/vite-monospace
@rstore/vue
commit: |
8cbc12c to
a746816
Compare
fe9642d to
79c6168
Compare
851370b to
a39ad93
Compare
a39ad93 to
451bd8c
Compare
- Move cache storage and merge logic into core store-engine modules - Bridge Vue cache through fine-grained signals for item, list, and relation updates - Add store-engine tests for writes, layers, observers, tombstones, serialization, and CRDT behavior - Add Vue cache granularity coverage and legacy benchmarks
…e cases - Release item signals + engine observers on delete/GC/reset to stop unbounded subscription growth; add SignalRegistry.size() introspection - Drop an item from its index bucket when an indexed field is cleared to null, while preserving partial-update inheritance for untouched fields - Truncate array module state in place on setState/clear to avoid stale slots and holes - Batch clearCollection deletes behind a single flush (was O(N) observer dispatches) - Cancel the staggering budget-reset timer on engine dispose so it can't re-drive a torn-down engine Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
451bd8c to
60bcbd0
Compare