From aa44fcf1ce7aa0ce691a5c05bf0fb45f48a19ec6 Mon Sep 17 00:00:00 2001 From: Fernando Celmer Date: Sat, 15 Aug 2026 18:50:44 -0300 Subject: [PATCH 1/3] =?UTF-8?q?=F0=9F=AA=B2=20BUG:=20Honor=20the=20active?= =?UTF-8?q?=20editor's=20folder=20in=20multi-root=20workspaces?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit currentWorkspaceFolder() always returned workspaceFolders[0], so pycodeloop serve spawned with the first root as its cwd regardless of which project the user was actually working in. In a multi-root workspace, every file in a root other than the first tripped the workspace jail ("outside the workspace") and forced the agent to fall back to bash for something as simple as reading a file in the open project. Now resolves the workspace folder that contains the active editor's document first, falling back to workspaceFolders[0] only when there's no active editor (e.g. right after the panel opens). --- src/services/settings.service.ts | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/services/settings.service.ts b/src/services/settings.service.ts index a1869da..162dc1e 100644 --- a/src/services/settings.service.ts +++ b/src/services/settings.service.ts @@ -42,5 +42,10 @@ export function updateSetting( } export function currentWorkspaceFolder(): string { + const activeUri = vscode.window.activeTextEditor?.document.uri; + const activeFolder = activeUri && vscode.workspace.getWorkspaceFolder(activeUri); + if (activeFolder) { + return activeFolder.uri.fsPath; + } return vscode.workspace.workspaceFolders?.[0]?.uri.fsPath ?? process.cwd(); } From b96e737110f59205dd830755eeeb2fc5e212462e Mon Sep 17 00:00:00 2001 From: Fernando Celmer Date: Sat, 15 Aug 2026 18:52:40 -0300 Subject: [PATCH 2/3] =?UTF-8?q?=F0=9F=93=A6=20NPM:=20Bump=20version=20to?= =?UTF-8?q?=200.4.1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index a991051..aa053a8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "pycodeloop", - "version": "0.4.0", + "version": "0.4.1", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "pycodeloop", - "version": "0.4.0", + "version": "0.4.1", "license": "MIT", "devDependencies": { "@eslint/js": "^9.39.5", diff --git a/package.json b/package.json index 1b1c00d..5fa03fc 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "pycodeloop", "displayName": "CodeLoop — AI Coding Agent", "description": "Agentic AI coding assistant in your VS Code sidebar — chat with Anthropic Claude, OpenAI, Gemini, Grok, Groq, AWS Bedrock, Moonshot Kimi, DeepSeek, Together AI Llama, Alibaba Qwen, NVIDIA NIM, or a local Ollama/LM Studio model to read, edit, and run code in your workspace.", - "version": "0.4.0", + "version": "0.4.1", "publisher": "fernandocelmer", "repository": { "type": "git", From 7dc97fbc7801a6c45535b5ea2125ba6a324fe200 Mon Sep 17 00:00:00 2001 From: Fernando Celmer Date: Sat, 15 Aug 2026 18:52:40 -0300 Subject: [PATCH 3/3] =?UTF-8?q?=F0=9F=93=98=20DOCS:=20Add=20v0.4.1=20relea?= =?UTF-8?q?se=20notes=20entry?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/nav/development/release-notes.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/docs/nav/development/release-notes.md b/docs/nav/development/release-notes.md index 483296c..db86497 100644 --- a/docs/nav/development/release-notes.md +++ b/docs/nav/development/release-notes.md @@ -1,5 +1,10 @@ # Release Notes +## v0.4.1 + +- [📦 Marketplace - Build 0.4.1](https://marketplace.visualstudio.com/items?itemName=fernandocelmer.pycodeloop) +- [🪲 Bug: Honor the active editor's folder in multi-root workspaces (#25)](https://github.com/dotflow-io/vscodeloop/pull/25) + ## v0.4.0 - [📦 Marketplace - Build 0.4.0](https://marketplace.visualstudio.com/items?itemName=fernandocelmer.pycodeloop)