From 8fd9e4191357116e646f04f894ec88bd4830d11f Mon Sep 17 00:00:00 2001 From: cliffhall Date: Sun, 6 Sep 2026 23:13:04 -0400 Subject: [PATCH] docs: refresh the server-list spec's seed contract for the third seed MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Copilot review round 1. `specification/` is a maintained design record, not a historical one, so a shipped change to the seed set belongs in it. Two statements were stale and are now accurate: - **First-run behavior** said the backend writes "the two current `SEED_SERVERS`" — a reference to the `App.tsx` constant this design replaced. It now names `DEFAULT_SEED_CONFIG`, records that the set is three as of #2201, and points at `core/mcp/serverList.ts` as the source of truth for the contents rather than restating them; a second copy of a list is what goes stale. - The API sketch's `// the two existing seeds` comment is likewise corrected. Its `export function DEFAULT_SEED_CONFIG` is fixed to `export const` on the same line — it is a `const`, and leaving a known-wrong signature on a line being edited for accuracy is worse than the one-word fix. The On-disk format block is deliberately unchanged: it illustrates the file *shape*, not the seed set, and already carries a `streamable-http` entry (`acme-api`) alongside the two stdio ones. Co-Authored-By: Claude Opus 5 (1M context) Claude-Session: https://claude.ai/code/session_012x3rC3JXU17aW3uSwjPoi5 Signed-off-by: cliffhall --- specification/v2_servers_file.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/specification/v2_servers_file.md b/specification/v2_servers_file.md index b9b09f0a..02d7b8a2 100644 --- a/specification/v2_servers_file.md +++ b/specification/v2_servers_file.md @@ -76,7 +76,7 @@ Replaces the hardcoded `SEED_SERVERS` in `clients/web/src/App.tsx:47` with a fil ## First-run behavior -If the file does not exist when the backend boots, write a file containing the two current `SEED_SERVERS`. User immediately sees a non-empty Servers screen and discovers the file by editing one of the seeds. Subsequent boots read whatever the user has saved. +If the file does not exist when the backend boots, write a file containing `DEFAULT_SEED_CONFIG`. User immediately sees a non-empty Servers screen and discovers the file by editing one of the seeds. Subsequent boots read whatever the user has saved. The seed set started as the two `SEED_SERVERS` this design replaced and is three as of #2201 — the two local stdio servers plus `example-server-default`, the MCP org's remote feature-reference server over Streamable HTTP, so a first launch can reach a remote server without standing one up. `core/mcp/serverList.ts` is the source of truth for the contents; only the _behavior_ is specified here. ## Architecture @@ -113,7 +113,7 @@ Pure converters between on-disk `MCPConfig` and in-memory `ServerEntry[]`. No I/ ```ts export function mcpConfigToServerEntries(config: MCPConfig): ServerEntry[]; export function serverEntriesToMcpConfig(entries: ServerEntry[]): MCPConfig; -export function DEFAULT_SEED_CONFIG: MCPConfig; // the two existing seeds +export const DEFAULT_SEED_CONFIG: MCPConfig; // the default seeds (see First-run behavior) ``` `mcpConfigToServerEntries` sets `connection: { status: "disconnected" }` and uses the map key as both `id` and `name`. `serverEntriesToMcpConfig` strips `connection` / `info` (runtime-only) before serializing.