- Cached artwork is served under a filename as well as under its id:
GET /art/{id}/{filename}answers the same bytes, chosen by the id, and catalog reads now mintart/<id>/cover.<ext>from the extension the store recorded. This is what a hardware player needs before it will fetch a cover at all, since it decides whether a URL is a picture by looking at the URL rather than by asking. An asset with no recorded extension keeps its bareart/<id>, and every existing URL still works. - A setting that says "leave empty to …" now shows what empty actually comes to. Three of them do: the public URL falls back to the address the station was deployed with (
SPA_BASE_URL, thenAPP_BASE_URL), the advertised hostname to the public URL's, and the station timezone to whatever the server is set to. Until now the console could only repeat the sentence, because the values are worked out server-side and nothing on the wire carried them, so an empty Public URL showedhttps://— a hint, not the address listeners are actually being sent to.GET /settingsgained aderivedmap besidevaluesandconfigured, and the console draws each entry twice: as the empty field's watermark, and as a line under it ("Using https://… while this is empty."), because a placeholder alone reads as an example of what to type and is not reliably announced to a screen reader. Every entry is what the station WOULD use with the box left empty rather than what is in force, so a field somebody has filled in still reports what clearing it would mean, and the line answers to what is typed rather than to what is stored. The advertised hostname'slocalhostfloor is carried through rather than hidden: that is genuinely what Icecast calls itself with nothing to go on, and it is the thing the live station's empty public URL was quietly doing. - The artwork the mount broadcasts is now only ever the station's own. A provider's cover URL is never put on the wire: a player will not fetch one, since it ends in an id rather than in a picture's name, and the field reaches every listener, so a Subsonic cover link would have handed the operator's own credentials to anybody who connected. A record whose cover the station has cached carries it, and anything else carries the station's logo.