You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
bug(slm-llm): renaming or removing an LLM provider orphans its stored API key #17858
The SLM admin LLM settings store each provider's API key as a secret matched to the provider by name (llm:provider:<name>:api_key, with the vault id cached in the provider entry). Since #17846 the key is never sent to the client, so the settings page cannot re-show or carry it.
Rename: saving a provider under a new name finds no stored entry for the new name. It is saved with no key, and the old entry, with its secret reference, is dropped from llm_providers. The key is unreachable from the UI and its vault secret is orphaned. (Before fix(slm-secrets): stop sending LLM provider keys to the client, so a save cannot overwrite them (#17826) #17846 a rename stored the display mask, which was broken in a different way.)
Removal: removing a provider drops its entry, but delete_provider_api_key is never called, so its vault secret is orphaned.
The UI has no "a key is set" indicator, so a user cannot tell a provider with a stored key from one without.
Problem
The SLM admin LLM settings store each provider's API key as a secret matched to the provider by name (
llm:provider:<name>:api_key, with the vault id cached in the provider entry). Since #17846 the key is never sent to the client, so the settings page cannot re-show or carry it.llm_providers. The key is unreachable from the UI and its vault secret is orphaned. (Before fix(slm-secrets): stop sending LLM provider keys to the client, so a save cannot overwrite them (#17826) #17846 a rename stored the display mask, which was broken in a different way.)delete_provider_api_keyis never called, so its vault secret is orphaned.Found by the code-reviewer pass on #17846.
Constraints
Acceptance criteria
api_key_set, and the UI shows it (i18n in all locales).