Widgets
- new — every service signs in the way it actually wants. Four presets take their key in the query string and offer no header form — SABnzbd, Tautulli, Pi-hole v5 and Plex — and one, qBittorrent, has no key at all: it hands out a session cookie that expires. All of them showed no sign-in block, so the key box vanished and the reader was left editing the address by hand. They ask for the key in the same box as everyone else now. The value goes to the credential file like any other, the address keeps a placeholder, and the server fills it in per request. qBittorrent asks for the username and password instead, signs in for the cookie, and signs in again when it lapses — a refusal is what says the session has gone, which is correct where a timer would only be a guess. The cookie is held in memory and never persisted.
- new — a stored key can be looked at. A key typed into a widget went into the credential file and never came back, so an
Authorizationheader missing itsBearerprefix looked exactly like a correct one and the service answered 401 either way. There is an eye beside the box.GET /api/health/credentials/revealis narrow on purpose: onlywidget:ids, one named field per request, behind the write token, and every reveal logged by id and field rather than by value. The presets seed the scheme too —Bearer,TokenorPVEAPIToken=, whichever that service takes — and saving a box holding only the scheme is refused. - new — a path can name a list entry the way the service names it. Home Assistant answers
/api/stateswith every entity in one array, so naming one by position meant[150]— an index that moves the moment a device is added. A path can saysensor.temperatuur_benedennow and find that entry wherever it sits, then carry on into it for an attribute. The explicit form,[entity_id=…], does the same and stays for a list keyed by something unusual. - new — a
Foundcolumn beside each path. The trial always knew what every figure read, but it said so in a block below the address, the sign-in and often the fold. The answer sits in the row now; a path that matched nothing says so where it is being typed. - new — the answer can be searched. A service answering with hundreds of entries is not something to scroll. Typing part of a key shows the lines that mention it with two lines of context either side, and nothing is asked again — it filters what already came back. The shown body grew from 16 KB to 256 KB, because searching what was cut off finds nothing.
- new — four more formats.
Speedreads a line rate in bits and thousands, the units a connection is sold in:1.046 Gbpsrather than124.703 MB, and it scales down to94.000 Mbpson its own.Powerscales watts through kW and MW and keeps the sign, so a P1 meter exporting reads-1.03 kW.Temperaturecarries°Cor°Ffrom the weather setting and does not convert — the sensor already reported in its own system's unit.Data sizeasks which unit the service counted in, becauseSizereads bytes and SABnzbd reports megabytes. - new — decimals per figure. Auto, or 0 to 3. It applies to any figure carrying a number, text included, and the value is brought to the scale its unit names before the places are counted.
- fix — trying an address uses the key on screen. The payload carried only a
credentialId, a reference to what is stored, so a widget being set up for the first time tested itself anonymously and got a 401 — indistinguishable from a wrong key, which is the one conclusion the panel exists to rule out. The typed sign-in travels with the request now, in whichever form the service takes, and is written nowhere. - fix — a refused trial says which refusal it was. Every failure read "check your write token", including the rate limit reached after a few minutes of filling in a widget. The status decides now: 429 says to wait, 401 and 403 keep the token wording, 400 points at the address, 5xx at the log.
- fix — the figures table lines up. The header and the rows are separate grids given the same track list, and an
autotrack measured an empty span in one and a Delete button in the other — so every heading sat above the wrong control. - fix — a preset says which part of its address to fill in. Home Assistant names an entity and Proxmox a node, and neither has a default; left as
YOUR_SENSORthe service answers 404 and the note talked only about the token.
Health and inbox
- fix — opening the health view shows the top of it. The active filter pill was brought back into view with
scrollIntoViewon every render, and that moves every scrollable ancestor including the page — so the header scrolled away to bring a pill nearer the middle of a row that was usually not overflowing. - fix — the inbox toolbar takes the health view's two-row shape. Pills on a full-width row, search and the selects beneath. The two views are read one after the other, and the inbox's search box used to move every time a pill appeared or went.