4.3 KiB
4.3 KiB
Changes Log
2026-03-23
Added
- Created
.idea/start prompt.mdas a persistent project working prompt for future sessions. - Added
.idea/changes.mdas the preferred in-project location for the detailed session change log. - Added release notes support in the active Bahmcloud Store runtime path: backend provider fetching, a dedicated API endpoint, and panel display for the currently selected version when provider release notes are available.
- Bumped the Home Assistant panel asset cache-buster from
v=109tov=110so the updated frontend loads reliably after deployment.
Documented
- Captured the verified project identity from the repository and README files: Bahmcloud Store is a Home Assistant custom integration intended to behave like a provider-neutral store for custom integrations, similar to HACS but broader than GitHub-only workflows.
- Recorded the actual active architecture from source analysis, including the config-entry-only setup, the fixed Bahmcloud store index, delayed startup refresh, periodic refresh, repo merge flow, cache usage, install/update/uninstall pipeline, backup/restore pipeline, update entities, and Repairs-based restart handling.
- Recorded the current provider reality from code: GitHub, GitLab, and Gitea-compatible repositories are the concrete supported paths today, while truly generic "all git providers" support is still an intention and must be validated case by case.
- Recorded the public API endpoints exposed by
views.pyso future work preserves the current backend contract unless a deliberate breaking change is approved. - Recorded storage facts from
storage.py, including thebcs_storeHome Assistant storage key and the persisted sections for custom repositories, installed repositories, settings, HACS cache, and repo enrichment cache. - Recorded frontend facts from the active panel registration in
__init__.pyand the active frontend implementation inpanel/panel.js, including the cache-busting panel asset version query. - Updated the persistent start prompt to point future work to
.idea/changes.mdas the canonical detailed work log. - Release notes are intentionally tied to provider release objects, so tags or branches without release bodies now return a clear "not available" state instead of misleading fallback text.
Important findings from code analysis
- Identified
custom_components/bahmcloud_store/panel/panel.jsas the active Home Assistant panel script currently loaded by the integration. - Identified
custom_components/bahmcloud_store/panel/app.js,custom_components/bahmcloud_store/panel/index.html, andcustom_components/bahmcloud_store/panel/styles.cssas likely legacy or secondary assets that should not be treated as authoritative without verification. - Identified
custom_components/bahmcloud_store/store.pyas an older implementation with a different data model and API shape than the activeBCSCoreruntime. - Identified
custom_components/bahmcloud_store/custom_repo_view.pyas duplicate or legacy API code because the active custom-repo handling already exists inviews.py. - Noted that the README set is directionally useful but not fully authoritative where it conflicts with current code behavior.
- Noted that some repository files contain encoding or mojibake artifacts, so future edits should preserve valid UTF-8 and avoid spreading broken text.
Project rules written into the start prompt
- Never push, commit, tag, or create a release without explicit user approval.
- Always append a dated and detailed entry to
.idea/changes.mdfor every change made. - When a release is created, collect all relevant changes since the last release into
CHANGELOG.md.
Verification
- Reviewed repository structure and current git status.
- Read
README.md,README_DEVELOPER.md,README_FULL.md,bcs.yaml, and the currentCHANGELOG.md. - Analyzed the active backend files:
__init__.py,const.py,core.py,providers.py,metadata.py,storage.py,views.py,config_flow.py,update.py, andrepairs.py. - Checked panel and legacy-related files to distinguish the currently active UI path from older or duplicated files.
- Verified that the active panel (
panel/panel.js) now requests release notes from the new backend route and reloads them when the selected install version changes.