Remove FAST/THINKING model dropdown from chat composer (#106) (#107)
Deploy Beta / unit-tests (push) Successful in 12s
Unit Tests / test (push) Successful in 11s
Deploy Beta / deploy-beta (push) Successful in 2m20s

## Summary
- Closes [#106](#106).
- Removes the FAST / THINKING `<select>` from the chat input bar.
- Continues to send a fixed `modelName` of `FAST` on WebSocket sends so the backend contract is unchanged.

## Test plan
- [ ] Open chat dashboard — composer shows attach + text field + send only (no FAST/THINKING dropdown).
- [ ] Send a message — stream still works.
- [ ] Send with attachment — still works.Reviewed-on: #107
This commit was merged in pull request #107.
This commit is contained in:
2026-08-04 10:17:32 -07:00
parent 27b4fd7698
commit 6ec239d2e0
@@ -252,32 +252,6 @@ const IconButton = styled.button`
}
`;
const StyledSelect = styled.select`
background: transparent;
border: none;
flex-shrink: 0;
max-width: 7rem;
color: ${({ theme }) => theme.colors.text};
font-size: 0.9rem;
padding: 0.5rem;
outline: none;
cursor: pointer;
margin-right: 0.5rem;
border-right: 1px solid ${({ theme }) => theme.colors.cardBorder};
@media (max-width: 768px) {
max-width: 5.5rem;
font-size: 0.8rem;
padding: 0.4rem 0.2rem;
margin-right: 0.25rem;
}
option {
background: ${({ theme }) => theme.colors.background || '#1a1a1a'};
color: ${({ theme }) => theme.colors.text};
}
`;
const ConversationItem = styled.div<{ $active: boolean }>`
padding: 0.8rem 1rem;
margin-bottom: 0.5rem;
@@ -343,11 +317,13 @@ const validationSchema = Yup.object().shape({
.required("This is required"),
});
/** Fixed until product re-exposes a model picker (#106). */
const DEFAULT_MODEL_NAME = "FAST";
type PromptValues = {
prompt: string;
file: Blob | null;
fileType: string | null;
modelName: string;
};
const AlwaysScrollToBottom = ({ trigger }: { trigger: string | number }): JSX.Element => {
@@ -447,7 +423,7 @@ const AsyncDashboardInner = (): JSX.Element => {
})();
const handlePromptSubmit = async (
{ prompt, file, fileType, modelName }: PromptValues,
{ prompt, file, fileType }: PromptValues,
{ resetForm }: any,
): Promise<void> => {
const trimmedPrompt = (prompt ?? "").trim();
@@ -464,7 +440,7 @@ const AsyncDashboardInner = (): JSX.Element => {
conversationRef.current = tempConversations;
setConversationDetails(tempConversations);
sendMessage(trimmedPrompt, selectedConversation, file, fileType, modelName);
sendMessage(trimmedPrompt, selectedConversation, file, fileType, DEFAULT_MODEL_NAME);
trackEvent(AnalyticsEvents.MESSAGE_SENT, {
hasConversation: Boolean(selectedConversation),
hasAttachment: Boolean(file),
@@ -474,7 +450,6 @@ const AsyncDashboardInner = (): JSX.Element => {
prompt: "",
file: null,
fileType: null,
modelName: modelName, // Keep the selected model
}
});
@@ -640,7 +615,6 @@ const AsyncDashboardInner = (): JSX.Element => {
prompt: "",
file: null,
fileType: null,
modelName: "FAST",
}}
validationSchema={validationSchema}
onSubmit={handlePromptSubmit}
@@ -691,14 +665,6 @@ const AsyncDashboardInner = (): JSX.Element => {
}}
/>
<Field
as={StyledSelect}
name="modelName"
>
<option value="FAST">FAST</option>
<option value="THINKING">THINKING</option>
</Field>
<Field name="prompt">
{({ field }: any) => (
<StyledInput