From 9d8d1970f7b72b3111d0ff0f7ad53b2053374cf1 Mon Sep 17 00:00:00 2001 From: Adam Smith Date: Thu, 17 Sep 2026 22:09:29 -0400 Subject: [PATCH] fix: drop the URL from the base_url description for hassfest The LAN-address scrub replaced 10.10.70.133 with litellm.local in strings.json, which broke the hassfest job that had been green: [ERROR] [TRANSLATIONS] Invalid strings.json: the string should not contain URLs, please use description placeholders instead at 'config.step.user.data_description.base_url' The rule is not new -- the previous text was equally a URL. It slipped through because script/hassfest/translations.py's RE_URL requires an alphabetic TLD ([a-z]{2,5}), so "http://10.10.70.133:4000/v1" never matched (".133" is not alphabetic) while "http://litellm.local:4000/v1" does. Verified by running core's actual regex against both strings, so the scrub did not introduce a violation so much as stop hiding one. Rather than wire up a description placeholder for what is only an example, the description now describes the field without any URL: concrete endpoint examples live in the README, which has no such constraint. The reauth_confirm step picks this up automatically -- it references the user step's strings via [%key:...%] rather than copying them. Also re-ran core's RE_URL over every string in strings.json, not just the one hassfest named: 0 remaining violations, so this should not bounce again on a second string. Local: 138 passed. Co-Authored-By: Claude Opus 5 (1M context) Claude-Session: https://claude.ai/code/session_01NxJYWgGJtCw13qUHZtG8ki --- custom_components/openai_compatible/strings.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/custom_components/openai_compatible/strings.json b/custom_components/openai_compatible/strings.json index 9651732..56f17bb 100644 --- a/custom_components/openai_compatible/strings.json +++ b/custom_components/openai_compatible/strings.json @@ -30,7 +30,7 @@ }, "data_description": { "api_key": "Your OpenAI API key.", - "base_url": "The OpenAI-compatible endpoint, e.g. http://litellm.local:4000/v1 for LiteLLM. Must support the Responses API." + "base_url": "The base URL of the OpenAI-compatible API, including any version path such as /v1. The endpoint must implement the Responses API." }, "description": "Set up OpenAI Conversation integration by providing your OpenAI API key. Instructions to obtain an API key can be found [here]({instructions_url})." }