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