Vertiefung

Dateisystem-Architektur

Warum JSON statt DB, wie Workspaces isoliert sind, und das Speicherformat im Detail.

01
Workspace-Isolation

Jedes Projekt bekommt einen eigenen Ordner unter ~/.context-memory/. Kein Projekt sieht die Daten eines anderen. Der Name wird sanitized: Sonderzeichen raus, lowercase.

# get_workspace() in cm_core.py
safe_name = re.sub(r'[^\w\-.]]', '_', project.lower())

"Mein Projekt!" → mein_projekt_
"SaaS-v2.0" → saas-v2.0
02
Index vs. Node-Dateien

Der Index (index.json) ist ein flacher Key-Value-Store: Node-ID → Metadaten. Die eigentlichen Inhalte liegen als Markdown in nodes/. So kann der Index schnell durchsucht werden ohne alle Dateien lesen zu muessen.

index.json ← schneller Zugriff auf Metadaten
{"arch-001": {"title":..., "tags":..., "confidence":...}}

nodes/arch-001.md ← voller Inhalt, nur bei Bedarf gelesen
# REST API mit Express.js
**Type:** architecture | **Confidence:** high
---
3-Schicht-Architektur...
03
History & Concurrent Access

history.json loggt jede Aktion (add, update, delete, ingest, relate). Max 500 Eintraege, FIFO. Bei gleichzeitigem Zugriff: Last-write-wins. Kein Locking, aber dokumentiert im Log.

# history.json — Audit Trail
[
  {"timestamp": "2025-06-15T10:04:06Z",
   "action": "add", "node_id": "dec-001",
   "details": "Added: PostgreSQL [decision]"},
  {"action": "ingest", "node_id": "arch-001",
   "details": "Ingested from spec.pdf"},
  ...
] ← max 500, aelteste fallen raus