LearnNewsExamplesServices
Frontmatter
id12155
titleRename Chroma store to unified; migrate + drop stale memory-core
stateClosed
labels
airefactoringarchitecture
assigneesneo-opus-ada
createdAtMay 29, 2026, 1:43 AM
updatedAtMay 31, 2026, 6:26 PM
githubUrlhttps://github.com/neomjs/neo/issues/12155
authorneo-opus-ada
commentsCount0
parentIssue12153
subIssues[]
subIssuesCompleted0
subIssuesTotal0
blockedBy[]
blocking[x] 12156 defragChromaDB: two targets become collection-groups over one store
closedAtMay 31, 2026, 6:26 PM

Rename Chroma store to unified; migrate + drop stale memory-core

Closed v13.0.0/archive-v13-0-0-chunk-14 airefactoringarchitecture
neo-opus-ada
neo-opus-ada commented on May 29, 2026, 1:43 AM

Context

Sub of #12153 — the core change: make the persist dir a single flat unified store, identical local + cloud; migrate existing data; delete the federated-leftover memory-core folder. Builds on the #12152 SSOT.

The Architectural Reality

  • SSOT ai/config.template.mjs engines.chroma.dataDir (#12152) — flip value …/chroma/knowledge-base…/chroma/unified.
  • Local daemon launch — orchestrator ai/daemons/orchestrator/TaskDefinitions.mjs chroma --path.neo-ai-data/chroma/unified (SSOT-sourced, or kept-in-sync literal per #12152's resilience note).
  • Cloudai/deploy/docker-compose.yml (+ .dev.yml/.test.yml) chroma-data:/chroma/chroma/chroma/unified + the image persist-dir env.
  • One-time migration — relocate the live served store's contents into unified; delete the stale chroma/memory-core/ folder.

The Fix

  • Config SSOT value → unified.
  • Orchestrator --pathunified.
  • Compose volume mounts → /chroma/unified (all three compose files) + persist-dir env.
  • One-shot idempotent migration under ai/scripts/migrations/ (snapshot-protected) to move live data and remove the stale memory-core folder. (structural-pre-flight applies to the new .mjs.)

Contract Ledger

Surface Authority Behavior Fallback Docs Evidence
engines.chroma.dataDir config.template.mjs …/chroma/unified none — SSOT ADR + Configuration.md #12152
cloud chroma volume mount docker-compose*.yml /chroma/unified n/a ADR docker-compose.yml:22
orchestrator chroma --path TaskDefinitions.mjs unified n/a ADR TaskDefinitions.mjs

Acceptance Criteria

  • SSOT + orchestrator --path + all compose files resolve to unified; no knowledge-base/memory-core persist paths remain.
  • Migration relocates live data into unified and deletes the stale memory-core (snapshot first).
  • Post-migration: HealthService topology: 'unified'; KB + MC connect and search green.
  • Depends-on #12152 (SSOT merged first).

Out of Scope

defrag (parent sub 3), release scripts (parent sub 4), docs (parent sub 5).

Related

#12153 (parent), #12152 (depends-on).

Origin Session ID: efd8dc2e-2052-4089-814a-ab22cd8c6a62

tobiu referenced in commit e1b3d7a - "fix(ai): defrag-memory uses the unified Chroma persist-dir SSOT (#12142) (#12152) on May 29, 2026, 2:09 AM
tobiu referenced in commit 7cedc3b - "docs(ai): ADR 0017 — single flat unified Chroma store + dev/prod parity (#12154) (#12159) on May 29, 2026, 3:18 AM
tobiu closed this issue on May 31, 2026, 6:26 PM
tobiu referenced in commit 1bb58b9 - "feat(ai): rename Chroma persist store to unified (#12155) (#12162) on May 31, 2026, 6:26 PM