-
Notifications
You must be signed in to change notification settings - Fork 3.4k
Introduce Home Assistant Labs #27989
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
21 tasks
12 tasks
This was referenced Nov 20, 2025
MindFreeze
reviewed
Nov 20, 2025
bramkragten
reviewed
Nov 20, 2025
bramkragten
reviewed
Nov 20, 2025
bramkragten
reviewed
Nov 20, 2025
bramkragten
reviewed
Nov 20, 2025
bramkragten
reviewed
Nov 20, 2025
bramkragten
reviewed
Nov 20, 2025
bramkragten
reviewed
Nov 20, 2025
bramkragten
reviewed
Nov 20, 2025
bramkragten
reviewed
Nov 20, 2025
bramkragten
reviewed
Nov 20, 2025
bramkragten
reviewed
Nov 20, 2025
bramkragten
reviewed
Nov 20, 2025
bramkragten
reviewed
Nov 20, 2025
bramkragten
reviewed
Nov 20, 2025
bramkragten
reviewed
Nov 20, 2025
bramkragten
reviewed
Nov 20, 2025
- Fix dialog-labs-preview-feature-enable closeDialog pattern - Use @query to get dialog reference and call .close() - Create separate _dialogClosed handler for cleanup - Reset state properly (_backupConfig, _createBackup) - Fix _fetchBackupConfig toggle logic - Always set _createBackup based on config (enable or disable) - Fix TypeScript optional chaining issues - Update CSS spacing to use design tokens - Replace hardcoded px values with --ha-space-* tokens - Apply to both dialogs consistently - Fix switch event handler - Use proper HaSwitch type cast instead of HTMLInputElement - Fix ha-config-labs lifecycle and patterns - Use UnsubscribeFunc type from home-assistant-js-websocket - Make firstUpdated non-async (don't await _loadPreviewFeatures) - Extract URL param handling to _handleUrlParams() - Add proper cleanup pattern with undefined assignment - Improve code organization - Remove duplicate hass-subpage wrapper - Use domainToName helper for integration names - Load title translations properly - Fix button variant property binding (use dot notation) - Remove useless confirmed/createBackup variables - Convert disable confirmation to cleaner await pattern 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]>
Co-authored-by: Bram Kragten <[email protected]>
Implements the collection pattern similar to area_registry as suggested in review feedback. This provides better performance and cleaner code organization. Changes: - Create ws-labs.ts with subscribeLabFeatures collection - Convert HaConfigLabs to use SubscribeMixin - Remove manual subscription and disconnectedCallback - Automatic updates via labs_updated event through collection - Separate translation loading from feature loading Benefits: - Automatic state management via collection - Debounced updates (500ms) to prevent excessive re-renders - Consistent pattern with other registries - Cleaner lifecycle management 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]>
The ha-md-dialog style block with only --dialog-content-padding was redundant since we control padding directly in the .summary element. Changes: - Remove ha-md-dialog CSS block - Update .summary padding from (var(--ha-space-4) 0) to var(--ha-space-6) - This provides consistent spacing without the unnecessary override 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]>
bramkragten
reviewed
Nov 20, 2025
Co-authored-by: Bram Kragten <[email protected]>
bramkragten
reviewed
Nov 20, 2025
bramkragten
reviewed
Nov 20, 2025
bramkragten
reviewed
Nov 20, 2025
bramkragten
reviewed
Nov 20, 2025
- Consolidate ws-labs.ts into labs.ts file - Sort preview features by localized integration name - Add haStyle and clean up h1/h2 styling - Apply spacing variable suggestions in dialogs - Use ha-space-* variables for consistent spacing 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]>
Only load title translations for integrations that have preview features, instead of loading all integration titles. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]>
bramkragten
reviewed
Nov 20, 2025
Use memoizeOne to ensure features are re-sorted when translations change (e.g., language switch), while avoiding unnecessary re-sorting on every render when dependencies haven't changed. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]>
Use memoizeOne to ensure features are re-sorted when translations change (e.g., language switch), while avoiding unnecessary re-sorting on every render when dependencies haven't changed. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]>
…istant-polymer into frenck-2025-0545 # Conflicts: # src/panels/config/labs/ha-config-labs.ts
bramkragten
previously approved these changes
Nov 20, 2025
bramkragten
approved these changes
Nov 20, 2025
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Proposed change
This PR introduces Home Assistant Labs.
A feature that allows integrations to expose preview features that an user can opt-in to.
It provides a standardized way to ship preview features that users can opt into before they become standard / generally available. Labs preview features are critical bug free, fully functional features that are being refined through real-world usage and feedback before becoming standard in Home Assistant. They differ from beta testing, which evaluates release stability.
They differ from betas. A beta test, tests for general stability of Home Assistant, while these previews are aimed at validating and iterating new features that might not have yet reached the envisioned feature set.
Demo video:
CleanShot.2025-11-20.at.14.05.31.mp4
A small example implementation is provided in the Core
kitchen_sinkintegration.My link support and behavior; supporting deep links to specific features as well.
CleanShot.2025-11-19.at.10.22.39.mp4
Type of change
Example configuration
Additional information
Checklist
If user exposed functionality or configuration variables are added/changed: