439 lines
18 KiB
Markdown
439 lines
18 KiB
Markdown
# Changelog
|
||
|
||
All notable changes to this repository will be documented in this file.
|
||
|
||
Sections:
|
||
- Added
|
||
- Changed
|
||
- Fixed
|
||
- Removed
|
||
- Security
|
||
|
||
---
|
||
|
||
## 0.7.6 - 2026-03-23
|
||
|
||
### Added
|
||
- Blueprint backup listing and restore support in the repository detail view.
|
||
|
||
### Changed
|
||
- Install, update, uninstall, and restore feedback now reflects whether a restart is actually required for the selected content type.
|
||
- Blueprint restore dialogs and action messages now reference `/config/blueprints` instead of integration-only paths.
|
||
|
||
### Fixed
|
||
- Blueprint updates now create usable content backups before overwriting files.
|
||
- Blueprint backups can be restored again from the active store UI after the previous restore-button regression.
|
||
- Blueprint uninstall confirmation text now matches the real uninstall behavior and no longer incorrectly warns about `/config/custom_components` or mandatory restarts.
|
||
|
||
## 0.7.5 - 2026-03-23
|
||
|
||
### Added
|
||
- Initial blueprint install support with deployment to the Home Assistant blueprints folder.
|
||
- Category-aware install metadata including install type, install target, and installed paths.
|
||
- Install target details in the repository view for supported content categories.
|
||
|
||
### Changed
|
||
- Store documentation refreshed to match the current feature set, including pinned repositories, release notes, and blueprint support.
|
||
- Non-integration content handling is now prepared for category-specific install strategies instead of assuming `custom_components` only.
|
||
- Frontend asset version updated so the latest store UI changes load immediately after deployment.
|
||
|
||
## 0.7.4 - 2026-03-23
|
||
|
||
### Added
|
||
- Pinned repositories support to let admins keep important integrations easy to find.
|
||
- Pin and unpin actions in the repository detail view.
|
||
- Store filtering and sorting options for pinned repositories.
|
||
|
||
### Changed
|
||
- Repository favorites are now persisted in settings and restored across reloads.
|
||
- Pinned repositories are highlighted in the store overview with a dedicated badge.
|
||
- Frontend asset version updated so the latest panel changes load immediately after deployment.
|
||
|
||
## 0.7.3 - 2026-03-23
|
||
|
||
### Added
|
||
- Release notes support in the repository detail view for provider releases.
|
||
- New backend endpoint to fetch release notes for the selected repository version.
|
||
|
||
|
||
### Changed
|
||
- Home Assistant panel asset cache-buster bumped to ensure updated frontend assets load after deployment.
|
||
- Release-note lookups now clearly report when a selected version has no provider release body instead of implying notes exist for plain tags or branches.
|
||
|
||
## 0.7.2 – 2026-01-20
|
||
|
||
### Fixed
|
||
- When Bahmcloud Store is installed via an external installer (files copied into /config/custom_components), it now reconciles itself as "installed" in BCS storage so update checks work immediately.
|
||
|
||
## 0.7.1 – 2026-01-20
|
||
|
||
### Fixed
|
||
- GitHub version provider now reliably fetches the latest 20 releases/tags using authenticated API requests.
|
||
- Repositories that were previously fetched in a degraded state (only `latest` and `branch`) are now automatically refreshed on repository view.
|
||
- Cached version lists with incomplete data are no longer reused and are re-fetched from the provider.
|
||
|
||
## [0.7.0] - 2026-01-20
|
||
|
||
### Added
|
||
- Options dialog (gear icon) for the Bahmcloud Store integration.
|
||
- Optional GitHub token can now be set, changed or removed via the Home Assistant UI.
|
||
|
||
### Fixed
|
||
- Fixed missing options flow when clicking the integration settings button.
|
||
|
||
## [0.6.9] – 2026-01-19
|
||
### Added
|
||
- New Home Assistant **GUI setup** (Config Flow) – no YAML configuration required.
|
||
- Optional **GitHub Token** support to increase API limits (up to 5000 req/h).
|
||
Configurable via *Integration → Options*.
|
||
- Clear setup guidance and warning about GitHub rate limits.
|
||
- Automatic detection and warning if YAML setup is still present (ignored safely).
|
||
|
||
### Changed
|
||
- **store.yaml** URL is now fixed to the official Bahmcloud Store index:
|
||
https://git.bahmcloud.de/bahmcloud/ha_store/raw/branch/main/store.yaml
|
||
- Installation workflow fully aligned with standard HA integrations.
|
||
- Update platform migrated to `async_setup_entry`.
|
||
|
||
### Fixed
|
||
- Minor stability and persistence improvements in startup sequence.
|
||
- Prevented duplicate background initialization when HA reloads the integration.
|
||
|
||
### Notes
|
||
- To enable extended GitHub access, create a fine-grained personal access token
|
||
(read-only) at https://github.com/settings/tokens and add it via the integration options.
|
||
|
||
## 0.6.8 – Performance & Cache Stabilization (2026-01-19)
|
||
|
||
### Fixed
|
||
- Fixed excessive GitHub API requests causing rate limiting
|
||
- Fixed missing persistence of repository versions and metadata
|
||
- Fixed background enrichment re-running after Home Assistant restart
|
||
|
||
### Changed
|
||
- Repository metadata (versions, README, descriptions) is now fetched once in the background
|
||
- Cached data is reused and only refreshed on explicit user interaction
|
||
- Improved separation between startup refresh and on-demand updates
|
||
|
||
### Improved
|
||
- Significantly reduced Home Assistant startup time
|
||
- Greatly reduced GitHub API usage
|
||
- More reliable version selection for GitHub and HACS repositories
|
||
|
||
### Notes
|
||
- Background tasks may still appear in DEBUG logs (expected behavior)
|
||
- No functional UI changes in this release
|
||
|
||
## [0.6.7] - 2026-01-19
|
||
|
||
### Fixed
|
||
- Repository metadata loaded on demand is now persisted and restored after Home Assistant restart.
|
||
- Background enrichment reliably updates latest versions and descriptions for HACS repositories.
|
||
- Cached repository data is correctly restored on startup for non-installed repositories.
|
||
|
||
### Changed
|
||
- Repository details are only considered fully enriched once latest version information is available.
|
||
- Improved reliability of background cache synchronization without impacting startup performance.
|
||
|
||
## [0.6.6] - 2026-01-18
|
||
|
||
### Added
|
||
- Source filter to limit repositories by origin: BCS Official, HACS, or Custom.
|
||
- Visual source badges for repositories (BCS Official, HACS, Custom).
|
||
- Restored HACS enable/disable toggle in the Store UI.
|
||
|
||
### Changed
|
||
- HACS repositories now display human-readable names and descriptions based on official HACS metadata.
|
||
- Improved Store usability on mobile devices by fixing back navigation from repository detail view.
|
||
|
||
### Fixed
|
||
- Fixed missing HACS toggle after UI updates.
|
||
- Fixed mobile browser back button exiting the Store instead of returning to the repository list.
|
||
|
||
## [0.6.5] - 2026-01-18
|
||
|
||
### Added
|
||
- Separate handling of HACS official repositories with an enable/disable toggle in the Store UI.
|
||
- HACS repositories are now loaded independently from the main store index.
|
||
|
||
### Changed
|
||
- Store index can remain minimal and curated; HACS repositories are no longer required in store.yaml.
|
||
- Improved Store performance and clarity by clearly separating repository sources.
|
||
|
||
### Fixed
|
||
- Browser cache issues resolved by proper panel cache-busting for UI updates.
|
||
|
||
### Internal
|
||
- No changes to install, update, backup, or restore logic.
|
||
- Fully backward compatible with existing installations and configurations.
|
||
|
||
## [0.6.4] - 2026-01-18
|
||
|
||
### Fixed
|
||
- Fixed long Home Assistant startup times caused by background repository enrichment running too early.
|
||
|
||
### Changed
|
||
- Background repository enrichment is now started only after Home Assistant has fully started.
|
||
- Repository cache updates now run fully asynchronous without blocking Home Assistant startup.
|
||
|
||
### Internal
|
||
- Improved alignment with Home Assistant startup lifecycle.
|
||
- No functional changes to store behavior or UI.
|
||
|
||
## [0.6.3] - 2026-01-18
|
||
|
||
### Changed
|
||
- Improved Store performance for large indexes by avoiding full metadata enrichment during list refresh.
|
||
- Repository details are loaded on demand, reducing initial load time and network requests.
|
||
- Index refresh is skipped when the index content has not changed.
|
||
|
||
## [0.6.2] - 2026-01-18
|
||
|
||
### Added
|
||
- Selectable install/update version per repository (install older releases/tags to downgrade when needed).
|
||
- New API endpoint to list available versions for a repository: `GET /api/bcs/versions?repo_id=...`.
|
||
|
||
## [0.6.1] - 2026-01-18
|
||
|
||
### Fixed
|
||
- Restored integrations now correctly report the restored version instead of the latest installed version.
|
||
- Update availability is correctly recalculated after restoring a backup, allowing updates to be applied again.
|
||
- Improved restore compatibility with backups created before version metadata was introduced.
|
||
|
||
## [0.6.0] - 2026-01-18
|
||
|
||
### Added
|
||
- Restore feature with selection of the last available backups (up to 5 per domain).
|
||
- New API endpoints to list and restore backups:
|
||
- `GET /api/bcs/backups?repo_id=...`
|
||
- `POST /api/bcs/restore?repo_id=...&backup_id=...`
|
||
|
||
### Safety
|
||
- Restoring a backup triggers a “restart required” prompt to apply the recovered integration state.
|
||
|
||
### Notes
|
||
- This is a major release milestone consolidating install/update/uninstall, backup/rollback, and restore workflows.
|
||
|
||
## [0.5.11] - 2026-01-18
|
||
|
||
### Added
|
||
- Automatic backup of existing custom components before install or update.
|
||
- Backup retention with a configurable limit per domain.
|
||
|
||
### Safety
|
||
- Automatic rollback is triggered if an install or update fails after a backup was created.
|
||
|
||
## [0.5.10] - 2026-01-17
|
||
|
||
### Added
|
||
- Store view controls: Filter and Sort dropdowns alongside the existing Category selector.
|
||
|
||
### Fixed
|
||
- Search input focus is preserved while typing (cursor no longer jumps out after re-render).
|
||
|
||
## [0.5.9] - 2026-01-17
|
||
|
||
### Changed
|
||
- README is now collapsible with a preview by default (Show more / Show less).
|
||
- Improved mobile readability by keeping long README content contained without affecting the page layout.
|
||
|
||
## [0.5.8] - 2026-01-17
|
||
|
||
### Changed
|
||
- Mobile UI layout stabilized to prevent horizontal shifting.
|
||
- README rendering no longer expands the page width on mobile devices.
|
||
- Tables and code blocks inside README now scroll within their container.
|
||
- Floating action buttons removed to avoid UI overlap on small screens.
|
||
- Header icon buttons improved for better visibility in light and dark mode.
|
||
|
||
## [0.5.7] - 2026-01-17
|
||
|
||
### Changed
|
||
- Mobile UI improvements: removed floating action buttons to prevent overlay issues.
|
||
- Improved responsive layout to avoid horizontal overflow (badges, URLs, descriptions).
|
||
- README rendering on mobile is more stable (better wrapping and image scaling).
|
||
- Header icon buttons are more readable in both light and dark mode.
|
||
|
||
## [0.5.6] - 2026-01-17
|
||
|
||
### Added
|
||
- Repository uninstall support directly from the Store UI.
|
||
- New backend API endpoint: `POST /api/bcs/uninstall`.
|
||
- Automatic **reconcile**: repositories are marked as not installed when their `custom_components` directories are removed manually.
|
||
|
||
### Changed
|
||
- Installation & Updates section extended with an Uninstall button.
|
||
- Store state now remains consistent even after manual file system changes.
|
||
|
||
### Fixed
|
||
- Repositories remained marked as installed after manual deletion of their domains.
|
||
- UI cache issues caused by outdated static assets.
|
||
|
||
## [0.5.5] - 2026-01-16
|
||
|
||
### Fixed
|
||
- Update entities now refresh their displayed name after store refreshes, so repository names replace fallback IDs (e.g. `index:1`) reliably.
|
||
|
||
## [0.5.4] - 2026-01-16
|
||
|
||
### Added
|
||
- Native **Repair fix flow** for restart-required situations.
|
||
- “Restart required” issues are now **fixable** and provide a confirmation dialog with a real restart action.
|
||
|
||
### Changed
|
||
- Restart-required issues are automatically cleared after Home Assistant restarts.
|
||
- Update entities now fully align with official Home Assistant behavior (Updates screen + Repairs integration).
|
||
|
||
### Fixed
|
||
- Fixed integration startup issues caused by incorrect file placement.
|
||
- Resolved circular import and missing setup errors during Home Assistant startup.
|
||
- Ensured YAML-based setup remains fully supported.
|
||
|
||
## [0.5.3] - 2026-01-16
|
||
|
||
### Added
|
||
- Native Home Assistant Update entities for installed repositories (shown under **Settings → System → Updates**).
|
||
- Human-friendly update names based on repository name (instead of internal repo IDs like `index:1`).
|
||
|
||
### Changed
|
||
- Update UI now behaves like official Home Assistant integrations (update action is triggered via the HA Updates screen).
|
||
|
||
## [0.5.2] - 2026-01-16
|
||
|
||
### Added
|
||
- Install and update backend endpoints (`POST /api/bcs/install`, `POST /api/bcs/update`) to install repositories into `/config/custom_components`.
|
||
- Installed version tracking based on the actually installed ref (tag/release/branch), stored persistently to support repositories with outdated/`0.0.0` manifest versions.
|
||
- API fields `installed_version` (installed ref) and `installed_manifest_version` (informational) to improve transparency in the UI.
|
||
|
||
### Changed
|
||
- Update availability is now evaluated using the stored installed ref (instead of `manifest.json` version), preventing false-positive updates when repositories do not maintain manifest versions.
|
||
|
||
### Fixed
|
||
- Repositories with `manifest.json` version `0.0.0` (or stale versions) no longer appear as constantly requiring updates after installing the latest release/tag.
|
||
|
||
## [0.5.0] - 2026-01-15
|
||
|
||
### Added
|
||
- Manual refresh button that triggers a full backend refresh (store index + provider data).
|
||
- Unified refresh pipeline: startup, timer and UI now use the same refresh logic.
|
||
- Cache-busting for store index requests to always fetch the latest store.yaml.
|
||
|
||
### Improved
|
||
- Logging for store index loading and parsing.
|
||
- Refresh behavior now deterministic and verifiable via logs.
|
||
|
||
### Fixed
|
||
- Refresh button previously only reloaded cached data.
|
||
- Store index was not always reloaded immediately on user action.
|
||
|
||
## [0.4.1] - 2026-01-15
|
||
### Fixed
|
||
- Fixed GitLab README loading by using robust raw file endpoints.
|
||
- Added support for nested GitLab groups when resolving README paths.
|
||
- Added fallback handling for multiple README filenames (`README.md`, `README`, `README.rst`, etc.).
|
||
- Added branch fallback logic for README loading (`default`, `main`, `master`).
|
||
- Improved error resilience so README loading failures never break the store core.
|
||
- No behavior change for GitHub and Gitea providers.
|
||
|
||
## [0.4.0] - 2026-01-15
|
||
|
||
### Added
|
||
- Initial public release of the Bahmcloud Store integration.
|
||
- Sidebar panel with repository browser UI.
|
||
- Support for loading repositories from a central `store.yaml` index.
|
||
- Support for custom repositories added by the user.
|
||
- Provider abstraction for GitHub, GitLab and Gitea:
|
||
- Fetch repository information (name, description, default branch).
|
||
- Resolve latest version from:
|
||
- Releases
|
||
- Tags
|
||
- Fallback mechanisms.
|
||
- Repository metadata support via:
|
||
- `bcs.yaml`
|
||
- `hacs.yaml`
|
||
- `hacs.json`
|
||
- README loading and rendering pipeline:
|
||
- Fetch raw README files.
|
||
- Server-side Markdown rendering.
|
||
- Sanitized HTML output for the panel UI.
|
||
- Auto refresh mechanism for store index and repository metadata.
|
||
- API endpoints:
|
||
- List repositories
|
||
- Add custom repository
|
||
- Remove repository
|
||
Persisted via Home Assistant storage (`.storage/bcs_store`).
|
||
- Public static asset endpoint for panel JS (`/api/bahmcloud_store_static/...`) without auth (required for HA custom panels).
|
||
- Initial API namespace:
|
||
- `GET /api/bcs` list merged repositories (index + custom)
|
||
- `POST /api/bcs` add custom repository
|
||
- `DELETE /api/bcs/custom_repo` remove custom repository
|
||
|
||
### Changed
|
||
- Repository cards are now clickable to open the detail view.
|
||
|
||
## [0.3.2] - 2026-01-15
|
||
|
||
### Added
|
||
- Metadata resolver:
|
||
- Reads `bcs.yaml` (preferred), then `hacs.yaml`, then `hacs.json` from repository root.
|
||
- Extracts `name`, `description`, `category`, `author`, `maintainer` (best-effort).
|
||
- UI now prefers metadata description over provider description.
|
||
- Provider repository name is now only used as a fallback if no metadata name is provided.
|
||
|
||
### Changed
|
||
- Repo display name priority:
|
||
1) metadata (`bcs.yaml` / `hacs.*`)
|
||
2) store index name (store.yaml)
|
||
3) provider repo name
|
||
4) repository URL
|
||
|
||
## [0.3.1] - 2026-01-15
|
||
|
||
### Fixed
|
||
- Panel header version is now derived from `manifest.json` via backend API (no more hardcoded version strings).
|
||
- Mobile navigation/header visibility improved by explicitly disabling iframe embedding for the custom panel.
|
||
- When adding a custom repository without a display name, the name is now fetched from the git provider (GitHub/Gitea) and shown automatically.
|
||
|
||
## [0.3.0] - 2026-01-15
|
||
|
||
### Added
|
||
- Repository enrichment for the Store UI:
|
||
- GitHub: fetch owner and description via GitHub REST API.
|
||
- Gitea: fetch owner and description via Gitea REST API (`/api/v1`).
|
||
- Provider detection for GitHub/GitLab/Gitea (best-effort).
|
||
- Automatic UI description line populated from provider data (when available).
|
||
|
||
### Changed
|
||
- Panel module URL cache-busting updated to avoid stale frontend assets.
|
||
|
||
### Fixed
|
||
- Store "Refresh" now triggers immediate backend refresh (from 0.2.0).
|
||
- Avoided circular imports by using TYPE_CHECKING for type references.
|
||
|
||
### Notes
|
||
- Installation/README details view/update entities will be added in later versions.
|
||
|
||
|
||
## [0.2.0] - 2026-01-15
|
||
|
||
### Added
|
||
- Foundation architecture for BCS (Bahmcloud Component Store) inside a Home Assistant custom component.
|
||
- Custom panel (no iframe) using `hass.callApi()` to avoid authentication issues.
|
||
- Store index loader (`store.yaml`) with periodic refresh (data only).
|
||
- Manual repository management:
|
||
- Add repository
|
||
- List repositories
|
||
- Remove repository
|
||
Persisted via Home Assistant storage (`.storage/bcs_store`).
|
||
- Public static asset endpoint for panel JS (`/api/bahmcloud_store_static/...`) without auth (required for HA custom panels).
|
||
- Initial API namespace:
|
||
- `GET /api/bcs` list merged repositories (index + custom)
|
||
- `POST /api/bcs` add custom repository
|
||
- `DELETE /api/bcs/custom_repo` remove custom repository
|
||
|
||
### Changed
|
||
- Store API/UI terminology standardized to "BCS" (Bahmcloud Component Store), while integration domain remains `bahmcloud_store` for compatibility.
|
||
|
||
### Notes
|
||
- Installation, README rendering, provider enrichment (GitHub/Gitea/GitLab), and Update entities will be implemented in later versions.
|