From 6027c9d0dd05eb1d3bb3d910fbe77a9f0d1ff7b0 Mon Sep 17 00:00:00 2001 From: "paseo-bot[bot]" <266920839+paseo-bot[bot]@users.noreply.github.com> Date: Sun, 18 Oct 2026 12:50:59 +0200 Subject: [PATCH] test: reproduce missing ACP draft commands for default model --- .../generic-acp-agent.commands.test.ts | 53 ++++++++++++++++++- 1 file changed, 52 insertions(+), 1 deletion(-) diff --git a/packages/server/src/server/agent/providers/generic-acp-agent.commands.test.ts b/packages/server/src/server/agent/providers/generic-acp-agent.commands.test.ts index 3655cccb5b..f4793d423f 100644 --- a/packages/server/src/server/agent/providers/generic-acp-agent.commands.test.ts +++ b/packages/server/src/server/agent/providers/generic-acp-agent.commands.test.ts @@ -5,9 +5,48 @@ import path from "node:path"; import { describe, expect, test } from "vitest"; import { createTestLogger } from "../../../test-utils/test-logger.js"; +import { AgentManager } from "../agent-manager.js"; +import { buildProviderRegistry } from "../provider-registry.js"; import { GenericACPAgentClient } from "./generic-acp-agent.js"; describe("GenericACPAgentClient slash commands", () => { + test("lists draft commands when a custom ACP model is named default", async () => { + await withFakeACPAgent("commands-after-session-new", async (command, cwd) => { + const logger = createTestLogger(); + const registry = buildProviderRegistry(logger, { + providerOverrides: { + "custom-acp": { extends: "acp", label: "Custom ACP", command }, + }, + }); + const client = registry["custom-acp"]!.createClient(logger); + const manager = new AgentManager({ clients: { "custom-acp": client }, logger }); + const expectedCommands = [ + { + name: "review", + description: "Review the diff", + argumentHint: "query", + kind: "command", + }, + { name: "status", description: "Show status", argumentHint: "", kind: "command" }, + ]; + + await expect( + manager.listDraftCommands({ provider: "custom-acp", cwd, model: "inherit" }), + ).resolves.toEqual(expectedCommands); + + const session = await client.createSession({ provider: "custom-acp", cwd, model: "default" }); + try { + await expect(session.listCommands?.()).resolves.toEqual(expectedCommands); + } finally { + await session.close(); + } + + await expect( + manager.listDraftCommands({ provider: "custom-acp", cwd, model: "default" }), + ).resolves.toEqual(expectedCommands); + }); + }); + test("preserves argument hints in commands advertised right after session/new", async () => { await withFakeACPAgent("commands-after-session-new", async (command, cwd) => { const client = new GenericACPAgentClient({ @@ -92,7 +131,19 @@ rl.on("line", (line) => { if (mode === "commands-after-session-new") { process.stdout.write( [ - { id: message.id, result: { sessionId: "session-1" } }, + { + id: message.id, + result: { + sessionId: "session-1", + models: { + currentModelId: "default", + availableModels: [ + { modelId: "default", name: "Default" }, + { modelId: "inherit", name: "Inherit" }, + ], + }, + }, + }, { method: "session/update", params: {