- type: session-note -> session-notes (4 files: 2 vault-integration-test, 2 postgres-consolidation phases) - [[Sources/Homelab/ob1-jsonl-watcher]] -> actual filename (5 links across ob1, ai-memory synthesis, Homelab index) - [[Sources/Dev/env-file-hardening]] -> Sources/Homelab/env-file-hardening (gitea entity) Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
3.8 KiB
| type | path | tags | created | updated | ||||
|---|---|---|---|---|---|---|---|---|
| entity | Wiki/Reference |
|
2026-05-08 | 2026-05-24 |
OB1
What it is
OB1 (Open Brain) is Travis's personal AI memory and retrieval system — a self-hosted pgvector/pgvector:pg17 Postgres store holding embeddings of session content, project notes, and vault content for semantic recall across AI conversations. It is the fast, voluminous, agent-facing half of the two-system memory model; the Wiki/Dev/ai-memory-architecture is the slow, curated, human-facing half. OB1 is forked from the upstream community project NateBJones-Projects/OB1.
Correction (2026-05-24 compile): earlier versions of this page described OB1 as a "Supabase + pgvector" stack. The postgres-consolidation recon proved that's wrong — OB1 has always been a self-hosted pgvector container (
homelab-postgres, DB nowpetalbrain), with embeddings from local Ollamanomic-embed-text(768-d), never Supabase.
Current state
Operational and consolidated into the petalbrain Postgres instance. Key facts as of the May 2026 consolidation:
- Storage —
ob1.thoughts(raw captures) +ob1.reflections(synthesized lessons); embeddings live in the sharedpublic.embeddingstable (HNSW, vector_cosine_ops, m=16/ef_construction=64), 512-token chunks / 64-token overlap - Two-layer model — raw captures + a daily reflection job (
claude-sonnet-4-6via Anthropic API direct) that synthesizes generalizable lessons, mirroring the wiki's Sources/Wiki split - Ambient capture — the Sources/Homelab/ob1-jsonl-watcher-ambient-capture-from-claude-code-sessions tails Claude Code / Cowork JSONL session files and posts turn-pairs to OB1's
capture_thought(replaces the earlier "n8n parallel write" idea) - Embedding model — Ollama
nomic-embed-text(768-d), local; switching requires a full re-embed - Tailscale-only access — no public endpoint
ob1-watcher/ob1-enricherdaemons; enricher has a known PENDING_QUERY loop bug pending a fix before restart
Where it lives
- Postgres —
petalbrainDB onhomelab-postgres(pgvector:pg17), Proxmox; schemaob1, owned by theob1_mcpservice role - Embeddings — Ollama (
nomic-embed-text) on the homelab - Capture —
ob1-jsonl-watcherdaemon on herbydev reading~/.claudesession logs - Access — Tailscale-only
Related projects
- Sources/Homelab/ob1-main-deployment — full deployment plan (Phases 0–6)
- Sources/Homelab/ob1-deployment — addendum (Tailscale, Phase 7 Dispatch hook)
- Sources/Homelab/ob1-jsonl-watcher-ambient-capture-from-claude-code-sessions — ambient session capture
- Sources/Homelab/postgres-consolidation-ob1-reflection-layer — consolidation + reflection layer
- Sources/Homelab/postgres-consolidation-followups — reflector activation + cleanup
- Sources/Dev/ai-memory-architecture-research — architecture research session
- Wiki/Reference/tailscale — access layer
- Wiki/Dev/ai-memory-architecture — synthesis page
History
- 2026 — Architecture research: pgvector, harness vs model layers, Poolside/Pi.dev reviewed
- 2026 — Deployment (Phases 0–6); pgvector container + Ollama embeddings; Tailscale-only
- 2026-05-14 — Embedding dim migrated 1536→768 for
nomic-embed-text;ob1-jsonl-watcherplan written - 2026-05-15 — Consolidated into
petalbrain;ob1.thoughts+ sharedpublic.embeddings; reflection layer designed - 2026-05-18 — Dispatch subprocess-leak incident reinforced the case for harness-owned subprocess lifecycle