From fae314a34c1580e644939b79b658ef7094175387 Mon Sep 17 00:00:00 2001 From: Anthony Ronning <101225832+AnthonyRonning@users.noreply.github.com> Date: Sun, 25 Oct 2026 08:52:17 +0000 Subject: [PATCH 1/2] Research: keep long model names from breaking the model selector The composer's model chip now grows to the full name when the row has room and truncates otherwise, so long names such as DeepSeek V4.1 Flash, DeepSeek Uncensored and GLM-5.3 Flash no longer push the composer controls onto a second row on phones. Phones show the thinking level as its tinted icon only. The More models menu is 320px wide and keeps each row on one line, with the badges, lock and check inline and every row the same height. Co-Authored-By: Claude Opus 5.5 --- .../frontend/src/components/ModelSelector.tsx | 34 ++++++++++++------- .../components/chat/ThinkingLevelSelector.tsx | 5 ++- 2 files changed, 25 insertions(+), 14 deletions(-) diff --git a/apps/maple-research/frontend/src/components/ModelSelector.tsx b/apps/maple-research/frontend/src/components/ModelSelector.tsx index 116e438e7..e62ecf349 100644 --- a/apps/maple-research/frontend/src/components/ModelSelector.tsx +++ b/apps/maple-research/frontend/src/components/ModelSelector.tsx @@ -296,12 +296,17 @@ export function ModelSelector({ const elements: React.ReactNode[] = []; if (selectedModel) { - elements.push(selectedModel.display_name || selectedModel.short_name || modelId); + elements.push( + + {selectedModel.display_name || selectedModel.short_name || modelId} + + ); const badges = getModelBadges(modelId); if (badges && badges.length > 0) { badges.forEach((badge, index) => { - let badgeClass = "rounded-md px-1.5 py-0.5 text-[10px] font-medium"; + let badgeClass = + "shrink-0 whitespace-nowrap rounded-md px-1.5 py-0.5 text-[10px] font-medium leading-4"; if (badge === "Coming Soon") { badgeClass += " bg-muted text-muted-foreground"; @@ -327,20 +332,18 @@ export function ModelSelector({ } if (showLock && !hasAccessToModel(modelId)) { - elements.push(); + elements.push(); } } else { elements.push(getDisplayNameText(modelId)); } - return {elements}; + return {elements}; }; // Show current category or model name in the collapsed view const modelDisplay = ( -
-
{getDisplayLabel(model)}
-
+ {getDisplayLabel(model)} ); // Always show dropdown even with single model (it may be loading more) @@ -348,20 +351,23 @@ export function ModelSelector({ return ( <> + {/* The chip counts as 5rem when the composer row wraps, grows up to the + full name when there is room, and truncates instead of pushing the + other controls onto a new row. */} - + {!showAdvanced ? (
{/* Primary options */} @@ -497,10 +503,12 @@ export function ModelSelector({ }`} disabled={effectivelyDisabled} > -
-
{getDisplayName(availableModel.id, true)}
+
+
+ {getDisplayName(availableModel.id, true)} +
- {isActive && } + {isActive && } ); }) diff --git a/apps/maple-research/frontend/src/components/chat/ThinkingLevelSelector.tsx b/apps/maple-research/frontend/src/components/chat/ThinkingLevelSelector.tsx index c00bc26a3..cf9eae8b6 100644 --- a/apps/maple-research/frontend/src/components/chat/ThinkingLevelSelector.tsx +++ b/apps/maple-research/frontend/src/components/chat/ThinkingLevelSelector.tsx @@ -54,7 +54,10 @@ export function ThinkingLevelSelector({ - {!isDefault && {currentLabel}} + {/* Phones keep the tinted icon only so the model name has room. */} + {!isDefault && ( + {currentLabel} + )} From 76bd7ae47792607e7f51b4d631dfc63cf704d2ca Mon Sep 17 00:00:00 2001 From: Anthony Ronning <101225832+AnthonyRonning@users.noreply.github.com> Date: Sun, 25 Oct 2026 08:56:32 +0000 Subject: [PATCH 2/2] Research: name Kimi K3 instead of the retired Kimi K2.6 The upgrade prompts, pricing plans and promo dialog still listed Kimi K2.6, which is no longer served. They now name Kimi K3, the current Kimi model. Co-Authored-By: Claude Opus 5.5 --- .../frontend/src/components/PromoDialog.tsx | 2 +- .../frontend/src/components/UpgradePromptDialog.tsx | 8 ++++---- apps/maple-research/frontend/src/config/pricingConfig.tsx | 8 ++++---- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/apps/maple-research/frontend/src/components/PromoDialog.tsx b/apps/maple-research/frontend/src/components/PromoDialog.tsx index ffc00ef61..f29c59de8 100644 --- a/apps/maple-research/frontend/src/components/PromoDialog.tsx +++ b/apps/maple-research/frontend/src/components/PromoDialog.tsx @@ -22,7 +22,7 @@ interface PromoDialogProps { const PROMO_BENEFITS = [ { icon: , - text: "Powerful AI models including Gemma 4 31B, GLM 5.3, and Kimi K2.6" + text: "Powerful AI models including Gemma 4 31B, GLM 5.3, and Kimi K3" }, { icon: , diff --git a/apps/maple-research/frontend/src/components/UpgradePromptDialog.tsx b/apps/maple-research/frontend/src/components/UpgradePromptDialog.tsx index 6432babd0..d909991c6 100644 --- a/apps/maple-research/frontend/src/components/UpgradePromptDialog.tsx +++ b/apps/maple-research/frontend/src/components/UpgradePromptDialog.tsx @@ -90,7 +90,7 @@ export function UpgradePromptDialog({ benefits: [ "Images stay private with end-to-end encryption", "Upload JPEG, PNG, and WebP formats securely", - "Use Gemma 4 31B and Kimi K2.6 on Pro and above", + "Use Gemma 4 31B and Kimi K3 on Pro and above", "Analyze diagrams, screenshots, and photos privately", "Extract text from images without exposing data" ] @@ -159,7 +159,7 @@ export function UpgradePromptDialog({ : isPro ? [ "10x more monthly messages with Max plan", - "Access to all AI models including GLM 5.3 and Kimi K2.6", + "Access to all AI models including GLM 5.3 and Kimi K3", "Highest priority during peak times", "Maximum rate limits for power users", "Or purchase extra credits to keep chatting now" @@ -207,7 +207,7 @@ export function UpgradePromptDialog({ requiredPlan: "Pro", benefits: [ "All models run in secure, encrypted environments", - "Access to GLM 5.3, Kimi K2.6, and the full model lineup", + "Access to GLM 5.3, Kimi K3, and the full model lineup", "OpenAI GPT-OSS, Gemma, and other advanced models", "Higher token limits for longer conversations", "Priority access to new models as they launch" @@ -285,7 +285,7 @@ export function UpgradePromptDialog({ {isFreeTier ? "Plus access to powerful models, image & document processing, and more" : isPro - ? "Plus access to GLM 5.3, Kimi K2.6, 10x more usage, API access, and priority support" + ? "Plus access to GLM 5.3, Kimi K3, 10x more usage, API access, and priority support" : "Explore our pricing options for the best plan for your needs"}

diff --git a/apps/maple-research/frontend/src/config/pricingConfig.tsx b/apps/maple-research/frontend/src/config/pricingConfig.tsx index 4e9fd1b46..07f2cd87d 100644 --- a/apps/maple-research/frontend/src/config/pricingConfig.tsx +++ b/apps/maple-research/frontend/src/config/pricingConfig.tsx @@ -58,7 +58,7 @@ export const PRICING_PLANS: PricingPlan[] = [ icon: }, { - text: "Paid AI models including Gemma 4 31B, GLM 5.3, and Kimi K2.6", + text: "Paid AI models including Gemma 4 31B, GLM 5.3, and Kimi K3", included: false, icon: }, @@ -97,7 +97,7 @@ export const PRICING_PLANS: PricingPlan[] = [ icon: }, { - text: "All AI models including GLM 5.3 and Kimi K2.6", + text: "All AI models including GLM 5.3 and Kimi K3", included: true, icon: }, @@ -151,7 +151,7 @@ export const PRICING_PLANS: PricingPlan[] = [ icon: }, { - text: "All AI models including GLM 5.3 and Kimi K2.6", + text: "All AI models including GLM 5.3 and Kimi K3", included: true, icon: }, @@ -214,7 +214,7 @@ export const PRICING_PLANS: PricingPlan[] = [ icon: }, { - text: "All AI models including GLM 5.3 and Kimi K2.6", + text: "All AI models including GLM 5.3 and Kimi K3", included: true, icon: },