From 69f0f85e728ed9881587d65cb0cd04f958c935fe Mon Sep 17 00:00:00 2001 From: Etherll <61019402+Etherll@users.noreply.github.com> Date: Fri, 10 Jul 2026 00:27:17 +0300 Subject: [PATCH 1/3] Studio: fix response model badge placement --- .../message-response-details-sheet.tsx | 2 +- .../src/components/assistant-ui/reasoning.tsx | 8 ++----- .../src/components/assistant-ui/thread.tsx | 11 +++------- .../test_chat_response_details_ui_contract.py | 22 ++++++++++--------- 4 files changed, 18 insertions(+), 25 deletions(-) diff --git a/studio/frontend/src/components/assistant-ui/message-response-details-sheet.tsx b/studio/frontend/src/components/assistant-ui/message-response-details-sheet.tsx index 331a06a4c6c..bbdcc39575d 100644 --- a/studio/frontend/src/components/assistant-ui/message-response-details-sheet.tsx +++ b/studio/frontend/src/components/assistant-ui/message-response-details-sheet.tsx @@ -288,7 +288,7 @@ export const MessageResponseModelBadge: FC<{ className?: string }> = ({ return (
- - - -
+
{isOpen && !isReasoningStreaming && ( )} diff --git a/studio/frontend/src/components/assistant-ui/thread.tsx b/studio/frontend/src/components/assistant-ui/thread.tsx index d987092c487..fd4833b813e 100644 --- a/studio/frontend/src/components/assistant-ui/thread.tsx +++ b/studio/frontend/src/components/assistant-ui/thread.tsx @@ -3569,9 +3569,6 @@ const AssistantMessage: FC = () => { const aui = useAui(); const messageId = useAuiState(({ message }) => message.id); const messageContent = useAuiState(({ message }) => message.content); - const hasReasoningParts = useAuiState(({ message }) => - message.parts.some((part) => part.type === "reasoning"), - ); const incognito = useChatRuntimeStore((s) => s.incognito); // Use global store for editing state to ensure a single source of truth @@ -3657,11 +3654,9 @@ const AssistantMessage: FC = () => {
) : ( <> - {!hasReasoningParts ? ( -
- -
- ) : null} +
+ +
diff --git a/tests/studio/test_chat_response_details_ui_contract.py b/tests/studio/test_chat_response_details_ui_contract.py index 89d30006291..5f0308fb6e8 100644 --- a/tests/studio/test_chat_response_details_ui_contract.py +++ b/tests/studio/test_chat_response_details_ui_contract.py @@ -44,7 +44,7 @@ def test_response_details_sheet_uses_unsloth_sheet_and_key_sections(): assert f'label="{field}"' in src -def test_response_model_chip_is_user_configurable_and_rendered_in_metadata_rows(): +def test_response_model_badge_is_user_configurable_and_rendered_once_per_message(): prefs_src = CHAT_PREFS_TS.read_text() chat_tab_src = CHAT_TAB_TSX.read_text() thread_src = THREAD_TSX.read_text() @@ -55,17 +55,19 @@ def test_response_model_chip_is_user_configurable_and_rendered_in_metadata_rows( assert "showResponseModel: saved?.showResponseModel ?? false" in prefs_src assert "Show response model" in chat_tab_src assert "setShowResponseModel" in chat_tab_src - assert "aui-response-model-badge inline-flex min-h-5" in DETAILS_TSX.read_text() - assert "leading-5" in DETAILS_TSX.read_text() - assert "group-hover/assistant-message:opacity-100" in DETAILS_TSX.read_text() - assert "MessageResponseModelBadge" in thread_src - assert "hasReasoningParts" in thread_src + details_src = DETAILS_TSX.read_text() + assert "aui-response-model-badge pointer-events-auto relative inline-flex min-h-5" in details_src + assert "cursor-text select-text" in details_src + assert "leading-5" in details_src + assert "after:top-full after:h-1" in details_src + assert "hover:opacity-100" in details_src + assert "group-hover/assistant-message:opacity-100" in details_src + assert thread_src.count(" Date: Thu, 9 Jul 2026 21:34:48 +0000 Subject: [PATCH 2/3] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- tests/studio/test_chat_response_details_ui_contract.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/tests/studio/test_chat_response_details_ui_contract.py b/tests/studio/test_chat_response_details_ui_contract.py index 5f0308fb6e8..349a07fab48 100644 --- a/tests/studio/test_chat_response_details_ui_contract.py +++ b/tests/studio/test_chat_response_details_ui_contract.py @@ -56,7 +56,9 @@ def test_response_model_badge_is_user_configurable_and_rendered_once_per_message assert "Show response model" in chat_tab_src assert "setShowResponseModel" in chat_tab_src details_src = DETAILS_TSX.read_text() - assert "aui-response-model-badge pointer-events-auto relative inline-flex min-h-5" in details_src + assert ( + "aui-response-model-badge pointer-events-auto relative inline-flex min-h-5" in details_src + ) assert "cursor-text select-text" in details_src assert "leading-5" in details_src assert "after:top-full after:h-1" in details_src From 10472fdb92e445afaf9905daead50a792b26fe68 Mon Sep 17 00:00:00 2001 From: danielhanchen Date: Wed, 15 Jul 2026 13:08:16 +0000 Subject: [PATCH 3/3] Studio: gate response model badge pointer-events behind message hover --- .../assistant-ui/message-response-details-sheet.tsx | 2 +- tests/studio/test_chat_response_details_ui_contract.py | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/studio/frontend/src/components/assistant-ui/message-response-details-sheet.tsx b/studio/frontend/src/components/assistant-ui/message-response-details-sheet.tsx index bbdcc39575d..cca61b766ab 100644 --- a/studio/frontend/src/components/assistant-ui/message-response-details-sheet.tsx +++ b/studio/frontend/src/components/assistant-ui/message-response-details-sheet.tsx @@ -288,7 +288,7 @@ export const MessageResponseModelBadge: FC<{ className?: string }> = ({ return (