From 059cbcdcf3249c5ca88ae0ff6de61ecb6baecffa Mon Sep 17 00:00:00 2001 From: xarmian Date: Fri, 24 Jul 2026 20:03:16 -0400 Subject: [PATCH] fix(web): pane tabs activate on pointerdown (focus-follows click-swallow, CI-caught) (#1028) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * fix(web): pane tabs activate on pointerdown — the focus-follows cascade could swallow the click on a peeking master (CI-caught) The E2E (Playwright) job caught what fast local runs missed: clicking a peeking master's tab fires pointerdown (focus-follows flips activePane → peeking-state re-render cascade) and on slow runners the subsequent click lands after the churn and is swallowed — activeTab never set, the Details panel never shows, fill times out. Same same-click detach class as BUG-2281. Activating on pointerdown (click retained for keyboard) sets the tab in the same tick as the detector, before any re-render can intervene. Verified: the two CI-failing specs at --repeat-each=3 locally, 45/45. * fix(web): pointerdown tab activation is mouse-only (touch scroll-start must not switch panels — Codex) --- web/src/lib/components/items/ItemDetail.svelte | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/web/src/lib/components/items/ItemDetail.svelte b/web/src/lib/components/items/ItemDetail.svelte index c43382f9..1b09299b 100644 --- a/web/src/lib/components/items/ItemDetail.svelte +++ b/web/src/lib/components/items/ItemDetail.svelte @@ -4547,6 +4547,12 @@ }} > {#each PANE_TABS as t (t.id)} +