Files
Kaloyan Danchev 9be1f64d99
ci/woodpecker/push/woodpecker Pipeline was successful
second-brain: hybrid Claude memory + git-based vault sync (Mac + Unraid)
2026-07-14 12:06:38 +03:00

43 lines
2.6 KiB
Markdown

---
tags: [project, memory, claude, sync]
topic: second-brain
date: 2026-07-14
status: active
related:
- "[[projects-index]]"
- "[[services-catalog]]"
- "[[openbrain]]"
---
# second-brain — хибридна памет за Claude Code (Mac + Unraid)
Изградена 2026-07-13/14. Код: `~/Homelab/second-brain` (Mac) = `/mnt/user/projects/second-brain` (Unraid). Repo: `git.xtrm-lab.org/jazzymc/second-brain`.
## Архитектура
- **SessionStart hook** — инжектира working memory + скорошни логове + активни решения + скорошни бележки, routed по cwd → vault
- **SessionEnd hook** — `claude -p` haiku обобщение в 3-то лице → `Session-Memory/logs/YYYY-MM-DD.md` → git commit+push → FTS индекс
- **`memory` skill** — „запомни" (working memory, 2500 cap), „решихме" (append-only ADR със supersedes верига), recall със задължителни цитати
- **FTS5 индекс** — SQLite, локален на всяка машина (не се синхронизира, rebuild-ва се)
- **Decision ledger** — `Decisions/` във всеки vault: решение никога не се пренаписва, supersede верига пази пълната история
## Синхронизация (замени неработещия Obsidian LiveSync)
| Repo | Mac | Unraid |
|------|-----|--------|
| obsidian-{ampeco,homelab,personal} | `~/Obsidian/*` | `/mnt/user/projects/obsidian/*` (`/root/Obsidian` symlink) |
| claude-memory (споделена working memory) | `~/.claude/memory` | `.claude/memory` в appdata |
| second-brain (код) | `~/Homelab/second-brain` | `/mnt/user/projects/second-brain` |
- **Mac**: launchd `org.xtrm.vault-sync` на 5 мин (pull --rebase + commit + push)
- **Unraid**: cron през `/boot/config/plugins/dynamix/vault-sync.cron` на 5 мин
- **Конфликти**: session логове и memory.md са `merge=union` (append-only → auto-merge); други файлове → rebase abort + лог във `vault-sync.log`, sync-ът на този vault спира до ръчна намеса
- **Boot persistence** (Unraid): symlinks в `install-claude.sh`; python3 през NerdTools плъгин
## Операционни бележки
- Старите LiveSync копия: `/mnt/user/projects/obsidian-livesync-old-20260714`
- Sync лог: `~/.claude/memory/vault-sync.log` (и на двете машини)
- Unraid repos: `core.fileMode false` (FUSE)
- Recall: `python3 ~/Homelab/second-brain/scripts/recall.py "<query>"`