Shroomy Architecture
Mac mini · Remote production 74.208.95.219 · OpenClaw · Relay · Memory / Distillation
Snapshot: 2026-03-15 · connecting…
/portal canonical
Gateway :18789
Session API :18890
Neo4j 443 nodes
Discord + Telegram
Operational Live and functioning
Needs Wiring Built, needs integration
In Progress Actively building
Updated Wired this session (Mar 15)
Missing Absent or broken
Local Mac mini (dev/control)
Remote eager-curran (74.208.95.219)
Shared Spans both planes
Cloud External service
LOCAL · MAC MINI
Operational
| Component | Detail | Status |
| com.shroomy.agent | launchd → main.py · Telegram polling + APScheduler | OK |
| Local Graph | Memgraph-compatible Bolt :7687 | OK |
| Local Ollama | :11434 · llama3:latest (health check) | OK |
| OpenClaw Gateway | LaunchAgent · :18789 loopback · v2026.3.12 | OK |
| Filesystem | heartbeat/ · memory/ · schema/ · logs/ | OK |
| Channels | ALL DISABLED (dev/control node only) | Disabled |
REMOTE · EAGER-CURRAN
74.208.95.219
| Service | Manager | Port | Role | Status |
| nginx / Plesk | systemd | :80/:443 | TLS ingress, route termination | OK |
| OpenClaw Gateway | systemd | :18789 | Realtime chat for /portal · | OK |
| Shroomy Session API | systemd | :18890 | Session CRUD + Graphiti + distillation | OK |
| discussion-api | PM2 | :18804 | /discussion state, users, attachments, AI actions | OK |
| Ingestion Preprocessor | systemd | :18793 | Dedup, sanitize, extract | OK |
| Graphiti MCP | PM2 | :3010 | Episode ingestion + graph search | OK |
| Neo4j | systemd | :7474/:7687 | Primary graph (443 nodes) | OK |
| Ollama | systemd | :11434 | llama3.2-vision:11b + nomic-embed | OK |
| agent-bridge | PM2 | :18790 | Token-auth remote ops | OK |
| openclaw-layer6 | PM2 | internal | Self-healing + reconnect | OK |
| relay-discord-bot | PM2 | internal | Discord + WhatsApp relay | OK |
| monitoring-dashboard | PM2 | :3011 | Host observability | OK |
| PostgreSQL | systemd | :5432 | Relay + discussion + hosted apps | OK |
| Redis | systemd | :6379 | Shared cache | OK |
| ChromaDB | systemd | :8000 | Auxiliary vector store | OK |
RELAY BOT
Operational
| Component | Detail | Status |
| relay-discord-bot | PM2 · tsx · Discord.js · Prisma | OK |
| Discord ingress | lib/discord/bot.ts | OK |
| WhatsApp ingress | lib/whatsapp/client.ts | OK |
| AI pipeline | local | openai | anthropic | custom | OK |
| Loop guard | shouldProcessMessage depth check | OK |
| Persistence | Prisma → PostgreSQL :5432 | OK |
/portal Remote
Operational
Canonical web chat UI
Static app behind nginx/Plesk
Single public destination
Legacy paths redirect here
/gw/ Remote
Operational
→ Gateway :18789
Realtime WebSocket chat
Transport for /portal
/session-api/ Remote
Operational
→ Session API :18890
Session CRUD · Graphiti
Distillation endpoints
/discussion Remote
Operational
Native discussion workspace
Categories + channels + attachments
Discord import + AI in-thread actions
/api/dashboard Remote
Operational
JSON source for dashboard
Fed by live exporters
Mac mini + remote collectors
Integration Hub · Session API :18890 Remote
Session Persistence Remote
Operational
Token-scoped sessions
Neo4j: WebchatSession + WebchatMessage
Entity references + edges
Graph / Memory Bridge Remote
Operational
Transcript → add_memory
Status/search passthrough
Graphiti MCP :3010 bridge
Distillation Hub Remote
Operational
POST /consult · GET /consult/:id
GET /learned-patterns
GET /distillation/status
POST /distillation/flush-digest
Knowledge Distillation Remote
teacher-client.mjs Remote
Operational
Wraps standalone Copilot CLI
Execution/planning prompts
execFile(copilot -p ...)
distillation-pipeline.js Remote
Operational
Normalize → classify → score
Deduplicate → enrich → store
LearnedPattern + TeacherConsultation
discord-digest.js Remote
Wired
Batched digest summaries
Posts to #status-reports
DISCORD_BOT_TOKEN wired verified
via systemd service env
Pattern Storage Remote
Operational
TeacherConsultation →PRODUCED→
LearnedPattern →REFERENCES→
Entity + indexes
Neo4j Graph · 1405 Nodes Remote
Node Labels Remote
WebchatMessage 1122 · WebchatSession 70
Episodic 22 · Entity 26
WebchatUser 6 · LearnedPattern 77
TeacherConsultation 77 · SynProgram 2 · PainPoint 1
Relationships Remote
OWNS · HAS_MESSAGE · RELATES_TO
MENTIONS · NEXT_EPISODE
PRODUCED · REFERENCES
Browser → /portal Chat Remote
Operational
Browser→nginx :443→/gw/ WS→Gateway :18789→Ollama + Graphiti→Response
Session Persistence Remote
Operational
/session-api/→:18890→Preprocessor :18793→Neo4j graph + Graphiti add_memory
Discussion Workspace Remote
Operational
Browser→/discussion→discussion-api :18804→Prisma/PostgreSQL→attachments on disk
Knowledge Distillation Remote
Operational
POST /consult→teacher-client→Copilot CLI→pipeline→Neo4j (LearnedPattern)→Discord digest
Relay Bot Remote
Operational
Discord / WhatsApp→relay-bot→loop guard→AI providers→Prisma/PG→reply
Local Shroomy Local
Operational
Telegram→main.py→Memgraph :7687→heartbeat→agent-bridge :18790
Dashboard Collectors Shared
Operational
Mac mini collector→signed payload→/api/dashboard→snapshot refresh | Remote probe→PM2/systemd health→UI badges
PM2 Runtime · Verified on Host Remote
relay-discord-bot Remote
online · 41h
tsx · Node 22.22.1
2 restarts
discussion-api Remote
online · PM2
Node HTTP API · :18804
Discussion channels + AI actions
agent-bridge Remote
online · 3D
Node 22.22.0
:18790
graphiti-mcp Remote
online · 3D
Python fork
:3010
openclaw-layer6 Remote
online · 26h
Node 22.22.1
14 restarts
monitoring Remote
online · 2D
Next.js :3011
env=production
Ollama (Remote) Remote
Operational
llama3.2-vision:11b chat + vision
nomic-embed-text 768d embed
systemd · :11434
Ollama Cloud Cloud
Operational
minimax-m2.5 primary chat
kimi-k2.5 fallback
qwen3-coder-next subagents
qwen3-vl:235b vision
gemma3:4b graphiti + L6
Graphiti MCP :3010 Remote
Operational
add_memory · search_nodes
search_memory_facts
MCP-over-HTTP tool surface
Scheduled Jobs verified Remote
Operational
openclaw-compaction daily 01:00 · systemd timer
openclaw-backup daily 03:30 · systemd timer
failopen-recovery every 10min
Always-On Remote
Operational
failopen-recovery every 10min
memory-watcher always on
Pushes files → Graphiti episodes
Self-Healing Remote
Operational
openclaw-layer6 PM2
Reconnect + fix-pattern
monitoring-dashboard :3011
Public Remote
:80/:443 nginx
:18789 Gateway (/gw/)
:18890 Session API (/session-api/)
Internal Remote
:18790 agent-bridge
:18793 preprocessor
:18792 secondary gateway
:3010 Graphiti · :3011 monitoring
Data Stores Remote
:7474/:7687 Neo4j
:5432 PostgreSQL · :6379 Redis
:8000 ChromaDB · :11434 Ollama
Other / Local Shared
:3000 DutyStation · :3007 jovial-meninsky
:8443/:8880 Plesk · :22 sshd
Local: :7687 Memgraph · :11434 Ollama
⚡ Session Update · Mar 15, 2026
8 components wired this session:
· M1 Vector Search — pgvector + HNSW indexes installed, 5 tables created
· M2 Embed Pipeline — 624 embeddings (Neo4j → Ollama → pgvector), PM2 cron every 6h
· M5 Hybrid Search — NEW three-tier cascade (pgvector cosine + Neo4j graph + BM25 keyword), port 18895
· M6 Dream Migration — NEW dream-cycle.mjs with consolidation/association/reflection, PM2 cron daily 02:00
· M8 Reflection Pipeline — Weekly reflection via dream-cycle.mjs
· Discord Digest — DISCORD_BOT_TOKEN verified in systemd env
· Scheduled Jobs — 3 systemd timers verified (compaction, backup, failopen)
· Dashboard Collectors — Health API polling operational
10-Model Cognitive Integration · Sentient Upgrade Directive Shared
SENTIENT UPGRADE DIRECTIVE Shared
SOUL.md Property 17 · MEMORY.md
M1 · Vector Search updated
nomic-embed-text
pgvector VECTOR(768) · HNSW index
Wired
M2 · Embed Pipeline updated
embed-pipeline.mjs
Neo4j → Ollama → pgvector · 624 vectors
Wired
M3 · RLM Engine
gemma3:4b cloud
Recursive decomp
Wire
M4 · Graph DB
Neo4j :7687
1405 nodes active
OK
M5 · Hybrid Search new
pgvector + Neo4j + BM25
Three-tier RRF cascade · :18895
Wired
M6 · Dream Migration new
dream-cycle.mjs
PM2 cron daily 02:00 · 10 dreams
Wired
M7 · Emotional Embed
5D state → embed
Similarity matching
Wire
M8 · Reflection Pipeline updated
Weekly reflection
dream-cycle.mjs · consolidation + association
Wired
M9 · Context Continuity
cognitive_context
Boot injection
Wire
M10 · Auto-Discovery
Correlation analysis
Auto DEPENDS_ON
Wire
/portal = canonical UI Remote
Browser users enter via /portal.
Realtime via /gw/.
Persistence via /session-api/.
Session API = hub Remote
Session persistence, Graphiti bridge,
distillation endpoints, digest hooks.
:18790 ≠ :18890 Remote
agent-bridge = :18790
session-api = :18890
Critical port split.
Relay = sibling ingress Remote
Not the portal. Discord/WhatsApp
with own AI pipeline + Prisma.
Discussion = native workspace Remote
Categories, channels, users,
attachments, imported Discord history,
now backed by Prisma/PostgreSQL.
Local = control node Local
Telegram, heartbeats, local graph.
Not the public web runtime.
Distillation = production Remote
Teacher consult, pattern storage,
Discord digests on remote host.