From bb6231d55649ab336857a8cc717c1bb4582b61e9 Mon Sep 17 00:00:00 2001 From: Mohamed Boudra Date: Sun, 26 Jul 2026 23:14:37 +0200 Subject: [PATCH] fix(app): focus file pane when editing beside an agent (#2457) CodeMirror uses a contenteditable surface, which the split-pane focus filter treated as exempt. Let editor interactions claim pane focus just like composer text inputs do. --- packages/app/e2e/file-editing.spec.ts | 28 +++++++++++++++++++ .../components/split-container-pane-focus.ts | 1 - 2 files changed, 28 insertions(+), 1 deletion(-) diff --git a/packages/app/e2e/file-editing.spec.ts b/packages/app/e2e/file-editing.spec.ts index fe8a3d0f2..2a536c30e 100644 --- a/packages/app/e2e/file-editing.spec.ts +++ b/packages/app/e2e/file-editing.spec.ts @@ -95,6 +95,34 @@ test.describe("CodeMirror workspace file editing", () => { } }); + test("clicking the editor focuses its pane beside an agent", async ({ page }) => { + const target = "target.ts:42"; + const session = await seedAgentWithFileLink(target); + + try { + await page.setViewportSize({ width: 1280, height: 900 }); + await openAgentRoute(page, session); + + await page.getByRole("button", { name: "Split pane right" }).first().click(); + await expect(page.getByTestId("workspace-tabs-row").filter({ visible: true })).toHaveCount(2); + await openWorkspaceFile(page, "target.ts"); + + await page + .getByTestId(`workspace-tab-agent_${session.agentId}`) + .filter({ visible: true }) + .click(); + await editor(page).click(); + await page.keyboard.press("Alt+Shift+W"); + + await expect(page.getByTestId("workspace-tab-file_target.ts")).not.toBeVisible(); + await expect( + page.getByTestId(`workspace-tab-agent_${session.agentId}`).filter({ visible: true }), + ).toBeVisible(); + } finally { + await session.cleanup(); + } + }); + test("shows the full file path and keeps editor controls stable", async ({ page, withWorkspace, diff --git a/packages/app/src/components/split-container-pane-focus.ts b/packages/app/src/components/split-container-pane-focus.ts index a63823f1f..0f1ed1d8c 100644 --- a/packages/app/src/components/split-container-pane-focus.ts +++ b/packages/app/src/components/split-container-pane-focus.ts @@ -4,7 +4,6 @@ const INTERACTIVE_TARGET_SELECTOR = [ "select", "[role='button']", "[role='link']", - "[contenteditable='true']", "[data-paseo-pane-focus-exempt='true']", ].join(", ");