From d44d0f61e4026da35c0d1a4acb87ba71ed6cd599 Mon Sep 17 00:00:00 2001
From: Clawd <ai@clawd.bot>
Date: Sun, 1 Mar 2026 08:31:52 -0800
Subject: feat(settings): add configurable model selection

- Add Model settings section with free-text input for model override
- Pass configured model through to SDK query() calls
- Display active model badge in ActionBar next to token usage
- Seed model state from DB on mount, update from system:init events
- Empty/unset value uses SDK default (no breaking change)
---
 renderer/src/components/SettingsPage.tsx | 14 ++++++++++++--
 1 file changed, 12 insertions(+), 2 deletions(-)

(limited to 'renderer/src/components/SettingsPage.tsx')

diff --git a/renderer/src/components/SettingsPage.tsx b/renderer/src/components/SettingsPage.tsx
index 9ebde44..d3ff4bf 100644
--- a/renderer/src/components/SettingsPage.tsx
+++ b/renderer/src/components/SettingsPage.tsx
@@ -1,8 +1,9 @@
 import React, { useState } from "react";
 import { SystemPromptsSettings } from "./settings/SystemPromptsSettings";
 import { GitSettings } from "./settings/GitSettings";
+import { ModelSettings } from "./settings/ModelSettings";
 
-type SettingsSection = "system-prompts" | "git";
+type SettingsSection = "model" | "system-prompts" | "git";
 
 interface SettingsPageProps {
   onClose: () => void;
@@ -10,7 +11,7 @@ interface SettingsPageProps {
 
 export function SettingsPage({ onClose }: SettingsPageProps) {
   const [activeSection, setActiveSection] =
-    useState<SettingsSection>("system-prompts");
+    useState<SettingsSection>("model");
 
   return (
     <div className="settings-overlay">
@@ -31,6 +32,14 @@ export function SettingsPage({ onClose }: SettingsPageProps) {
       <div className="settings-body">
         {/* Side nav */}
         <nav className="settings-nav">
+          <button
+            className={`settings-nav-item${
+              activeSection === "model" ? " active" : ""
+            }`}
+            onClick={() => setActiveSection("model")}
+          >
+            Model
+          </button>
           <button
             className={`settings-nav-item${
               activeSection === "system-prompts" ? " active" : ""
@@ -51,6 +60,7 @@ export function SettingsPage({ onClose }: SettingsPageProps) {
 
         {/* Content */}
         <div className="settings-content">
+          {activeSection === "model" && <ModelSettings />}
           {activeSection === "system-prompts" && <SystemPromptsSettings />}
           {activeSection === "git" && <GitSettings />}
         </div>
-- 
cgit v1.2.3

