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).
- Cloud —
ai/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
--path → unified.
- 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
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
Context
Sub of #12153 — the core change: make the persist dir a single flat
unifiedstore, identical local + cloud; migrate existing data; delete the federated-leftovermemory-corefolder. Builds on the#12152SSOT.The Architectural Reality
ai/config.template.mjsengines.chroma.dataDir(#12152) — flip value…/chroma/knowledge-base→…/chroma/unified.ai/daemons/orchestrator/TaskDefinitions.mjschroma--path→.neo-ai-data/chroma/unified(SSOT-sourced, or kept-in-sync literal per#12152's resilience note).ai/deploy/docker-compose.yml(+.dev.yml/.test.yml)chroma-data:/chroma/chroma→/chroma/unified+ the image persist-dir env.unified; delete the stalechroma/memory-core/folder.The Fix
unified.--path→unified./chroma/unified(all three compose files) + persist-dir env.ai/scripts/migrations/(snapshot-protected) to move live data and remove the stalememory-corefolder. (structural-pre-flight applies to the new.mjs.)Contract Ledger
engines.chroma.dataDirconfig.template.mjs…/chroma/unified#12152docker-compose*.yml/chroma/unifieddocker-compose.yml:22--pathTaskDefinitions.mjsunifiedTaskDefinitions.mjsAcceptance Criteria
--path+ all compose files resolve tounified; noknowledge-base/memory-corepersist paths remain.unifiedand deletes the stalememory-core(snapshot first).topology: 'unified'; KB + MC connect and search green.#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