From adce87066543b499ac5cbd60d3d90feb78a59d54 Mon Sep 17 00:00:00 2001 From: RCLL Date: Mon, 24 Aug 2026 10:50:24 +0300 Subject: [PATCH] chore: name the artifact fleet-memory, keep RCLL as the product name MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The repository, the npm package and the container image are now fleet-memory; RCLL stays the product and documentation brand (rcll.ai). - server.json / package.json: io.github.holetron-lab/fleet-memory, npm identifier fleet-memory-mcp - env chain is two names, not three: FLEET_URL/FLEET_BANK with the pre-rebrand HINDSIGHT_URL/MEMPALACE_BANK still read as a fallback. RCLL_URL/RCLL_BANK and bank rcll-main never shipped — nothing was published under rcll-mcp — so they are dropped rather than carried. - default bank is fleet-main; hindsight-mempalace-mcp@1.0.0 users are told on stderr that their memory is in mempalace-main - rooms are described as topic scoping over one shared store, not per-agent isolation: the read path filters on the room list the caller passes and has no notion of caller identity --- .github/workflows/publish.yml | 6 ++--- FORK.md | 2 +- README.md | 14 +++++------ mcp-server/README.md | 30 ++++++++++++------------ mcp-server/package-lock.json | 6 ++--- mcp-server/package.json | 9 +++---- mcp-server/server.js | 44 +++++++++++++++-------------------- server.json | 14 +++++------ 8 files changed, 60 insertions(+), 65 deletions(-) diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 75684d4d..205f21c5 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -1,10 +1,10 @@ name: Publish to npm -# Publishes rcll-mcp to npm via OIDC Trusted Publishing. +# Publishes fleet-memory-mcp to npm via OIDC Trusted Publishing. # No NPM_TOKEN needed — npm verifies this workflow's identity through the -# Trusted Publisher trust configured on npmjs.com (holetron-lab/rcll). +# Trusted Publisher trust configured on npmjs.com (holetron-lab/fleet-memory). # NOTE: that trust entry is per package AND per repo. It has to be re-created on -# npmjs.com for rcll-mcp + holetron-lab/rcll before the first release fires, +# npmjs.com for fleet-memory-mcp + holetron-lab/fleet-memory before the first release fires, # otherwise the publish step fails with an OIDC mismatch. # Fires when a GitHub Release is published; the release tag is the source of truth # for the version already set in mcp-server/package.json. diff --git a/FORK.md b/FORK.md index 62e8f137..7bf82ea3 100644 --- a/FORK.md +++ b/FORK.md @@ -109,7 +109,7 @@ stays `false` there. Rehearse on a copy of the schema, never on the master. ## Remotes ``` -origin https://github.com/holetron-lab/rcll.git +origin https://github.com/holetron-lab/fleet-memory.git upstream https://github.com/vectorize-io/hindsight.git (push URL deliberately poisoned — nothing on this box can push to diff --git a/README.md b/README.md index e26f2232..4b401efb 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ > RCLL — team memory for agent fleets. Built on Hindsight (github.com/vectorize-io/hindsight, MIT). -RCLL is a fork of [`vectorize-io/hindsight`](https://github.com/vectorize-io/hindsight) (MIT). It keeps Hindsight's storage engine and adds **rooms** — shared, isolated memory across a team of agents — plus a hierarchical depth model (L0–L3). The room/hall/layer taxonomy is prior art in the hierarchical-memory space; the implementation here is our own. +RCLL is a fork of [`vectorize-io/hindsight`](https://github.com/vectorize-io/hindsight) (MIT). It keeps Hindsight's storage engine and adds **rooms** — topic scoping over one shared store, which is selectivity rather than isolation — plus a hierarchical depth model (L0–L3). The room/hall/layer taxonomy is prior art in the hierarchical-memory space; the implementation here is our own. RCLL is `recall` with the vowels dropped — the one operation every agent in the fleet performs before it does anything else. The tool is literally called `memory_recall`; the product is named after the call. @@ -12,7 +12,7 @@ RCLL is `recall` with the vowels dropped — the one operation every agent in th ### Status -The source is public and MIT. **There is no packaged release yet:** `rcll-mcp` is not published on npm and no container image is pushed. Running RCLL today means building from this tree, which the quick start below does. Don't quote an install command as working until [rcll.ai](https://rcll.ai/) shows one. +The source is public and MIT. **There is no packaged release yet:** `fleet-memory-mcp` is not published on npm and no container image is pushed. Running RCLL today means building from this tree, which the quick start below does. Don't quote an install command as working until [rcll.ai](https://rcll.ai/) shows one. | | | |---|---| @@ -66,7 +66,7 @@ This is a list of **our additions relative to our branch point** ([`d054b884`](h | Added here | What it is | |---|---| -| **Rooms** | Per-agent and shared scoping on every write and every read | +| **Rooms** | Topic scoping on every write and every read — selectivity, not isolation | | **Halls** | Knowledge typing within a room (fact, event, decision, procedure, warning) | | **Layers L0–L3** | Durability tiers; L0 always recalled, L3 deep-search only | | **Classification** | Keyword-based, sub-millisecond, **no LLM call** — the taxonomy costs zero tokens | @@ -96,7 +96,7 @@ Latency on CPU with no GPU: ~0.29 s for search, ~3.0 s including the cross-encod ## Quick start ```bash -git clone https://github.com/holetron-lab/rcll.git +git clone https://github.com/holetron-lab/fleet-memory.git cd rcll cp .env.example .env # edit .env with your config @@ -158,7 +158,7 @@ costs about 1 KB instead of 43 KB. Recall spends no model call; it does spend co ```bash cd mcp-server npm install -RCLL_URL=http://localhost:5100 node server.js +FLEET_URL=http://localhost:5100 node server.js ``` ### Claude Code config @@ -172,8 +172,8 @@ Add to `~/.claude/mcp.json`: "command": "node", "args": ["/path/to/mcp-server/server.js"], "env": { - "RCLL_URL": "http://localhost:5100", - "RCLL_BANK": "my-agent-bank" + "FLEET_URL": "http://localhost:5100", + "FLEET_BANK": "my-agent-bank" } } } diff --git a/mcp-server/README.md b/mcp-server/README.md index 493d1083..7e083cb0 100644 --- a/mcp-server/README.md +++ b/mcp-server/README.md @@ -1,10 +1,10 @@ -# RCLL MCP Server +# RCLL MCP Server (`fleet-memory-mcp`) -Standalone [MCP](https://modelcontextprotocol.io) server that exposes **RCLL** memory tools to any MCP-compatible client (Claude Code, OpenClaw, etc). RCLL is self-hosted, hierarchical **shared** memory for a *team* of AI agents — rooms for per-agent vs shared recall, L0–L3 depth, pgvector under the hood. +Standalone [MCP](https://modelcontextprotocol.io) server that exposes **RCLL** memory tools to any MCP-compatible client (Claude Code, OpenClaw, etc). RCLL is self-hosted, hierarchical **shared** memory for a *team* of AI agents — topic-scoped rooms, L0–L3 depth, pgvector under the hood. The published artifact is named `fleet-memory`; RCLL is the product name. > RCLL — team memory for agent fleets. Built on Hindsight (github.com/vectorize-io/hindsight, MIT). -RCLL is a fork of [`vectorize-io/hindsight`](https://github.com/vectorize-io/hindsight) (MIT). It keeps Hindsight's storage engine and adds rooms — shared, isolated memory for a team of agents — plus a hierarchical depth model (L0–L3). The room/hall/layer taxonomy is prior art in the hierarchical-memory space; the implementation here is our own. +RCLL is a fork of [`vectorize-io/hindsight`](https://github.com/vectorize-io/hindsight) (MIT). It keeps Hindsight's storage engine and adds rooms — topic scoping over one shared store, which is selectivity rather than isolation — plus a hierarchical depth model (L0–L3). The room/hall/layer taxonomy is prior art in the hierarchical-memory space; the implementation here is our own. ## Tools @@ -21,7 +21,7 @@ RCLL is a fork of [`vectorize-io/hindsight`](https://github.com/vectorize-io/hin ```bash cd mcp-server npm install -RCLL_URL=http://localhost:5100 node server.js +FLEET_URL=http://localhost:5100 node server.js ``` ## Claude Code @@ -33,10 +33,10 @@ Add to `~/.claude/mcp.json`: "mcpServers": { "rcll": { "command": "npx", - "args": ["-y", "rcll-mcp"], + "args": ["-y", "fleet-memory-mcp"], "env": { - "RCLL_URL": "http://localhost:5100", - "RCLL_BANK": "my-agent-bank" + "FLEET_URL": "http://localhost:5100", + "FLEET_BANK": "my-agent-bank" } } } @@ -47,28 +47,28 @@ Add to `~/.claude/mcp.json`: | Variable | Default | Description | |----------|---------|-------------| -| `RCLL_URL` | `http://127.0.0.1:5100` | RCLL backend base URL | -| `RCLL_BANK` | `rcll-main` | Default memory bank ID. Set it explicitly. | +| `FLEET_URL` | `http://127.0.0.1:5100` | fleet-memory backend base URL | +| `FLEET_BANK` | `fleet-main` | Default memory bank ID. Set it explicitly. | ### Migrating from `hindsight-mempalace-mcp` -That package defaulted to bank `mempalace-main`. `rcll-mcp` defaults to `rcll-main`, +That package defaulted to bank `mempalace-main`. `fleet-memory-mcp` defaults to `fleet-main`, so an install that never set the variable would open a different, empty bank — which reads as "the update erased my memory". It does not: the old bank is still there. -Set `RCLL_BANK=mempalace-main` to keep reading it, or move the contents into a new -bank first. When `RCLL_BANK` and `MEMPALACE_BANK` are both unset, the server prints +Set `FLEET_BANK=mempalace-main` to keep reading it, or move the contents into a new +bank first. When `FLEET_BANK` and `MEMPALACE_BANK` are both unset, the server prints which bank it defaulted to on stderr rather than picking one silently. ### Deprecated (still read, with a notice on stderr) Installs created before the rebrand keep working — these are used only when the -`RCLL_*` equivalent is unset, and they will be dropped in a future major. +`FLEET_*` equivalent is unset, and they will be dropped in a future major. | Legacy variable | Replaced by | |-----------------|-------------| -| `HINDSIGHT_URL` | `RCLL_URL` | -| `MEMPALACE_BANK` | `RCLL_BANK` | +| `HINDSIGHT_URL` | `FLEET_URL` | +| `MEMPALACE_BANK` | `FLEET_BANK` | ## Memory Taxonomy diff --git a/mcp-server/package-lock.json b/mcp-server/package-lock.json index e9132e8e..9f993103 100644 --- a/mcp-server/package-lock.json +++ b/mcp-server/package-lock.json @@ -1,18 +1,18 @@ { - "name": "rcll-mcp", + "name": "fleet-memory-mcp", "version": "0.1.0", "lockfileVersion": 3, "requires": true, "packages": { "": { - "name": "rcll-mcp", + "name": "fleet-memory-mcp", "version": "0.1.0", "license": "MIT", "dependencies": { "@modelcontextprotocol/sdk": "^1.12.1" }, "bin": { - "rcll-mcp": "server.js" + "fleet-memory-mcp": "server.js" } }, "node_modules/@hono/node-server": { diff --git a/mcp-server/package.json b/mcp-server/package.json index 3b3b495f..40150aed 100644 --- a/mcp-server/package.json +++ b/mcp-server/package.json @@ -1,12 +1,12 @@ { - "name": "rcll-mcp", + "name": "fleet-memory-mcp", "version": "0.1.0", - "mcpName": "io.github.holetron-lab/rcll", - "description": "RCLL — self-hosted, hierarchical shared memory for a team of AI agents over MCP (rooms, L0–L3 depth, pgvector). Fork of vectorize-io/hindsight.", + "mcpName": "io.github.holetron-lab/fleet-memory", + "description": "RCLL — self-hosted, hierarchical shared memory for a team of AI agents over MCP (rooms, L0-L3 depth, pgvector). Fork of vectorize-io/hindsight.", "type": "module", "main": "server.js", "bin": { - "rcll-mcp": "./server.js" + "fleet-memory-mcp": "./server.js" }, "scripts": { "start": "node server.js" @@ -15,6 +15,7 @@ "mcp", "memory", "rcll", + "fleet-memory", "hindsight", "ai-agents", "multi-agent", diff --git a/mcp-server/server.js b/mcp-server/server.js index 80abeef5..e6879e66 100644 --- a/mcp-server/server.js +++ b/mcp-server/server.js @@ -11,10 +11,10 @@ * memory_compress — create closet summaries * memory_bridge — cross-bank tunnels * - * Connects to the RCLL backend (default: http://127.0.0.1:5100) + * Connects to the fleet-memory backend (default: http://127.0.0.1:5100) * * Usage: - * RCLL_URL=http://localhost:5100 node server.js + * FLEET_URL=http://localhost:5100 node server.js * * Claude Code config (~/.claude/mcp.json): * { @@ -22,7 +22,7 @@ * "rcll": { * "command": "node", * "args": ["/path/to/mcp-server/server.js"], - * "env": { "RCLL_URL": "http://localhost:5100" } + * "env": { "FLEET_URL": "http://localhost:5100" } * } * } * } @@ -34,44 +34,44 @@ import { z } from 'zod'; // --- Config --- -// RCLL_* are the current names. The pre-rebrand names are still honored as a +// FLEET_* are the current names. The pre-rebrand names are still honored as a // fallback so an existing install keeps working after `npm update` — each one // hit prints a deprecation notice on stderr (stdout is the MCP transport). const LEGACY_ENV = [ - ['RCLL_URL', 'HINDSIGHT_URL'], - ['RCLL_BANK', 'MEMPALACE_BANK'], + ['FLEET_URL', 'HINDSIGHT_URL'], + ['FLEET_BANK', 'MEMPALACE_BANK'], ]; function envWithFallback(current, legacy) { if (process.env[current]) return process.env[current]; if (process.env[legacy]) { - console.error(`rcll-mcp: ${legacy} is deprecated — rename it to ${current}.`); + console.error(`fleet-memory-mcp: ${legacy} is deprecated — rename it to ${current}.`); return process.env[legacy]; } return undefined; } -const RCLL_URL = envWithFallback(...LEGACY_ENV[0]) || 'http://127.0.0.1:5100'; -const RCLL_BASE = `${RCLL_URL}/v1/default/banks`; -// The default bank is 'rcll-main'. The pre-rebrand package +const FLEET_URL = envWithFallback(...LEGACY_ENV[0]) || 'http://127.0.0.1:5100'; +const FLEET_BASE = `${FLEET_URL}/v1/default/banks`; +// The default bank is 'fleet-main'. The pre-rebrand package // hindsight-mempalace-mcp@1.0.0 defaulted to 'mempalace-main', so an install that // never set the env var and switches packages would land in a different, empty bank. // That reads as "the update erased my memory", so we say it out loud instead of // guessing: the legacy env var is still honoured, and defaulting is announced. const LEGACY_DEFAULT_BANK = 'mempalace-main'; -const DEFAULT_BANK = envWithFallback(...LEGACY_ENV[1]) || 'rcll-main'; -if (!process.env.RCLL_BANK && !process.env.MEMPALACE_BANK) { +const DEFAULT_BANK = envWithFallback(...LEGACY_ENV[1]) || 'fleet-main'; +if (!process.env.FLEET_BANK && !process.env.MEMPALACE_BANK) { console.error( - `rcll-mcp: RCLL_BANK is unset, using '${DEFAULT_BANK}'. ` + + `fleet-memory-mcp: FLEET_BANK is unset, using '${DEFAULT_BANK}'. ` + `Coming from hindsight-mempalace-mcp? Your memory is in '${LEGACY_DEFAULT_BANK}' — ` + - `set RCLL_BANK=${LEGACY_DEFAULT_BANK} to keep reading it.` + `set FLEET_BANK=${LEGACY_DEFAULT_BANK} to keep reading it.` ); } -// --- RCLL HTTP client --- +// --- fleet-memory HTTP client --- async function hindsightRequest(method, path, body = null) { - const url = `${RCLL_BASE}${path}`; + const url = `${FLEET_BASE}${path}`; const opts = { method, headers: { 'Content-Type': 'application/json' }, @@ -326,8 +326,8 @@ server.resource( uri: 'rcll://config', mimeType: 'application/json', text: JSON.stringify({ - rcll_url: RCLL_URL, - hindsight_url: RCLL_URL, // legacy alias, drop after 60d + fleet_url: FLEET_URL, + hindsight_url: FLEET_URL, // legacy alias, drop after 60d default_bank: DEFAULT_BANK, rooms: ['auth', 'pipeline', 'schema', 'infrastructure', 'ui', 'api', 'deployment', 'monitoring', 'agent', 'general'], halls: ['fact', 'event', 'decision', 'preference', 'discovery', 'procedure', 'warning'], @@ -347,13 +347,7 @@ server.resource( async function main() { const transport = new StdioServerTransport(); await server.connect(transport); - if (!process.env.RCLL_BANK && !process.env.MEMPALACE_BANK) { - console.error( - `rcll-mcp: no bank configured — falling back to the pre-rebrand default '${DEFAULT_BANK}'. ` + - 'Set RCLL_BANK explicitly; this fallback goes away in a future major.' - ); - } - console.error(`rcll-mcp running (backend: ${RCLL_URL}, bank: ${DEFAULT_BANK})`); + console.error(`fleet-memory-mcp running (backend: ${FLEET_URL}, bank: ${DEFAULT_BANK})`); } main().catch(err => { diff --git a/server.json b/server.json index ff357380..5458fa7c 100644 --- a/server.json +++ b/server.json @@ -1,18 +1,18 @@ { "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json", - "name": "io.github.holetron-lab/rcll", + "name": "io.github.holetron-lab/fleet-memory", "title": "RCLL", "description": "RCLL — team memory for agent fleets. Built on Hindsight (github.com/vectorize-io/hindsight, MIT). Self-hosted shared memory over MCP: rooms, hierarchical L0–L3 depth, pgvector.", "version": "0.1.0", "websiteUrl": "https://rcll.ai", "repository": { - "url": "https://github.com/holetron-lab/rcll", + "url": "https://github.com/holetron-lab/fleet-memory", "source": "github" }, "packages": [ { "registryType": "npm", - "identifier": "rcll-mcp", + "identifier": "fleet-memory-mcp", "version": "0.1.0", "runtimeHint": "npx", "transport": { @@ -20,16 +20,16 @@ }, "environmentVariables": [ { - "name": "RCLL_URL", - "description": "Base URL of the RCLL backend (self-hosted). Defaults to http://127.0.0.1:5100. The pre-rebrand name HINDSIGHT_URL is still read as a fallback.", + "name": "FLEET_URL", + "description": "Base URL of the fleet-memory backend (self-hosted). Defaults to http://127.0.0.1:5100. The pre-rebrand name HINDSIGHT_URL is still read as a fallback.", "isRequired": false, "default": "http://127.0.0.1:5100" }, { - "name": "RCLL_BANK", + "name": "FLEET_BANK", "description": "Default memory bank ID for retain/recall. The pre-rebrand variable MEMPALACE_BANK is still read as a fallback. Migrating from hindsight-mempalace-mcp? Set this to mempalace-main to keep reading your existing bank; see mcp-server/README.md.", "isRequired": false, - "default": "rcll-main" + "default": "fleet-main" } ] }