-
Notifications
You must be signed in to change notification settings - Fork 3.5k
Add apps panel as built-in panel #28245
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
base: dev
Are you sure you want to change the base?
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This PR is being reviewed by Cursor Bugbot
Details
Your team is on the Bugbot Free tier. On this plan, Bugbot will review limited PRs each billing cycle for each member of your team.
To receive Bugbot reviews on all of your PRs, visit the Cursor dashboard to activate Pro and start your 14-day free trial.
src/panels/config/apps/app-view/config/supervisor-app-config.ts
Outdated
Show resolved
Hide resolved
src/panels/config/apps/app-view/documentation/supervisor-app-documentation-tab.ts
Show resolved
Hide resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
This PR introduces a built-in Apps panel that mirrors the Supervisor add-on management UI, moving functionality from the supervisor panel directly into Home Assistant's config panel. The changes include comprehensive add-on management features with new routes, dialogs, configuration interfaces, and full translation support.
Summary: Add Apps panel as a built-in feature with complete add-on lifecycle management
Key Changes:
- Renamed "Add-ons" to "Apps" throughout the UI with new routing structure (
/config/apps) - Added dialogs for managing repositories and Docker registries
- Implemented per-app pages (Info, Documentation, Configuration, Logs) with system-managed app support
Reviewed changes
Copilot reviewed 29 out of 29 changed files in this pull request and generated 5 comments.
Show a summary per file
| File | Description |
|---|---|
| src/translations/en.json | Added comprehensive translation keys for apps panel, dialogs, configuration options, and error messages |
| src/panels/my/ha-panel-my.ts | Added supervisor redirect routes for app store, addons list, and individual addon pages with optional parameters |
| src/panels/config/ha-panel-config.ts | Updated apps route path from /hassio to /config/apps and registered new config panel routes |
| src/panels/config/apps/supervisor-apps-repository.ts | Repository card component displaying add-ons grouped by repository with filtering |
| src/panels/config/apps/resources/supervisor-apps-style.ts | Shared styling for apps components including card grid layouts and typography |
| src/panels/config/apps/ha-config-apps.ts | Router for apps panel with installed/available tabs |
| src/panels/config/apps/ha-config-apps-installed.ts | Installed apps list view with search, refresh, and navigation to app store |
| src/panels/config/apps/ha-config-apps-available.ts | Available apps store view with repository filtering and management dialogs |
| src/panels/config/apps/ha-config-app-dashboard.ts | Individual app dashboard with tabs for info, docs, config, and logs |
| src/panels/config/apps/dialogs/repositories/show-dialog-repositories.ts | Helper function to display repository management dialog |
| src/panels/config/apps/dialogs/repositories/dialog-repositories.ts | Dialog for adding/removing add-on repositories with auto-refresh |
| src/panels/config/apps/dialogs/registries/show-dialog-registries.ts | Helper function to display Docker registry management dialog |
| src/panels/config/apps/dialogs/registries/dialog-registries.ts | Dialog for managing Docker registry credentials |
| src/panels/config/apps/components/supervisor-apps-filter.ts | Fuzzy search filtering utility using Fuse.js |
| src/panels/config/apps/components/supervisor-apps-card-content.ts | Reusable card content component with icon, title, description, and status indicators |
| src/panels/config/apps/app-view/util/supervisor-app.ts | Utility functions for architecture support check and changelog extraction |
| src/panels/config/apps/app-view/supervisor-app-router.ts | Router for individual app views (info, documentation, config, logs tabs) |
| src/panels/config/apps/app-view/log/supervisor-app-log-tab.ts | App logs view with search filtering |
| src/panels/config/apps/app-view/info/supervisor-app-system-managed.ts | Warning banner for system-managed apps with take control button |
| src/panels/config/apps/app-view/info/supervisor-app-info.ts | Comprehensive app information view with capabilities, metrics, options, and actions |
| src/panels/config/apps/app-view/info/supervisor-app-info-tab.ts | Wrapper tab component for app info view |
| src/panels/config/apps/app-view/documentation/supervisor-app-documentation-tab.ts | App documentation view fetching and rendering markdown |
| src/panels/config/apps/app-view/dialogs/suggestSupervisorAppRestart.ts | Helper to prompt user for app restart after configuration changes |
| src/panels/config/apps/app-view/config/supervisor-app-network.ts | Network port configuration interface with validation and restart prompt |
| src/panels/config/apps/app-view/config/supervisor-app-config.ts | Main app configuration editor supporting UI form and YAML modes |
| src/panels/config/apps/app-view/config/supervisor-app-config-tab.ts | Configuration tab wrapper coordinating options, network, and audio sections |
| src/panels/config/apps/app-view/config/supervisor-app-audio.ts | Audio input/output device selection interface |
| src/panels/config/apps/app-view/components/supervisor-app-update-available-card.ts | Update card showing changelog and backup option before updating |
| src/panels/config/apps/app-view/components/supervisor-app-metric.ts | CPU/RAM usage metric display with color-coded progress bars |
|
@copilot open a new pull request to apply changes based on the comments in this thread. Also fix the lint error by running prettier |
…ethod, use spacing tokens (#28246) * Initial plan * Address PR review comments: localize error messages, replace substr with substring, use spacing tokens Co-authored-by: balloob <[email protected]> --------- Co-authored-by: copilot-swe-agent[bot] <[email protected]> Co-authored-by: balloob <[email protected]>
src/panels/config/apps/app-view/config/supervisor-app-network.ts
Outdated
Show resolved
Hide resolved
src/panels/config/apps/app-view/documentation/supervisor-app-documentation-tab.ts
Outdated
Show resolved
Hide resolved
src/panels/config/apps/app-view/documentation/supervisor-app-documentation-tab.ts
Outdated
Show resolved
Hide resolved
Co-authored-by: Petar Petrov <[email protected]>
Co-authored-by: Norbert Rittel <[email protected]>
| "ui.panel.config.apps.dashboard.visit_addon_page", | ||
| { | ||
| name: html`<a | ||
| href=${this.addon.url!} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Bug: Non-null assertion on nullable URL creates broken link
The addon.url property is typed as string | null, but the code uses this.addon.url! with a non-null assertion when rendering the "visit addon page" link. If an addon doesn't have a URL defined, this would render a link with href="null", creating a broken link that navigates to an invalid URL when clicked. The link or the entire section containing it needs a null check before rendering.
Breaking change
Proposed change
This copies the add-on panel from the supervisor UI into Home Assistant as a built-in panel. The UI is copied as-is.
Initially generated by Claude. I've manually clicked around doing all the actions and comparing the UI between the Supervisor hosted panel and the new panel.
Changes:
supervisor-app-instead ofhassio-addon-, and live under config panel./config/apps/installed/config/apps/available/config/app/a0d7b954_ssh/infoNote: ingress is still done by the supervisor panel. That migration is done in #28214
Type of change
Example configuration
Additional information
Checklist
If user exposed functionality or configuration variables are added/changed:
Note
Introduce a built‑in Apps panel (formerly Supervisor add-ons) with browse/manage, config, logs, docs, and repo/registry management, plus new routes and redirects.
/config/appswith pages:installed,available./config/app/<slug>/{info,documentation,config,logs}.supervisor-app-infowith status, actions (install/start/stop/restart/uninstall), metrics, changelog, update card.Apps(replacing legacy/hassioentry).ha-panel-myadds redirects forsupervisor_*to new Apps routes; supports path-based addon URLs.ha-panel-configregisters new routes:apps,app.en.jsonstrings for Apps UI; shared styles and card components added.Written by Cursor Bugbot for commit bb624f4. This will update automatically on new commits. Configure here.