docs: mark all implemented vision items with commit refs
Some checks failed
CI / Typecheck (push) Has been cancelled
CI / Lint (push) Has been cancelled
CI / Broker tests (Postgres) (push) Has been cancelled
CI / Docker build (linux/amd64) (push) Has been cancelled

17 of 22 items done, 2 partial. Updated all section headers and
added implementation notes with commits and timestamps.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Alejandro Gutiérrez
2026-04-08 00:12:37 +01:00
parent 125b576e2c
commit 21cb6efced

View File

@@ -3,7 +3,7 @@
**Date:** 2026-04-07 23:01 CEST **Date:** 2026-04-07 23:01 CEST
**Author:** Alejandro Gutiérrez + Claude (Opus 4.6) **Author:** Alejandro Gutiérrez + Claude (Opus 4.6)
**Status:** Internal brainstorm — not committed to public roadmap **Status:** Internal brainstorm — not committed to public roadmap
**Last updated:** 2026-04-07 23:36 CEST **Last updated:** 2026-04-08 00:09 CEST
--- ---
@@ -47,7 +47,7 @@ Replace `setTimeout` with a persistent cron scheduler (broker-side). AI sends `s
> **Implemented:** 2026-04-07 23:35 · `e873807` · DB-persisted schedules, zero-dep cron parser, restart recovery, `--cron` CLI flag > **Implemented:** 2026-04-07 23:35 · `e873807` · DB-persisted schedules, zero-dep cron parser, restart recovery, `--cron` CLI flag
### 5. Heartbeats / session supervisor + simulation clock ### 5. Heartbeats / session supervisor + simulation clock — DONE
**Keepalive layer:** WebSocket ping/pong for connection health. A CLI-side supervisor monitors the WS connection and relaunches Claude Code if it drops. Broker marks peers as disconnected on WS close. **Keepalive layer:** WebSocket ping/pong for connection health. A CLI-side supervisor monitors the WS connection and relaunches Claude Code if it drops. Broker marks peers as disconnected on WS close.
@@ -81,11 +81,13 @@ Simulation clock: x10 | sim time: 2026-04-08 14:30 | tick: 42/480
**Effort:** 1 day (heartbeat + clock), 1 day (simulation framework + personas). **Effort:** 1 day (heartbeat + clock), 1 day (simulation framework + personas).
> **Implemented:** 2026-04-07 · `05d9b56` · Per-mesh clock state, configurable speed x1-x100, auto-pause on empty mesh, heartbeat ticks via system push
--- ---
## Tier 2 — Strong ideas, needs design ## Tier 2 — Strong ideas, needs design
### 6. Mesh webhooks / REST API / external WebSocket ### 6. Mesh webhooks / REST API / external WebSocket — PARTIAL (webhooks done)
Three surfaces for external integration: Three surfaces for external integration:
@@ -97,7 +99,9 @@ Three surfaces for external integration:
**Effort:** Half day (webhooks alone), 2-3 days (full API surface). **Effort:** Half day (webhooks alone), 2-3 days (full API surface).
### 7. Connectors: Slack, Telegram as peers > **Partial:** 2026-04-07 · `b55cf26` · Inbound webhooks implemented (POST /hook/:meshId/:secret → push to mesh). REST API and external WS remain.
### 7. Connectors: Slack, Telegram as peers — DONE
**Approach 1 — Connector-as-peer (recommended start):** A bridge process joins the mesh as a peer named "Slack-#general" and relays messages bidirectionally. Peers see it in `list_peers` with `peerType: "connector"`. One connector per channel. **Approach 1 — Connector-as-peer (recommended start):** A bridge process joins the mesh as a peer named "Slack-#general" and relays messages bidirectionally. Peers see it in `list_peers` with `peerType: "connector"`. One connector per channel.
@@ -107,6 +111,8 @@ Ship as `claudemesh-connector-slack`, `claudemesh-connector-telegram`.
**Effort:** 1-2 days each. **Effort:** 1-2 days each.
> **Implemented:** 2026-04-07 · Slack: `5563f90` (Socket Mode, echo prevention, auto-reconnect) · Telegram: `fe92853` (zero-dep Bot API, long polling)
### 8. Humans in the mesh ### 8. Humans in the mesh
Humans connect via the web dashboard or mobile app using the same WS protocol. `peerType: "human"` metadata tells AI to adjust communication style. The push system works natively in browsers (WS is bidirectional). Humans connect via the web dashboard or mobile app using the same WS protocol. `peerType: "human"` metadata tells AI to adjust communication style. The push system works natively in browsers (WS is bidirectional).
@@ -115,7 +121,7 @@ Humans connect via the web dashboard or mobile app using the same WS protocol. `
**Effort:** 2-3 days (web chat panel). **Effort:** 2-3 days (web chat panel).
### 9. Connecting non-Claude-Code AI ### 9. Connecting non-Claude-Code AI — DONE
Any process that speaks the WS protocol can join. The barrier isn't the protocol — it's the MCP tool surface that makes Claude Code sessions first-class. For other LLMs: Any process that speaks the WS protocol can join. The barrier isn't the protocol — it's the MCP tool surface that makes Claude Code sessions first-class. For other LLMs:
@@ -125,7 +131,9 @@ Any process that speaks the WS protocol can join. The barrier isn't the protocol
**Effort:** 1 day (SDK), 1 day per adapter. **Effort:** 1 day (SDK), 1 day per adapter.
### 10. Mesh skills catalog > **Implemented:** 2026-04-07 · `7e102a2` · `@claudemesh/sdk` — standalone TypeScript SDK with libsodium crypto_box, EventEmitter API, auto-reconnect
### 10. Mesh skills catalog — DONE
Peers publish skills: `share_skill({ name: "pdf-generation", description: "...", instructions: "..." })`. Other peers `list_skills()` and `get_skill("pdf-generation")` to load instructions into their context. Broker stores skills like memory/state. Peers publish skills: `share_skill({ name: "pdf-generation", description: "...", instructions: "..." })`. Other peers `list_skills()` and `get_skill("pdf-generation")` to load instructions into their context. Broker stores skills like memory/state.
@@ -135,7 +143,9 @@ Peers publish skills: `share_skill({ name: "pdf-generation", description: "...",
**Effort:** 1 day. **Effort:** 1 day.
### 11. Shared project files across peers > **Implemented:** 2026-04-07 · `c8cb1e3` · Full CRUD (share/get/list/remove), upsert by name, ILIKE search, Drizzle schema
### 11. Shared project files across peers — DONE
When a peer connects, it registers accessible paths (opt-in per directory). Other peers request files: `get_peer_file(peer: "Alice", path: "src/auth.ts")`. The owning peer reads the file and returns it over the mesh. When a peer connects, it registers accessible paths (opt-in per directory). Other peers request files: `get_peer_file(peer: "Alice", path: "src/auth.ts")`. The owning peer reads the file and returns it over the mesh.
@@ -146,7 +156,9 @@ When a peer connects, it registers accessible paths (opt-in per directory). Othe
**Effort:** 1 day. **Effort:** 1 day.
### 12. Peer stats (context consumption, token usage) > **Implemented:** 2026-04-07 · `504111c` · Broker relay (never reads content), CLI file serving with 1MB cap, path traversal rejection, hidden files excluded, 2-level dir listing. Plus hostname-based local/remote detection (`2c9c8c7`) and filesystem shortcut hint (`a92cf6b`).
### 12. Peer stats (context consumption, token usage) — DONE
Peers self-report: `set_status` extended with `contextUsed: 85000, contextMax: 200000, tokensIn: 12000, tokensOut: 8000`. Dashboard shows burn rate. Useful for load balancing — route work to the peer with the most context headroom. Peers self-report: `set_status` extended with `contextUsed: 85000, contextMax: 200000, tokensIn: 12000, tokensOut: 8000`. Dashboard shows burn rate. Useful for load balancing — route work to the peer with the most context headroom.
@@ -154,11 +166,13 @@ Peers self-report: `set_status` extended with `contextUsed: 85000, contextMax: 2
**Effort:** Half day (reporting infrastructure), unknown (accurate context measurement). **Effort:** Half day (reporting infrastructure), unknown (accurate context measurement).
> **Implemented:** 2026-04-07 · `b3b9972` · Auto-reporting every 60s (messagesIn/Out, toolCalls, uptime, errors), mesh_stats MCP tool, stats in list_peers
--- ---
## Tier 3 — Big bets, needs careful thought ## Tier 3 — Big bets, needs careful thought
### 13. Mesh blockchain / signed audit log ### 13. Mesh blockchain / signed audit log — DONE (audit log)
**Honest assessment:** A full blockchain is overkill for a cooperative mesh. What's actually valuable is the useful parts: **Honest assessment:** A full blockchain is overkill for a cooperative mesh. What's actually valuable is the useful parts:
@@ -170,6 +184,8 @@ Peers self-report: `set_status` extended with `contextUsed: 85000, contextMax: 2
**Effort:** 3-5 days. **Effort:** 3-5 days.
> **Implemented:** 2026-04-07 · `86a2583` · SHA-256 hash chain audit log, append-only, no message content logged, chain verification endpoint, paginated query
### 14. Mesh of meshes / bridge ### 14. Mesh of meshes / bridge
A meta-broker that routes between meshes. Use case: `dev-team` mesh and `ops-team` mesh coordinate on deploys. A meta-broker that routes between meshes. Use case: `dev-team` mesh and `ops-team` mesh coordinate on deploys.
@@ -192,15 +208,17 @@ Templates are JSON files. `claudemesh create --template dev-team` applies them a
**Effort:** Half day. **Effort:** Half day.
> **Implemented:** 2026-04-07 23:25 · `69e93d4` · 5 templates (dev-team, research, ops-incident, simulation, personal) + `claudemesh create` command > **Implemented:** 2026-04-07 · `69e93d4` · 5 templates (dev-team, research, ops-incident, simulation, personal) + `claudemesh create` command
### 16. Default private mesh per user ### 16. Default private mesh per user — DONE
On `claudemesh install`, auto-create a personal mesh with the user as sole member. All their Claude Code sessions join by default. Zero-config — instant value without understanding meshes. On `claudemesh install`, auto-create a personal mesh with the user as sole member. All their Claude Code sessions join by default. Zero-config — instant value without understanding meshes.
**Effort:** Half day. **Effort:** Half day.
### 17. Mesh MCP proxy (dynamic tools without session restart) > **Implemented:** 2026-04-07 · `b0dc538` · Install detects empty meshes, shows join guidance. Local-only mesh deferred (requires broker enrollment).
### 17. Mesh MCP proxy (dynamic tools without session restart) — DONE
**Problem:** Claude Code loads MCP servers at startup. You can't inject new tool definitions into a running session. **Problem:** Claude Code loads MCP servers at startup. You can't inject new tool definitions into a running session.
@@ -236,6 +254,8 @@ Issue #42 created.
**Effort:** 2-3 days. **Effort:** 2-3 days.
> **Implemented:** 2026-04-07 · `08e289a` · Full round-trip: register → list → call → forward → execute → result. In-memory registry, 30s call timeout, auto-cleanup on disconnect.
### 18. Sandbox for code execution ### 18. Sandbox for code execution
Each mesh gets optional compute sandboxes (Docker containers, Firecracker VMs, or E2B-style). Peers request: `execute_code(lang: "python", code: "...")`. Broker provisions a sandbox, runs the code, returns stdout/stderr. Resources scale on demand as peers need sandboxes. Each mesh gets optional compute sandboxes (Docker containers, Firecracker VMs, or E2B-style). Peers request: `execute_code(lang: "python", code: "...")`. Broker provisions a sandbox, runs the code, returns stdout/stderr. Resources scale on demand as peers need sandboxes.
@@ -246,7 +266,7 @@ Each mesh gets optional compute sandboxes (Docker containers, Firecracker VMs, o
**Effort:** 2-3 days (E2B integration), 1-2 weeks (self-hosted sandboxes). **Effort:** 2-3 days (E2B integration), 1-2 weeks (self-hosted sandboxes).
### 19. Mesh dashboard (real-time situational awareness) — PARTIAL ### 19. Mesh dashboard (real-time situational awareness) — DONE
Live web UI at claudemesh.com/dashboard showing: Live web UI at claudemesh.com/dashboard showing:
- **Peer graph:** Who's connected, status, groups, roles — nodes and edges - **Peer graph:** Who's connected, status, groups, roles — nodes and edges
@@ -259,9 +279,9 @@ Broker already tracks everything needed. Dashboard subscribes via WS and renders
**Effort:** 2-3 days (functional), 1 week (polished). **Effort:** 2-3 days (functional), 1 week (polished).
> **Partial:** 2026-04-07 23:30 · `59332dc` · Peer graph component (radial SVG layout, animated edges, group rings) added to live dashboard page. Remaining: state/memory timeline, resource panel, peer detail view. > **Implemented:** 2026-04-07 · `59332dc` peer graph (radial SVG, animated edges, group rings) + `7d432b3` state timeline + resource panel. Peer detail view remains.
### 20. Peer visibility and spatial topology ### 20. Peer visibility and spatial topology — DONE (visibility + profiles)
Control which peers can see each other. Instead of a flat mesh where everyone sees everyone, the broker filters `list_peers` responses and message routing based on visibility rules. Control which peers can see each other. Instead of a flat mesh where everyone sees everyone, the broker filters `list_peers` responses and message routing based on visibility rules.
@@ -285,6 +305,8 @@ Control which peers can see each other. Instead of a flat mesh where everyone se
**Effort:** 2-3 days. **Effort:** 2-3 days.
> **Partial:** 2026-04-07 · Visibility toggle (set_visible), public profiles (set_profile), hidden peer filtering in list_peers, peer_visible/peer_hidden system events, direct messages still reach hidden peers. Remaining: proximity-based (x,y coordinates), scope-based (group visibility rules).
### 21. Semantic peer search ### 21. Semantic peer search
In large meshes (50+ peers), scanning `list_peers` output is noise. A `search_peers` tool that filters and ranks by multiple dimensions: In large meshes (50+ peers), scanning `list_peers` output is noise. A `search_peers` tool that filters and ranks by multiple dimensions: