mirror of
https://github.com/leonvanzyl/autocoder.git
synced 2026-03-18 11:23:08 +00:00
feat: add API provider selection UI and fix stuck features on agent crash
API Provider Selection: - Add provider switcher in Settings modal (Claude, Kimi, GLM, Ollama, Custom) - Auth tokens stored locally only (registry.db), never returned by API - get_effective_sdk_env() builds provider-specific env vars for agent subprocess - All chat sessions (spec, expand, assistant) use provider settings - Backward compatible: defaults to Claude, env vars still work as override Fix Stuck Features: - Add _cleanup_stale_features() to process_manager.py - Reset in_progress features when agent stops, crashes, or fails healthcheck - Prevents features from being permanently stuck after rate limit crashes - Uses separate SQLAlchemy engine to avoid session conflicts with subprocess Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -24,6 +24,7 @@ import type {
|
||||
Settings,
|
||||
SettingsUpdate,
|
||||
ModelsResponse,
|
||||
ProvidersResponse,
|
||||
DevServerStatusResponse,
|
||||
DevServerConfig,
|
||||
TerminalInfo,
|
||||
@@ -399,6 +400,10 @@ export async function getAvailableModels(): Promise<ModelsResponse> {
|
||||
return fetchJSON('/settings/models')
|
||||
}
|
||||
|
||||
export async function getAvailableProviders(): Promise<ProvidersResponse> {
|
||||
return fetchJSON('/settings/providers')
|
||||
}
|
||||
|
||||
export async function getSettings(): Promise<Settings> {
|
||||
return fetchJSON('/settings')
|
||||
}
|
||||
|
||||
@@ -525,6 +525,20 @@ export interface ModelsResponse {
|
||||
default: string
|
||||
}
|
||||
|
||||
export interface ProviderInfo {
|
||||
id: string
|
||||
name: string
|
||||
base_url: string | null
|
||||
models: ModelInfo[]
|
||||
default_model: string
|
||||
requires_auth: boolean
|
||||
}
|
||||
|
||||
export interface ProvidersResponse {
|
||||
providers: ProviderInfo[]
|
||||
current: string
|
||||
}
|
||||
|
||||
export interface Settings {
|
||||
yolo_mode: boolean
|
||||
model: string
|
||||
@@ -533,6 +547,10 @@ export interface Settings {
|
||||
testing_agent_ratio: number // Regression testing agents (0-3)
|
||||
playwright_headless: boolean
|
||||
batch_size: number // Features per coding agent batch (1-3)
|
||||
api_provider: string
|
||||
api_base_url: string | null
|
||||
api_has_auth_token: boolean
|
||||
api_model: string | null
|
||||
}
|
||||
|
||||
export interface SettingsUpdate {
|
||||
@@ -541,6 +559,10 @@ export interface SettingsUpdate {
|
||||
testing_agent_ratio?: number
|
||||
playwright_headless?: boolean
|
||||
batch_size?: number
|
||||
api_provider?: string
|
||||
api_base_url?: string
|
||||
api_auth_token?: string
|
||||
api_model?: string
|
||||
}
|
||||
|
||||
export interface ProjectSettingsUpdate {
|
||||
|
||||
Reference in New Issue
Block a user