Commit 18f09ec
committed
feat(gui): source brand marks for 23 providers that rendered a letter tile
The provider rail, details panel and dashboard rows fall back to a coloured
initial tile when providerIconSrc returns nothing, which was 38 of 83 registry
providers. This sources marks for 23 of them.
Eleven vendors publish a usable square SVG and are committed as fetched, with
only comments, <title>/<desc> and data-name stripped. Twelve publish no square
vector, so their favicon or app icon is traced -- potrace for a single-ink
silhouette, k-means colour layers for multi-colour art, the same technique that
produced hermes-agent.svg and gajae-code.svg.
The first tracing pass shipped a bug worth recording. A favicon is usually a
glyph on a filled rounded square, and tracing by luminance captured the square:
baseten came out 97.7% ink, bizrouter 89.3% -- black boxes, not marks. The fix
reads the border ring, takes its median colour as the plate when the ring is
uniform, and masks by distance from that colour rather than by darkness. It found
real plates behind baseten (#19e76e), cerebras (#ef5b27), hyperbolic (#1a1a1a),
umans and bizrouter (#000000), and orcarouter (#ffffff).
Two candidates were rejected rather than shipped. nousresearch.com publishes only
safari-pinned-tab.svg, whose first path is the full 512-unit frame -- the exact
file the Hermes client mark rejected for rendering as a black square. LiteLLM has
no mark of its own on its site; the SVGs there are third-party model logos. Both
keep their fallback tile with the attempt recorded.
Two guards. One fails a mark that passes an SVG parse but is a <text> glyph, an
embedded raster or a base64 payload -- none of which is visible in review and all
of which break in a 19px box. The other fails a horizontal wordmark by viewBox
ratio, which is what disqualified six vendor logos here and the MiniMax docs
asset in the previous unit.
Providers with no resolved mark: 38 -> 15 on this branch.
Measured after: 18 of the 23 fall under 2:1 against one of the two surfaces,
because ProviderIcon has no themed path at all. That is wp5, not a defect in
these assets.
Verification: 2 pass in the new file, each driven red (a text glyph, a 5.1:1
lockup). tsc 0 both roots, oxlint clean, privacy:scan clean, full GUI suite 1156
pass / 0 fail across 187 files. Every mark rendered at 19px in the real tile in
both themes with no load failures.1 parent a11038c commit 18f09ec
26 files changed
Lines changed: 1426 additions & 0 deletions
File tree
- gui
- public/provider-icons
- src
- tests
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
140 | 140 | | |
141 | 141 | | |
142 | 142 | | |
| 143 | + | |
| 144 | + | |
| 145 | + | |
| 146 | + | |
| 147 | + | |
| 148 | + | |
| 149 | + | |
| 150 | + | |
| 151 | + | |
| 152 | + | |
| 153 | + | |
| 154 | + | |
| 155 | + | |
| 156 | + | |
| 157 | + | |
| 158 | + | |
| 159 | + | |
| 160 | + | |
| 161 | + | |
| 162 | + | |
| 163 | + | |
| 164 | + | |
| 165 | + | |
| 166 | + | |
| 167 | + | |
| 168 | + | |
| 169 | + | |
| 170 | + | |
| 171 | + | |
| 172 | + | |
| 173 | + | |
| 174 | + | |
| 175 | + | |
| 176 | + | |
| 177 | + | |
| 178 | + | |
| 179 | + | |
| 180 | + | |
| 181 | + | |
| 182 | + | |
| 183 | + | |
| 184 | + | |
| 185 | + | |
| 186 | + | |
| 187 | + | |
| 188 | + | |
| 189 | + | |
| 190 | + | |
| 191 | + | |
| 192 | + | |
| 193 | + | |
| 194 | + | |
| 195 | + | |
| 196 | + | |
| 197 | + | |
| 198 | + | |
| 199 | + | |
| 200 | + | |
| 201 | + | |
| 202 | + | |
Loading
Loading
Loading
Loading
Loading
Loading
Loading
Loading
0 commit comments