Repository navigation
v475 — The Browser pane stops lying, the node card stops leaking, and the bump stays together
LatestThe Browser pane stops lying, the node card stops leaking, and the bump stays together
The Browser pane. Its "Browser not running — Press Launch above" panel is
.bs-empty { display: flex }, and an author display outranks the user agent's
[hidden] { display: none } — so once the pane had shown that panel it painted
over a live page for good. It has its own guard now and computes its
visibility from the pane's real state before _paintStatus returns early. The
pane also fills the screen properly on a phone (100dvh, safe-area padding,
chrome as a column, 62dvh sheet), the loader has a watchdog instead of spinning
forever, and there is a full-screen button: real requestFullscreen, a
bs-immersive fallback where that is refused, Escape peeling one layer at a
time, and closing the pane leaving full screen behind it.
The same trap, found twice. Auditing every hidden attribute against every
CSS rule that sets a display found the notification badge wearing an empty red
dot at zero notifications. tests/php/hidden.test.php keeps both from returning:
it joins the two sets (reading markup too, because .bs-empty is toggled as
empty.hidden far from the tag that made it, and bridging an id to the classes
on the same tag) and fails when an element the JS hides has no [hidden] guard.
The node card. It was never translucent. The floating floor (150vmax,
mix-blend-mode: screen) is a sibling of .topology-container, which isolates
the map, so it painted over the whole map subtree — the card included; its
background measured an opaque rgb(7,11,19) throughout. The floor now lives
inside the map's stacking context, above the canvas and below the card, and the
Desktop 2026 card states its solid background explicitly.
The bump stays together. tests/php/version.test.php reads VERSION and
APP_VERSION through the app's own Update::versionPairIn, then checks both
appVersion badges, both <html data-build="…"> attributes, every ui/ page
that carries a build number, and every ?v= under ui/** and both
index.html files — and fails if VERSION falls behind. Running it the first
time surfaced <html data-build="143"> in both pages: langs.js appends that
attribute to the Prism vendor scripts it injects, so every Prism file had been
fetched as ?v=143 through four releases. It reads 474 now and is the fourth
place RELEASING.md names.
VERSION 470 → 475. APP_VERSION 470 → 474 — no cache-buster bump in this one,
because every browser file it ships is already at 474. JS 42 files / 1,413
assertions, PHP 37 files / 37 passed (3 skipped), docs 14/14.
Updating: Config → Updates → DOWNLOAD UPDATE… — nothing installs itself.