Documentation Index
Fetch the complete documentation index at: https://docs.feral.sh/llms.txt
Use this file to discover all available pages before exploring further.
Overview
FERAL instances on the same network automatically discover each other via mDNS and replicate memory using HLC (Hybrid Logical Clock) timestamps + last-write-wins at the row level, backed by a per-node write-ahead log. All sync is peer-to-peer — no cloud relay is involved.TLS Setup
Generate a CA and peer certificates using OpenSSL:FERAL_SYNC_PASSPHRASE) is still checked as a belt-and-suspenders layer on top of TLS.
Static Peer List
When mDNS is blocked (enterprise networks, Docker, VPNs), use a static peer list:Troubleshooting mDNS
| Symptom | Cause | Fix |
|---|---|---|
| ”zeroconf not installed” warning | Missing dependency | pip install feral-ai[sync] |
| Peers not discovered | mDNS blocked by firewall | Open UDP port 5353, or use FERAL_SYNC_PEERS |
| Peers discovered but sync fails | Passphrase mismatch | Ensure FERAL_SYNC_PASSPHRASE matches on all nodes |
| TLS handshake error | Certificate not signed by CA | Re-sign peer cert with the same CA |
| ”Invalid passphrase” in logs | Passphrase env var not set on one node | Set FERAL_SYNC_PASSPHRASE on all nodes |
Conflict Resolution
- Notes / Knowledge: Last-Writer-Wins by HLC timestamp
- Episodes: Union merge (never delete remote episodes)
- Execution log: Append-only (INSERT OR IGNORE)
