From 2778c4c5838bdea4bd393dab19174cbf7404e28d Mon Sep 17 00:00:00 2001 From: wicky <130177258+wicky-zipstack@users.noreply.github.com> Date: Fri, 17 Apr 2026 17:22:28 +0530 Subject: [PATCH 1/2] fix: move model run status dot to top-right corner of icon Previously the green/red status dot rendered inline before the model name text. Now it overlays the model icon at the top-right corner. --- .../src/ide/explorer/explorer-component.jsx | 26 +++++++++---------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/frontend/src/ide/explorer/explorer-component.jsx b/frontend/src/ide/explorer/explorer-component.jsx index fd5193e..1f93280 100644 --- a/frontend/src/ide/explorer/explorer-component.jsx +++ b/frontend/src/ide/explorer/explorer-component.jsx @@ -74,11 +74,13 @@ const MODEL_SORT_OPTIONS = [ ]; const MODEL_STATUS_DOT_STYLE = { - display: "inline-block", + position: "absolute", + top: -2, + right: -3, width: "7px", height: "7px", borderRadius: "50%", - verticalAlign: "middle", + border: "1px solid var(--page-bg-2, #fff)", }; const getModelRunStatus = (runStatus, failureReason, lastRunAt, token) => { @@ -659,8 +661,17 @@ const IdeExplorer = ({ child.last_run_at, token ); + const wrappedIcon = statusBadge ? ( + + {child.icon} + {statusBadge} + + ) : ( + child.icon + ); return { ...child, + icon: wrappedIcon, title: ( {modelDeleteModeRef.current && ( @@ -677,17 +688,6 @@ const IdeExplorer = ({ style={{ marginRight: 6 }} /> )} - {statusBadge && ( - - {statusBadge} - - )} {child.title} ), From 10c865657c23187a996451c77c4fb79b2d013ba4 Mon Sep 17 00:00:00 2001 From: wicky <130177258+wicky-zipstack@users.noreply.github.com> Date: Fri, 17 Apr 2026 17:27:20 +0530 Subject: [PATCH 2/2] refactor: move status dot inline styles to CSS classes MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - MODEL_STATUS_DOT_STYLE object → .model-status-dot CSS class - Icon wrapper inline style → .model-icon-badge-wrapper CSS class - Only backgroundColor remains inline (theme-token driven) --- .../src/ide/explorer/explorer-component.jsx | 30 +++++-------------- frontend/src/ide/ide-layout.css | 16 ++++++++++ 2 files changed, 24 insertions(+), 22 deletions(-) diff --git a/frontend/src/ide/explorer/explorer-component.jsx b/frontend/src/ide/explorer/explorer-component.jsx index 1f93280..2a0471a 100644 --- a/frontend/src/ide/explorer/explorer-component.jsx +++ b/frontend/src/ide/explorer/explorer-component.jsx @@ -73,25 +73,15 @@ const MODEL_SORT_OPTIONS = [ { label: "Z \u2192 A", key: "alpha_desc" }, ]; -const MODEL_STATUS_DOT_STYLE = { - position: "absolute", - top: -2, - right: -3, - width: "7px", - height: "7px", - borderRadius: "50%", - border: "1px solid var(--page-bg-2, #fff)", -}; +// Only backgroundColor varies per status — layout handled by .model-status-dot CSS class const getModelRunStatus = (runStatus, failureReason, lastRunAt, token) => { if (runStatus === "RUNNING") { return ( ); @@ -132,10 +122,8 @@ const getModelRunStatus = (runStatus, failureReason, lastRunAt, token) => { placement="right" > ); @@ -154,10 +142,8 @@ const getModelRunStatus = (runStatus, failureReason, lastRunAt, token) => { return ( ); @@ -662,7 +648,7 @@ const IdeExplorer = ({ token ); const wrappedIcon = statusBadge ? ( - + {child.icon} {statusBadge} diff --git a/frontend/src/ide/ide-layout.css b/frontend/src/ide/ide-layout.css index b3fcfec..417cffe 100644 --- a/frontend/src/ide/ide-layout.css +++ b/frontend/src/ide/ide-layout.css @@ -84,6 +84,22 @@ padding-left: 12px; } +/* Model run status badge overlaid on icon */ +.model-icon-badge-wrapper { + position: relative; + display: inline-flex; +} + +.model-status-dot { + position: absolute; + top: -2px; + right: -3px; + width: 7px; + height: 7px; + border-radius: 50%; + border: 1px solid var(--page-bg-2, #fff); +} + .contextMenu { position: fixed; z-index: 1000;