diff --git a/CHANGELOG.md b/CHANGELOG.md index 7642a367f..dd3c4e36d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -24,6 +24,8 @@ parallel copies under `docs/` or `scripts/notes/`. At cut time: rename ### Fixed +- The slash menu exposes `/mcp` only. `/mcps` is no longer an alias for + the same overlay. - Sequential TUI ask and permission selectors paint the live question's option labels. Overlay rows bind by an ask id minted at emit, not render-order index. A stale or empty accept fail-closes as unavailable rather than diff --git a/docs/MCP.md b/docs/MCP.md index 25140da8e..253d31b85 100644 --- a/docs/MCP.md +++ b/docs/MCP.md @@ -90,7 +90,7 @@ registered for dispatch as soon as the server connects (including later in the same turn) and surfaced on demand through dynamic tool discovery (`tool_search`). -In the TUI, `/mcp` and `/mcps` open the same live server surface. Press **Alt+A** +In the TUI, `/mcp` opens the live server surface. Press **Alt+A** to add a named absolute HTTP(S) endpoint to global settings and connect it in the current session. Names may contain letters, numbers, single underscores, and hyphens; the `__` tool-namespace delimiter is reserved. The add is unavailable diff --git a/src/tui/commands/built-in.test.ts b/src/tui/commands/built-in.test.ts index b5663c560..128cd6781 100644 --- a/src/tui/commands/built-in.test.ts +++ b/src/tui/commands/built-in.test.ts @@ -55,9 +55,9 @@ describe("/connect command", () => { }); describe("MCP commands", () => { - it("keeps /mcp and aliases /mcps to the same surface", () => { + it("registers /mcp for the overlay and does not register /mcps", () => { expect(getCommand("mcp")?.handler("", makeCtx())).toEqual({ type: "overlay", overlay: "mcp" }); - expect(getCommand("mcps")?.handler("", makeCtx())).toEqual({ type: "overlay", overlay: "mcp" }); + expect(getCommand("mcps")).toBeUndefined(); }); }); diff --git a/src/tui/commands/built-in.ts b/src/tui/commands/built-in.ts index 2f9cbb0bf..dd7de538b 100644 --- a/src/tui/commands/built-in.ts +++ b/src/tui/commands/built-in.ts @@ -106,13 +106,11 @@ export function registerBuiltInCommands(): void { handler: (_args, _ctx) => ({ type: "paste-image" }), }); - for (const name of ["mcp", "mcps"]) { - registerCommand({ - name, - description: "Show MCP servers — Enter connects, Alt+D disables, Alt+R removes", - handler: (_args, _ctx) => ({ type: "overlay", overlay: "mcp" }), - }); - } + registerCommand({ + name: "mcp", + description: "Show MCP servers — Enter connects, Alt+D disables, Alt+R removes", + handler: (_args, _ctx) => ({ type: "overlay", overlay: "mcp" }), + }); registerCommand({ name: "cost",