Files
bahmcloud_store/CHANGELOG.md
2026-01-19 14:35:56 +00:00

14 KiB
Raw Permalink Blame History

Changelog

All notable changes to this repository will be documented in this file.

Sections:

  • Added
  • Changed
  • Fixed
  • Removed
  • Security

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.