docs: mark all implemented vision items with commit refs
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:
@@ -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:
|
||||||
|
|||||||
Reference in New Issue
Block a user