feat(ai): persist default providers to config on first use
Some checks failed
CI Code / Check spelling (pull_request) Successful in 23s
CI Code / Check coding style (pull_request) Successful in 38s
CI Code / Code Coverage (pull_request) Failing after 1m9s
CI Code / Linux (ubuntu) (pull_request) Failing after 2h57m20s
CI Code / Linux (debian) (pull_request) Failing after 2h57m22s
CI Code / Linux (arch) (pull_request) Failing after 2h57m25s
Some checks failed
CI Code / Check spelling (pull_request) Successful in 23s
CI Code / Check coding style (pull_request) Successful in 38s
CI Code / Code Coverage (pull_request) Failing after 1m9s
CI Code / Linux (ubuntu) (pull_request) Failing after 2h57m20s
CI Code / Linux (debian) (pull_request) Failing after 2h57m22s
CI Code / Linux (arch) (pull_request) Failing after 2h57m25s
Fix /ai set provider <name> <url> not persisting across restarts, and default providers (openai, perplexity) disappearing when user adds a custom provider. - Add prefs_ai_set_provider(), prefs_ai_remove_provider(), prefs_ai_get_provider_url(), prefs_ai_list_providers(), prefs_free_ai_providers() for provider persistence. - Implement prefs_ai_get_providers() in preferences.c: if no providers are configured, write default providers to config and return them. This ensures defaults are persisted so users can modify them directly. - Move default provider URL definitions from ai_client.c to preferences.c. ai_client.c no longer knows about specific provider names. - Simplify ai_client_init() to call prefs_ai_get_providers() and initialize with whatever it receives. - ai_add_provider() persists to config; ai_remove_provider() removes from config. Behavior: On first run, default providers are written to config. User can then modify, remove, or add providers freely and they persist.
This commit is contained in:
@@ -1974,7 +1974,9 @@ prefs_ai_get_providers(void)
|
||||
}
|
||||
prefs_free_ai_providers(configured);
|
||||
|
||||
/* Nothing configured — return built-in defaults */
|
||||
prefs_ai_set_provider("openai", "https://api.openai.com/");
|
||||
prefs_ai_set_provider("perplexity", "https://api.perplexity.ai/");
|
||||
|
||||
GList* result = NULL;
|
||||
result = g_list_append(result, g_strdup("openai"));
|
||||
result = g_list_append(result, g_strdup("https://api.openai.com/"));
|
||||
|
||||
Reference in New Issue
Block a user