From 21cb6efcedd8991dd9b5f53ed9cbe0d00338856f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alejandro=20Guti=C3=A9rrez?= <35082514+alezmad@users.noreply.github.com> Date: Wed, 8 Apr 2026 00:12:37 +0100 Subject: [PATCH] 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 --- docs/vision-20260407.md | 52 +++++++++++++++++++++++++++++------------ 1 file changed, 37 insertions(+), 15 deletions(-) diff --git a/docs/vision-20260407.md b/docs/vision-20260407.md index 02c6a09..fd93219 100644 --- a/docs/vision-20260407.md +++ b/docs/vision-20260407.md @@ -3,7 +3,7 @@ **Date:** 2026-04-07 23:01 CEST **Author:** Alejandro Gutiérrez + Claude (Opus 4.6) **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 -### 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. @@ -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). +> **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 -### 6. Mesh webhooks / REST API / external WebSocket +### 6. Mesh webhooks / REST API / external WebSocket — PARTIAL (webhooks done) 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). -### 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. @@ -107,6 +111,8 @@ Ship as `claudemesh-connector-slack`, `claudemesh-connector-telegram`. **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 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). -### 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: @@ -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. -### 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. @@ -135,7 +143,9 @@ Peers publish skills: `share_skill({ name: "pdf-generation", description: "...", **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. @@ -146,7 +156,9 @@ When a peer connects, it registers accessible paths (opt-in per directory). Othe **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. @@ -154,11 +166,13 @@ Peers self-report: `set_status` extended with `contextUsed: 85000, contextMax: 2 **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 -### 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: @@ -170,6 +184,8 @@ Peers self-report: `set_status` extended with `contextUsed: 85000, contextMax: 2 **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 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. -> **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. **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. @@ -236,6 +254,8 @@ Issue #42 created. **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 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). -### 19. Mesh dashboard (real-time situational awareness) — PARTIAL +### 19. Mesh dashboard (real-time situational awareness) — DONE Live web UI at claudemesh.com/dashboard showing: - **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). -> **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. @@ -285,6 +305,8 @@ Control which peers can see each other. Instead of a flat mesh where everyone se **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 In large meshes (50+ peers), scanning `list_peers` output is noise. A `search_peers` tool that filters and ranks by multiple dimensions: