diff --git a/CHANGELOG.md b/CHANGELOG.md index baff9daf..9f427781 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 0.6.1 + +- Fix to allow bypassPermissions mode to be selected (it wasn't permitted previously) + ## 0.6.0 - Provide a model selector. We use the "default" model by default, and the user can change it via the client. diff --git a/package-lock.json b/package-lock.json index 81763223..bc2ef1c1 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@zed-industries/claude-code-acp", - "version": "0.6.0", + "version": "0.6.1", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@zed-industries/claude-code-acp", - "version": "0.6.0", + "version": "0.6.1", "license": "Apache-2.0", "dependencies": { "@agentclientprotocol/sdk": "0.4.8", diff --git a/package.json b/package.json index 9dccae42..df3e3905 100644 --- a/package.json +++ b/package.json @@ -6,7 +6,7 @@ "bin": { "claude-code-acp": "./dist/index.js" }, - "version": "0.6.0", + "version": "0.6.1", "description": "An ACP-compatible coding agent powered by the Claude Code SDK (TypeScript)", "main": "dist/index.js", "type": "module", diff --git a/src/acp-agent.ts b/src/acp-agent.ts index c902dc24..ae92d763 100644 --- a/src/acp-agent.ts +++ b/src/acp-agent.ts @@ -193,6 +193,9 @@ export class ClaudeAcpAgent implements Agent { mcpServers, systemPrompt, settingSources: ["user", "project", "local"], + // If we want bypassPermissions to be an option, we have to start the session with it on. + // We change it immediately back to default below before returning the session. + permissionMode: "bypassPermissions", permissionPromptToolName: PERMISSION_TOOL_NAME, stderr: (err) => console.error(err), // note: although not documented by the types, passing an absolute path @@ -228,11 +231,14 @@ export class ClaudeAcpAgent implements Agent { prompt: input, options, }); + const permissionMode = "default"; + // Change it back to default + await q.setPermissionMode(permissionMode); this.sessions[sessionId] = { query: q, input: input, cancelled: false, - permissionMode: "default", + permissionMode, }; getAvailableSlashCommands(q).then((availableCommands) => { @@ -251,7 +257,7 @@ export class ClaudeAcpAgent implements Agent { sessionId, models, modes: { - currentModeId: "default", + currentModeId: permissionMode, availableModes: [ { id: "default",