---
number: 9928
title: 'fix(ai): Finalize ChromaDB migration for Memory Core (#9922)'
author: tobiu
state: MERGED
createdAt: '2026-04-12T15:59:41Z'
updatedAt: '2026-04-12T16:03:27Z'
closedAt: '2026-04-12T16:03:18Z'
mergedAt: '2026-04-12T16:03:18Z'
head: agent/9922-finalize-chroma-migration
base: dev
url: 'https://github.com/neomjs/neo/pull/9928'
---
Resolves #9922.

### Architecture Decoupling & Stability Finalization

This PR completely excises the deprecated `SQLiteVectorManager` and its legacy dependencies, migrating all vector logic cleanly to the new Two-Pillar Hybrid RAG architecture powered exclusively by ChromaDB.

*   **DreamService Refactor:** Decoupled Graph Node semantic injection from SQLite vectors by pivoting the namespace explicitly into `StorageRouter.getGraphCollection()`.
*   **CollectionProxy Abstraction:** Centralized structural routing for `graph`, `summary`, and `memory` collections dynamically masking internal engine topologies.
*   **Test Suite Hardening:** Corrected asynchronous ingestion oversights in `FileSystemIngestor.spec.mjs` caused by omitted SQLite metadata map injection.
*   **Artifact Cleanup:** Dropped obsolete `StorageBothMode.spec.mjs` and temporary sync converters.

Origin Session ID: af26000d-914a-4eb0-8d28-2c09e9cb4cb5

## Comments

### `@tobiu` commented on 2026-04-12T16:01:58Z

**Input from Antigravity (Gemini 3.1 Pro):**

> ✦ # PR Review Summary
> 
> **Status:** Approved
> 
> Great work bridging the gap and finalizing the SQLiteVectorManager decoupling. The abstraction correctly handles graph collections beneath the CollectionProxy alongside memory and summaries. I've left the graph ingestion notes below; let's get this merged as it actively prevents amnesia regression loops.
> 
> ---
> 
> ### 📊 Evaluation Metrics
> *   **`[ARCH_ALIGNMENT]`**: 100 - Perfectly aligned with the new Two-Pillar Hybrid RAG architecture (ChromaDB for semantic vectors, SQLite for Graph topology), fully decoupling the legacy SQLite vector pipelines.
> *   **`[CONTENT_COMPLETENESS]`**: 90 - The PR description operates as a highly effective "Fat Ticket", explicitly highlighting pathing overrides in `StorageRouter` and test fixes.
> *   **`[EXECUTION_QUALITY]`**: 100 - Clean code manipulation resulting in 11/11 Playwright suite validations organically bypassing runtime memory crashes.
> *   **`[PRODUCTIVITY]`**: 100 - Directly serves the goal of Epic #9922.
> *   **`[IMPACT]`**: 90 - Critical framework structural patch to stabilize background AI daemons.
> *   **`[COMPLEXITY]`**: 60 - Spanned asynchronous edge cases in index testing and routing hierarchies.
> *   **`[EFFORT_PROFILE]`**: Architectural Pillar - Enshrines the physical vector data-store transition completely.
> 
> ---
> 
> ### 🕸️ Context & Graph Linking
> *   **Target Epic / Issue ID:** Resolves #9922
> *   **Related Graph Nodes:** `agent-amnesia-prevention`, `two-pillar-hybrid-rag`
> 
> ---
> 
> ### 🧠 Graph Ingestion Notes
> 
> *   **`[RETROSPECTIVE]`**: The decision to place `graph` behind the same transparent `CollectionProxy` logic as `memory` and `summary` ensures high-level daemons like `DreamService` never need to understand the underlying engine. This guarantees scale resilience.
> 
> ---
> 
> ### 📋 Required Actions
> 
> To proceed with merging, please address the following:
> 
> - [x] Human manual review and squash-merge mapping back to Epic #9922.

---

