From 9be1f64d9997eb5dc85812ebf46fe422954e69fc Mon Sep 17 00:00:00 2001 From: Kaloyan Danchev Date: Tue, 14 Jul 2026 12:06:38 +0300 Subject: [PATCH] second-brain: hybrid Claude memory + git-based vault sync (Mac + Unraid) --- docs/second-brain.md | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 docs/second-brain.md diff --git a/docs/second-brain.md b/docs/second-brain.md new file mode 100644 index 0000000..a346112 --- /dev/null +++ b/docs/second-brain.md @@ -0,0 +1,42 @@ +--- +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 ""`