Summary
The "Agent Defaults" section in town settings currently uses a plain text input for the default model (e.g., anthropic/claude-sonnet-4.6). Users have to know the exact model ID string. Replace this with the model selector dropdown component used elsewhere in the Next.js app.
Current
TownSettingsPageClient.tsx — the "Agent Defaults" section has:
<Input value={defaultModel} onChange={e => setDefaultModel(e.target.value)} placeholder="e.g. anthropic/claude-sonnet-4.6" />
Desired
A dropdown/combobox that:
- Lists available models from the Kilo gateway (same data source as other model selectors in the app)
- Groups by provider (Anthropic, OpenAI, Google, etc.)
- Shows model name, context window, and pricing info
- Supports search/filter for quick selection
- Falls back gracefully if the model list API is unavailable (show the current text input as fallback)
- Persists the selected model as the same OpenRouter-style ID string (
provider/model-name)
Files
src/app/(app)/gastown/[townId]/settings/TownSettingsPageClient.tsx — Agent Defaults section
- Reuse the existing model selector component from elsewhere in the app (find it via grep for
ModelSelector or model-selector or similar)
Acceptance Criteria
Summary
The "Agent Defaults" section in town settings currently uses a plain text input for the default model (e.g.,
anthropic/claude-sonnet-4.6). Users have to know the exact model ID string. Replace this with the model selector dropdown component used elsewhere in the Next.js app.Current
TownSettingsPageClient.tsx— the "Agent Defaults" section has:Desired
A dropdown/combobox that:
provider/model-name)Files
src/app/(app)/gastown/[townId]/settings/TownSettingsPageClient.tsx— Agent Defaults sectionModelSelectorormodel-selectoror similar)Acceptance Criteria