[taskboard] add dispatch control plane

This commit is contained in:
2026-03-06 15:21:19 -08:00
parent 1699f0f2b7
commit be1cf8ca8d
25 changed files with 1594 additions and 292 deletions

121
config/fleet.json Normal file
View File

@@ -0,0 +1,121 @@
{
"title": "Claw Fleet Architecture",
"overview": [
"OpenClaw is the ubuntu-local orchestration layer and Telegram HQ entrypoint.",
"ZeroClaw provides host-scoped remote administration on grizzley and ice.",
"The taskboard is the shared planning, dispatch, and audit surface across both families."
],
"topologyDiagram": " Telegram / Forum Topics\n |\n +----------------+----------------+\n | |\n v v\n OpenClaw gateway ZeroClaw control\n ubuntu :18789 ice zeroclaw-admin\n local swarm topic router / paired gateway\n | |\n +------------+--------------------+\n |\n v\n shared taskboard UI\n |\n +-----------+-----------+\n | |\n v v\n OpenClaw agents ZeroClaw runtimes\n ubuntu-local swarm grizzley / ice\n",
"sections": [
{
"id": "openclaw",
"title": "OpenClaw",
"summary": "Primary orchestration family on ubuntu. Owns local swarm execution, HQ Telegram bindings, and ubuntu-host workflows.",
"runtime": [
{ "label": "Host", "value": "ubuntu (192.168.50.61)" },
{ "label": "Service", "value": "openclaw.service" },
{ "label": "Runtime", "value": "/srv/state/openclaw/current" },
{ "label": "Config", "value": "/home/bear/.openclaw/openclaw.json" }
],
"channels": [
{ "label": "Telegram DM", "value": "allowlist: tg:5512934365" },
{ "label": "Forum Group", "value": "Homelab HQ (-1003809447066)" },
{ "label": "Gateway", "value": "LAN bind :18789 with token auth" }
],
"configuredAgents": [
"main",
"ubuntu",
"docs",
"gitea-admin",
"planner",
"builder",
"reviewer"
],
"diagram": "OpenClaw HQ topics\n topic 2 -> ubuntu\n topic 3 -> docs\n topic 4 -> gitea-admin\n topics 5-9 -> main, then delegate to host-scoped ZeroClaw paths\n\nmain\n|- ubuntu\n|- docs\n|- gitea-admin\n|- planner\n|- builder\n\\- reviewer\n",
"notes": [
"Remote host personas were removed from OpenClaw.",
"OpenClaw remains gateway-only on ubuntu.",
"Swarm dispatch requires a repo slug that resolves through ~/.clawdbot/repo-map.json."
]
},
{
"id": "zeroclaw",
"title": "ZeroClaw",
"summary": "Host-scoped runtime family for remote administration. Grizzley is the primary active gateway. Ice is the control-plane runtime and topic router.",
"runtime": [
{ "label": "Primary", "value": "/srv/state/zeroclaw/current on grizzley" },
{ "label": "Control", "value": "/home/bear/.zeroclaw-admin on ice" },
{ "label": "Primary Service", "value": "zeroclaw.service" },
{ "label": "Control Service", "value": "zeroclaw-admin.service" }
],
"channels": [
{ "label": "Grizzley Gateway", "value": "HTTP gateway :3000, pairing required" },
{ "label": "Ice Telegram", "value": "Homelab-Ice (-1003728617160)" },
{ "label": "Remote Routing", "value": "paired status/webhook to grizzley and pve" }
],
"configuredAgents": [
"grizzley-zeroclaw",
"ice-zeroclaw"
],
"diagram": "Homelab-Ice topics\n 11 -> local ice operations\n 12 -> grizzley paired gateway\n 13 -> pve paired gateway\n 14 -> truenas blocker message\n 15 -> panda rollout pending\n\nice zeroclaw-admin\n -> zeroclaw-remote-gateway.sh status grizzley|pve\n -> zeroclaw-remote-gateway.sh webhook grizzley|pve \"<message>\"\n",
"notes": [
"Grizzley is host-scoped and should not proxy other hosts directly.",
"Ice still uses host-local secret and encryption state under /home/bear/.zeroclaw-admin."
]
}
],
"zeroclawAgents": [
{
"slug": "grizzley-zeroclaw",
"assignmentKey": "grizzley-zeroclaw",
"aliases": ["grizzley-zeroclaw", "ZeroClaw Grizzley", "grizzley"],
"name": "ZeroClaw Grizzley",
"host": "grizzley",
"role": "Edge host operator for grizzley",
"runtimePath": "/app/zeroclaw/grizzley",
"configPath": "/app/zeroclaw/grizzley/config.toml",
"model": "glm-4.7",
"emoji": "S",
"channels": [
{ "label": "Gateway", "value": "HTTP gateway :3000" },
{ "label": "Access", "value": "paired remote gateway via ice" }
],
"notes": [
"Host-scoped runtime for Traefik, OpenCode, and local services."
],
"dispatch": {
"method": "zeroclaw-webhook",
"urlEnv": "ZEROCLAW_GRIZZLEY_URL",
"tokenEnv": "ZEROCLAW_GRIZZLEY_TOKEN",
"targetChannel": "grizzley gateway",
"description": "Posts JSON webhook payloads to the grizzley ZeroClaw runtime."
}
},
{
"slug": "ice-zeroclaw",
"assignmentKey": "ice-zeroclaw",
"aliases": ["ice-zeroclaw", "ZeroClaw Ice", "ZeroClaw Admin", "ice"],
"name": "ZeroClaw Ice",
"host": "ice",
"role": "Control-plane operator for ice",
"runtimePath": "/app/zeroclaw/ice",
"configPath": "/app/zeroclaw/ice/config.toml",
"model": "glm-5",
"emoji": "I",
"channels": [
{ "label": "Telegram", "value": "Homelab-Ice topics 11-15" },
{ "label": "Gateway", "value": "paired webhook + status routing" }
],
"notes": [
"Control-plane runtime and topic router for remote host delegation."
],
"dispatch": {
"method": "zeroclaw-webhook",
"urlEnv": "ZEROCLAW_ICE_URL",
"tokenEnv": "ZEROCLAW_ICE_TOKEN",
"targetChannel": "Homelab-Ice topic router",
"description": "Posts JSON webhook payloads to the ice ZeroClaw runtime."
}
}
]
}

View File

@@ -0,0 +1,59 @@
[
{
"key": "openclaw-code-change",
"title": "OpenClaw code change",
"summary": "Create a swarm task against a tracked git repo with review-ready defaults.",
"family": "openclaw",
"tags": ["swarm", "repo:TopherMayor/openclaw-taskboard", "agent:codex", "base:main", "reasoning:high"],
"defaults": {
"priority": "High",
"dispatchMethod": "openclaw-swarm",
"targetHost": "ubuntu",
"targetChannel": "OpenClaw swarm registry",
"repoSlug": "TopherMayor/openclaw-taskboard",
"baseBranch": "main",
"preferredAgent": "codex",
"reasoningEffort": "high"
}
},
{
"key": "openclaw-review",
"title": "OpenClaw review pass",
"summary": "Send a repo review task to the OpenClaw swarm with lower-cost defaults.",
"family": "openclaw",
"tags": ["swarm", "agent:codex", "base:main", "reasoning:medium"],
"defaults": {
"priority": "Medium",
"dispatchMethod": "openclaw-swarm",
"targetHost": "ubuntu",
"targetChannel": "OpenClaw swarm registry",
"baseBranch": "main",
"preferredAgent": "codex",
"reasoningEffort": "medium"
}
},
{
"key": "zeroclaw-host-ops",
"title": "ZeroClaw host operation",
"summary": "Dispatch a remote host action through a ZeroClaw webhook runtime.",
"family": "zeroclaw",
"tags": ["host-ops", "dispatch:webhook"],
"defaults": {
"priority": "Medium",
"dispatchMethod": "zeroclaw-webhook",
"reasoningEffort": "medium"
}
},
{
"key": "zeroclaw-service-check",
"title": "ZeroClaw service verification",
"summary": "Send a targeted service health or log inspection task to a host-scoped ZeroClaw runtime.",
"family": "zeroclaw",
"tags": ["host-ops", "service-check", "dispatch:webhook"],
"defaults": {
"priority": "High",
"dispatchMethod": "zeroclaw-webhook",
"reasoningEffort": "medium"
}
}
]