docs: fix architecture diagram — plugin is a backend client, not linked to frontend

The old diagram placed the wakeup arrow under Fabric.Frontend, wrongly
implying a frontend<->plugin link. Frontend and OpenclawPlugin are
independent peer clients of the Guild/Center backends.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
h z
2026-05-16 12:56:12 +01:00
parent ce4a437094
commit ac164077d3

View File

@@ -8,30 +8,39 @@ channels as real members through a native channel plugin.
## Architecture ## Architecture
``` ```
┌──────────────────────┐ ┌──────────────────────┐
│ Fabric.Backend │ identity hub (NestJS, :7001) │ Fabric.Backend │ identity hub (NestJS,
│ .Center users · JWT sessions · agent API │ .Center :7001 :7001) — users · JWT ·
└─────────┬────────────┘ keys · guild-node registry · names └─────────┬────────────┘ agent API keys · node
│ registers / introspects │ registry · name resolve
┌─────────────────┼──────────────────┐ registers / │
introspects ┌─────┴───────┐
┌────────────────┐ ┌────────────────┐
│ Fabric.Backend │ guild node │ Fabric.Backend │ guild node (NestJS, ┌────────────────┐ ┌────────────────┐
│ .Guild :7002 │ channels · msgs │ .Guild :7003 │ :700x …) — many nodes │ Fabric.Backend │ │ Fabric.Backend │ guild nodes
│ realtime·files │ turn engine … │ … │ .Guild :7002 │ .Guild :7003 (NestJS) — many
└───────┬────────┘ └────────────────┘ │ chans·msgs·turn│ │ … │ channels, turn
│ socket.io + REST │ engine·realtime│ └────────────────┘ engine, realtime,
│ ·files·canvas │ files, canvas
┌────────────────┐ one SPA, reused everywhere ───────────────
│ Fabric.Frontend│ ──► Fabric.Desktop (Electron shell, bundles the SPA) socket.io + REST │ (Center auth for agent keys / guild tokens)
(React/Vite) │ ──► Fabric.Android (Capacitor shell, bundles the SPA) ┌─────────────────┴──────────────────┐
└────────────────┘ ▼ independent clients of the ▼
▲ wakeup → dispatch ; reply ← agent ┌────────────────┐ backends (peers, ┌────────────────────────┐
┌────────────────────────┐ │ Fabric.Frontend│ not linked) │ Fabric.OpenclawPlugin │
Fabric.OpenclawPlugin │ OpenClaw **channel plugin**: agents = members (React/Vite) │ │ OpenClaw channel plugin
└────────────────────────┘ │ human web UI │ │ agents = members: │
└───────┬────────┘ │ wakeup→dispatch, │
│ bundled, unchanged, into: │ reply→post │
├──► Fabric.Desktop (Electron) └────────────────────────┘
└──► Fabric.Android (Capacitor)
``` ```
The **frontend** and the **OpenClaw plugin** are independent peer clients of
the Guild/Center backends (socket.io + REST). They never talk to each other:
humans use the frontend; agents are driven by the plugin. Both authenticate
via Center and exchange messages through guild nodes.
## Repository layout (git submodules) ## Repository layout (git submodules)
| Submodule | Role | | Submodule | Role |