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
A first-class "beta features" opt-in path for the stable addon, so operators can enable individual unstable features without switching to the dev addon channel and without setting environment variables manually.
Proposed by @julienld in #942 (comment) as a follow-up to moving ha_config_set_yaml out of the main addon UI:
As a follow-up, we could open a separate PR to add a generic beta features mechanism to the stable addon: a free-form text field with instructions pointing to docs/beta.md for users who want to opt in.
Two reasonable shapes for the implementation, not mutually exclusive:
Addon config text field — a single beta_features: "" field in homeassistant-addon/config.yaml's options:/schema:, parsed by homeassistant-addon/start.py into the corresponding ENABLE_* env vars before the server starts. Values would be a comma-separated list of beta feature names documented in docs/beta.md (e.g., beta_features: "yaml_config_editing").
Pairing both gives users two compatible entry points: the addon config field for operators who never open the web UI, and the /settings UI for everyone else. Both would write to the same persistence file so they stay coherent.
Why do you need this?
In #942, julienld proposed moving ha_config_set_yaml out of the stable addon's main toggle list and into a beta status — accessible only via env var or via the dev channel addon. That solves the "this should not be one click away on stable" problem for that specific tool, but leaves a gap for any operator who wants to opt in:
Stable addon users can't easily set arbitrary env vars (HA Supervisor only honors options listed in the addon's schema:).
Switching to the dev channel addon to get one beta feature pulls in every dev change, which is more risk than they signed up for.
The non-addon (pip / Docker direct / uv) env var path works but excludes the addon-using majority.
A generic beta opt-in mechanism solves the "I want exactly this one risky feature on stable" case for ha_config_set_yaml today, and gives future risky-but-useful features a stable home that doesn't require either a dev channel switch or a new toggle slot in the main addon UI for every one of them.
Strong integration opportunity with feat: web-based settings UI for per-tool enable/disable/pin #960 — the web settings UI already has the "feature-gated tool stub" concept and could host the opt-in toggles natively, so beta features become a first-class part of the existing settings page rather than a separate config surface.
First feature to migrate in: yaml_config_editing (ENABLE_YAML_CONFIG_EDITING).
Future candidates worth reviewing once the mechanism exists: filesystem tools (HAMCP_ENABLE_FILESYSTEM_TOOLS), and any other env-var-gated capabilities currently hidden from addon users.
What would you like to see?
A first-class "beta features" opt-in path for the stable addon, so operators can enable individual unstable features without switching to the dev addon channel and without setting environment variables manually.
Proposed by @julienld in #942 (comment) as a follow-up to moving
ha_config_set_yamlout of the main addon UI:Two reasonable shapes for the implementation, not mutually exclusive:
beta_features: ""field inhomeassistant-addon/config.yaml'soptions:/schema:, parsed byhomeassistant-addon/start.pyinto the correspondingENABLE_*env vars before the server starts. Values would be a comma-separated list of beta feature names documented indocs/beta.md(e.g.,beta_features: "yaml_config_editing").ha_config_set_yaml, filesystem tools) with locked toggles and a note explaining which flag is required. A "Beta features" section at the top of/settingscould expose those gates as opt-in checkboxes that, when enabled, persist totool_config.json(or a siblingbeta_config.json) and unlock the corresponding tool stubs on next restart. This keeps stable addon operators on the stable channel while still letting them opt into individual unstable tools through a UI path, and avoids the env-var-fiddling that julienld's first paragraph in refactor(addon): move ha_config_set_yaml to dev channel only (breaking — stable toggle removed, set ENABLE_YAML_CONFIG_EDITING or use dev add-on) #942 was trying to spare them.Pairing both gives users two compatible entry points: the addon config field for operators who never open the web UI, and the
/settingsUI for everyone else. Both would write to the same persistence file so they stay coherent.Why do you need this?
In #942, julienld proposed moving
ha_config_set_yamlout of the stable addon's main toggle list and into a beta status — accessible only via env var or via the dev channel addon. That solves the "this should not be one click away on stable" problem for that specific tool, but leaves a gap for any operator who wants to opt in:schema:).A generic beta opt-in mechanism solves the "I want exactly this one risky feature on stable" case for
ha_config_set_yamltoday, and gives future risky-but-useful features a stable home that doesn't require either a dev channel switch or a new toggle slot in the main addon UI for every one of them.Additional context
docs/beta.mdand removesenable_yaml_config_editingfrom the stable addon UI).yaml_config_editing(ENABLE_YAML_CONFIG_EDITING).HAMCP_ENABLE_FILESYSTEM_TOOLS), and any other env-var-gated capabilities currently hidden from addon users.