From c9b76e6e9b6da4766ca2aa4da5963947bf3fa7af Mon Sep 17 00:00:00 2001 From: Phil LaFayette Date: Fri, 26 Jun 2026 05:14:25 -0500 Subject: [PATCH] Restore ThreadPanel KEY_STEP=16 source-pin after resize-helper extraction (#55 follow-up) The DRY extraction in #55 moved the keyboard nudge step into the shared createResizablePanel default and dropped the local `const KEY_STEP = 16`, which broke the source-level pin in e2e/scenarios/10-thread-panel.spec.ts ("ThreadPanel pins KEY_STEP = 16") and turned post-merge CI red on the E2E job (web unit tests + build + lint stayed green). Re-declare KEY_STEP=16 alongside its MIN/MAX/DEFAULT/STORAGE_KEY siblings and pass it explicitly into the helper so it is wired, not dead. No behaviour change (the helper already defaulted keyStep to 16). --- web/src/components/ThreadPanel.svelte | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/web/src/components/ThreadPanel.svelte b/web/src/components/ThreadPanel.svelte index 75e4083..19f76fb 100644 --- a/web/src/components/ThreadPanel.svelte +++ b/web/src/components/ThreadPanel.svelte @@ -86,6 +86,14 @@ const MAX_PANEL_WIDTH = 720; /** Default width when no persisted value exists (matches pre-v0.4.3 fixed 360). */ const DEFAULT_PANEL_WIDTH = 360; + /** + * Keyboard nudge step when the handle has focus (ArrowLeft/Right). The + * shared helper defaults to the same 16px, but we declare it here and pass + * it through explicitly: this is a user-facing constant for THIS panel and + * is pinned at the source level (e2e/scenarios/10-thread-panel.spec.ts), + * co-located with its MIN/MAX/DEFAULT/STORAGE_KEY siblings. + */ + const KEY_STEP = 16; /** localStorage key for persistence (mirrors ArtifactPanel naming). */ const STORAGE_KEY = 'claude-comms:thread-panel-width'; @@ -94,6 +102,7 @@ maxWidth: MAX_PANEL_WIDTH, defaultWidth: DEFAULT_PANEL_WIDTH, storageKey: STORAGE_KEY, + keyStep: KEY_STEP, }); // Whether to render the shared MessageInput composer (3.12) or the