From 227967df3d048d93bc8576e099a405f9bc559533 Mon Sep 17 00:00:00 2001 From: Henry Li Date: Thu, 26 Mar 2026 21:13:32 +0800 Subject: [PATCH] feat: hide model ID for safety reason, only show the display_name (#1410) Co-authored-by: Henry Li --- .../src/components/workspace/input-box.tsx | 610 +++++++++--------- 1 file changed, 311 insertions(+), 299 deletions(-) diff --git a/frontend/src/components/workspace/input-box.tsx b/frontend/src/components/workspace/input-box.tsx index ef5c7dc..d1682bb 100644 --- a/frontend/src/components/workspace/input-box.tsx +++ b/frontend/src/components/workspace/input-box.tsx @@ -218,7 +218,14 @@ export function InputBox({ onContextChange?.({ ...context, mode: getResolvedMode(mode, supportThinking), - reasoning_effort: mode === "ultra" ? "high" : mode === "pro" ? "medium" : mode === "thinking" ? "low" : "minimal", + reasoning_effort: + mode === "ultra" + ? "high" + : mode === "pro" + ? "medium" + : mode === "thinking" + ? "low" + : "minimal", }); }, [onContextChange, context, supportThinking], @@ -292,7 +299,9 @@ export function InputBox({ return; } const current = (textInput.value ?? "").trim(); - const next = current ? `${current}\n${pendingSuggestion}` : pendingSuggestion; + const next = current + ? `${current}\n${pendingSuggestion}` + : pendingSuggestion; textInput.setInput(next); setFollowupsHidden(true); setConfirmOpen(false); @@ -405,7 +414,7 @@ export function InputBox({ - {/* TODO: Add more connectors here + {/* TODO: Add more connectors here @@ -414,210 +423,135 @@ export function InputBox({ /> */} - - - + + - -
- {context.mode === "flash" && } - {context.mode === "thinking" && ( - - )} - {context.mode === "pro" && ( - - )} - {context.mode === "ultra" && ( - - )} -
-
- {(context.mode === "flash" && t.inputBox.flashMode) || - (context.mode === "thinking" && t.inputBox.reasoningMode) || - (context.mode === "pro" && t.inputBox.proMode) || - (context.mode === "ultra" && t.inputBox.ultraMode)} -
-
-
- - - - {t.inputBox.mode} - - - + +
+ {context.mode === "flash" && } + {context.mode === "thinking" && ( + + )} + {context.mode === "pro" && ( + + )} + {context.mode === "ultra" && ( + + )} +
+
handleModeSelect("flash")} > -
-
- - {t.inputBox.flashMode} -
-
- {t.inputBox.flashModeDescription} -
-
- {context.mode === "flash" ? ( - - ) : ( -
- )} - - {supportThinking && ( - handleModeSelect("thinking")} - > -
-
- - {t.inputBox.reasoningMode} -
-
- {t.inputBox.reasoningModeDescription} -
-
- {context.mode === "thinking" ? ( - - ) : ( -
- )} - - )} - handleModeSelect("pro")} - > -
-
- - {t.inputBox.proMode} -
-
- {t.inputBox.proModeDescription} -
-
- {context.mode === "pro" ? ( - - ) : ( -
- )} - - handleModeSelect("ultra")} - > -
-
- -
- {t.inputBox.ultraMode} -
-
-
- {t.inputBox.ultraModeDescription} -
-
- {context.mode === "ultra" ? ( - - ) : ( -
- )} - - - - - - {supportReasoningEffort && context.mode !== "flash" && ( - - -
- {t.inputBox.reasoningEffort}: - {context.reasoning_effort === "minimal" && " " + t.inputBox.reasoningEffortMinimal} - {context.reasoning_effort === "low" && " " + t.inputBox.reasoningEffortLow} - {context.reasoning_effort === "medium" && " " + t.inputBox.reasoningEffortMedium} - {context.reasoning_effort === "high" && " " + t.inputBox.reasoningEffortHigh} -
-
- + {(context.mode === "flash" && t.inputBox.flashMode) || + (context.mode === "thinking" && + t.inputBox.reasoningMode) || + (context.mode === "pro" && t.inputBox.proMode) || + (context.mode === "ultra" && t.inputBox.ultraMode)} +
+ + + - {t.inputBox.reasoningEffort} + {t.inputBox.mode} handleReasoningEffortSelect("minimal")} + onSelect={() => handleModeSelect("flash")} >
- {t.inputBox.reasoningEffortMinimal} + + {t.inputBox.flashMode}
-
- {t.inputBox.reasoningEffortMinimalDescription} +
+ {t.inputBox.flashModeDescription}
- {context.reasoning_effort === "minimal" ? ( + {context.mode === "flash" ? ( + + ) : ( +
+ )} + + {supportThinking && ( + handleModeSelect("thinking")} + > +
+
+ + {t.inputBox.reasoningMode} +
+
+ {t.inputBox.reasoningModeDescription} +
+
+ {context.mode === "thinking" ? ( + + ) : ( +
+ )} + + )} + handleModeSelect("pro")} + > +
+
+ + {t.inputBox.proMode} +
+
+ {t.inputBox.proModeDescription} +
+
+ {context.mode === "pro" ? ( ) : (
@@ -625,65 +559,33 @@ export function InputBox({ handleReasoningEffortSelect("low")} + onSelect={() => handleModeSelect("ultra")} >
- {t.inputBox.reasoningEffortLow} + +
+ {t.inputBox.ultraMode} +
-
- {t.inputBox.reasoningEffortLowDescription} +
+ {t.inputBox.ultraModeDescription}
- {context.reasoning_effort === "low" ? ( - - ) : ( -
- )} - - handleReasoningEffortSelect("medium")} - > -
-
- {t.inputBox.reasoningEffortMedium} -
-
- {t.inputBox.reasoningEffortMediumDescription} -
-
- {context.reasoning_effort === "medium" || !context.reasoning_effort ? ( - - ) : ( -
- )} - - handleReasoningEffortSelect("high")} - > -
-
- {t.inputBox.reasoningEffortHigh} -
-
- {t.inputBox.reasoningEffortHighDescription} -
-
- {context.reasoning_effort === "high" ? ( + {context.mode === "ultra" ? ( ) : (
@@ -693,75 +595,185 @@ export function InputBox({ - )} - - - - - -
- - {selectedModel?.display_name} - - {selectedModel?.model && ( - - {selectedModel.model} - - )} -
-
-
- - - - {models.map((m) => ( - handleModelSelect(m.name)} - > -
- {m.display_name} - - {m.model} - -
- {m.name === context.model_name ? ( - - ) : ( -
- )} - - ))} - - - - - - - {isNewThread && searchParams.get("mode") !== "skill" && ( -
- -
- )} - {!isNewThread && ( -
- )} + {supportReasoningEffort && context.mode !== "flash" && ( + + +
+ {t.inputBox.reasoningEffort}: + {context.reasoning_effort === "minimal" && + " " + t.inputBox.reasoningEffortMinimal} + {context.reasoning_effort === "low" && + " " + t.inputBox.reasoningEffortLow} + {context.reasoning_effort === "medium" && + " " + t.inputBox.reasoningEffortMedium} + {context.reasoning_effort === "high" && + " " + t.inputBox.reasoningEffortHigh} +
+
+ + + + {t.inputBox.reasoningEffort} + + + handleReasoningEffortSelect("minimal")} + > +
+
+ {t.inputBox.reasoningEffortMinimal} +
+
+ {t.inputBox.reasoningEffortMinimalDescription} +
+
+ {context.reasoning_effort === "minimal" ? ( + + ) : ( +
+ )} + + handleReasoningEffortSelect("low")} + > +
+
+ {t.inputBox.reasoningEffortLow} +
+
+ {t.inputBox.reasoningEffortLowDescription} +
+
+ {context.reasoning_effort === "low" ? ( + + ) : ( +
+ )} + + handleReasoningEffortSelect("medium")} + > +
+
+ {t.inputBox.reasoningEffortMedium} +
+
+ {t.inputBox.reasoningEffortMediumDescription} +
+
+ {context.reasoning_effort === "medium" || + !context.reasoning_effort ? ( + + ) : ( +
+ )} + + handleReasoningEffortSelect("high")} + > +
+
+ {t.inputBox.reasoningEffortHigh} +
+
+ {t.inputBox.reasoningEffortHighDescription} +
+
+ {context.reasoning_effort === "high" ? ( + + ) : ( +
+ )} + + + + + + )} + + + + + +
+ + {selectedModel?.display_name} + +
+
+
+ + + + {models.map((m) => ( + handleModelSelect(m.name)} + > +
+ {m.display_name} + + {m.model} + +
+ {m.name === context.model_name ? ( + + ) : ( +
+ )} + + ))} + + + + + + + {isNewThread && searchParams.get("mode") !== "skill" && ( +
+ +
+ )} + {!isNewThread && ( +
+ )} {!disabled && !isNewThread && !followupsHidden && (followupsLoading || followups.length > 0) && ( -
+
{followupsLoading ? (