Two Mac Minis connected via Tailscale. Mini 1 runs Nathan's personal AI infrastructure. Mini 2 runs LOVR Agency operations. Shared backbone, separate credentials.
Running
Warning
Down
Live Connection
03
Memory Architecture
Seven distinct layers of memory, from ephemeral to permanent. Each serves a different purpose in maintaining context, learning, and continuity across sessions.
1. Conversation Context
Ephemeral · Current session only · Lost on close
~200K tokens
2. STATE.md
Session → Session · Read via SessionStart hook · Current work context
24KB
3. Redis Queue
BullMQ job history · Agent 2 task queue · 7 day retention
DB 1
4. People Database
PostgreSQL · Structured contact data · Natural language queries
32 contacts
5. Mem0 Semantic Memory
Qdrant vector store · Ollama embeddings · Claude Haiku decomposition
18 memories
6. Obsidian Vault
CouchDB LiveSync · MacBook + iPhone · Hourly rsync to Mini 2
597MB
7. GitHub Backup
Permanent · jarvis-systems + jarvis-vault repos · Version history
622 files
04
Agent 2 — The Command Chain
From phone to system response. Voice or text, every message follows this path. Full Claude Code access, MCP tools, and semantic memory.
05
MCP Server Constellation
12 specialized servers extending Claude Code's capabilities. Each unlocks a different domain: Google workspace, research, communication, automation.
Google Ecosystem
Research/Scraping
Productivity
Personal
06
LOVR Agency Intelligence
Mini 2 runs agency operations. Daily intelligence sync at 6am AEST. Xero + Airtable → PostgreSQL → Metabase dashboard. Zero cost, full automation.
Workflow
Trigger
Action
Status
Morning Brief
6:30am weekdays
Daily summary via Telegram
● Active
Daily Intelligence Sync
6:00am daily
Xero + Airtable → PostgreSQL
● Active
Content Approval
Manual trigger
Telegram button approvals
● Active
Weekly Client Report
Monday 8am
Client health summaries
● Active
New Lead Alert
Airtable webhook
Instant notifications
● Active
Email Digest
5pm daily
Gmail summary
● Active
Instagram Monitor
Hourly
Per-client engagement alerts
● Active
Ad Spend Monitor
9pm daily
Meta spend summary
● Active
Proposal Generator
Manual trigger
Research + draft proposals
● Active
Content Calendar Sync
Daily 8am
Airtable → Calendar
● Active
Data Pipeline
Xero Financial Data + Airtable Client Pipeline → PostgreSQL (financials, clients, team_utilization, marketing tables) → Metabase Public Dashboard
Cost Savings
$0/month vs $120-10,080/year for commercial BI tools. PostgreSQL + Metabase OSS. All Sav's credentials, Nathan's removed.
07
Reliability & Redundancy
Auto-restart, hourly backups, and redundant storage. System recovers automatically from most failures.
Auto-Recovery
LaunchAgents (KeepAlive=true)
All critical services restart automatically on crash. orchestrator, agent2, mcp-bridge, cloudflared, memory-api.
Docker Restart Policies
All containers set to --restart always. Survives reboots, crashes, and Docker daemon restarts.
BullMQ Job Persistence
All queued jobs survive Redis restart. Worker picks up where it left off.
Backup Layers
Hourly rsync: Mini 1 → Mini 2
Complete vault directory. 597MB. Runs hourly via cron.
GitHub: jarvis-systems + jarvis-vault
622 files in jarvis-systems. Manual commits. Version history preserved.
Obsidian CouchDB LiveSync
Real-time sync to MacBook Pro + iPhone via Cloudflare tunnel.
Currently Down
● com.jarvis.terminal-watcher (exit 126) — Non-critical. Terminal session logging. Can restart manually. ● com.trading.killswitch (exit 78) — Trading system safety. Currently inactive. No impact.
Single Points of Failure
● MCP Bridge (port 8765) — No MCP access if down. LaunchAgent restarts automatically. ● Redis (jarvis-redis-1) — BullMQ queue stops. Auto-restart via Docker. Jobs persist. ● Cloudflare Tunnel — External access lost. Services still run locally. Auto-reconnect.
08
Intelligence Stack
Four Claude models plus local Ollama. Router decides which model handles each request based on complexity, cost, and latency requirements.
Opus 4.6
claude-opus-4-6
When Used:
Complex reasoning, client deliverables, deep research, architectural decisions
Haiku classifies intent → determines urgency & complexity → routes to appropriate model. Cost vs capability tradeoff optimized automatically. Agent 2 handles all Claude Code spawning with Sonnet by default.
09
Brand Voice & Output Layer
Everything the system produces follows JRVS brand guidelines. Monolith design system: minimal, precise, confident.
Design System
Parchment
#F5F0EB
Primary background for all client deliverables. Light-dominant, brutalist luxury.
Copper
#B08D6A
Primary accent. Headings, highlights, calls to action.
Typography
Playfair Display
Display text, headings
Inter
Body text, UI elements
JetBrains Mono
Code, technical labels
Output Types
Client Deliverables
HTML reports, research documents, strategy decks. All single self-contained files. Deployed to Cloudflare Pages.
Telegram Responses
Markdown formatted. Chunked to 4000 chars. Direct, minimal tone.
Obsidian Knowledge Base
597MB vault. CLAUDE.md files, research notes, architecture docs. Synced everywhere.