docs(brands): the icon is not in HACS, and the brands route is closed (#84) - #179
Merged
Merged
Conversation
Two claims in docs/brands-icon.md were wrong, and both were load-bearing.
"After a Home Assistant restart the icon appears on the integration page
and in HACS" -- it does not appear in HACS. Only Home Assistant's own UI
reads the in-repo brand/ folder via /api/brands/. The HACS store list
fetches brands.home-assistant.io/_/{domain}/icon.png, which for an
unknown domain answers 200 with a picture that reads "icon not
available". No failed request exists to find: the placeholder *is* the
successful response, which is what made this look like a regression.
Measured live (core-2026.8.3, HACS 2.0.5): the proxy endpoint returns
20232 and 61849 bytes, matching the committed files exactly, while the
CDN returns the 3039-byte placeholder that every brands-less custom
integration gets.
"That path still works, but it is no longer the one we take" -- the
brands repository will not take us at all. Its PR template opens with
"Pull requests for adding new custom components will no longer be
accepted", its Type-of-change list has no option that fits, and 15 PRs
of this exact shape were closed unmerged in the five days to 2026-08-25.
The last merged addition under custom_integrations/ was 2026-04-20.
So the brand/ folder is not a shortcut chosen over a review round; it is
the only route that exists. The HACS gap is a known upstream limitation
(hacs/frontend#936, hacs/integration #5171 #5179 #5223 #5402) with a fix
in flight in hacs/integration#5388, unmerged.
Closes #84
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
The maintainer noticed the MeteoSwiss Radar row in the HACS store list showing an "icon not available" box, having seen the icon working earlier the same day. Investigating it turned up two wrong statements in
docs/brands-icon.md, both of which had shaped decisions on #84 and #85.Wrong claim 1: "the icon appears on the integration page and in HACS"
It does not appear in HACS. Two surfaces, two sources:
/api/brands/integration/{domain}/icon.pngon the running instancebrands.home-assistant.io/_/{domain}/icon.png— the CDNMeasured on the live instance (core-2026.8.3, HACS 2.0.5):
20232 and 61849 match the committed files byte for byte, so the integration side is healthy — the HACS v0.12.0 update did not remove the
brand/folder, which was the first hypothesis.The reason this is easy to misdiagnose: the CDN does not 404 on that path. It returns 200 with a picture that reads "icon not available" — byte-identical (sha
37fb00d3…) to whatvoice_satellite_llm_tools, another brands-less integration in the same list, receives. There is no failed request in devtools. The placeholder is the successful response.Known upstream, open since March 2026:
hacs/frontend#936(closed, root-caused tohacs-dashboard.tscallingbrandsUrl({useFallback: true})), plushacs/integration#5171, #5179, #5223, #5402. Fix in flight:hacs/integration#5388, unmerged, and the newest HACS release is 2.0.5 from January 2025.Wrong claim 2: "That path still works, but it is no longer the one we take"
home-assistant/brandswill not accept us at all:custom_integrations/was #10172 on 2026-04-20; everything since has been a removal or a move.I had a branch prepared in a fork with both icons under
custom_integrations/meteoswiss_radar/, diffing clean against upstream. It was not opened, and the branch is deleted — submitting it would only have joined that rejection queue.So the
brand/folder is not a shortcut chosen over a review round. It is the only route that exists.What this does not change
Nothing in the code. The icons are correct (256×256 and 512×512, PNG, 1:1) and render everywhere Home Assistant itself draws them. The HACS store page will show a placeholder until #5388 ships, and no action available to us changes that — which is worth knowing now, since #10323 will make that page the discovery surface for new users.
How verified
python -m pytest -q→ 158 passed. Documentation-only change otherwise; every number above was measured, not inferred.🤖 Generated with Claude Code