257 lines
10 KiB
Markdown
257 lines
10 KiB
Markdown
# Changelog
|
|
|
|
All notable changes to this repository will be documented in this file.
|
|
|
|
Sections:
|
|
- Added
|
|
- Changed
|
|
- Fixed
|
|
- Removed
|
|
- Security
|
|
|
|
---
|
|
|
|
## [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.
|