v0.255.0 — the globe on the sign-in-flow pages: styled, and inside the card
gates / gates (push) Successful in 23s
gates / gates (push) Successful in 23s
Two defects in v0.254.0's globe, both plain on a browser and neither catchable by anything that existed — every test read the MARKUP, and the fault was in which CSS file the browser fetched. The shells requested /static/style.css with NO ?v=, while layout.html has carried one since v0.166.0. A browser holding a copy from before v0.254.0 kept serving CSS with no .lang-globe rules, so the globe came out as a bare unstyled <details> — a stray triangle and two plain words at the edge of the window. It was FIVE shells, not the three named: both guest share pages have the same fault for any CSS change, and their visitor is the likeliest of all to be holding an old copy. And .Version was missing from three of those five data maps, which is exactly how the next one would be forgotten — it is now filled at the one choke point every shell renders through. The globe also floated outside the card, pinned to the corner of the VIEWPORT, reading as part of the browser rather than the page. It now sits inside the card, centred under the footer, with the menu opening upward via the shared rule — so the dashboard and the shells cannot drift. AND A THIRD, caught by a test that already existed: putting the version on the guest share pages would have printed the controller build onto a page a stranger with a capability URL can open. TestShareGuest_HeadersTilesNoAdminChrome refused it. Those two now take an opaque per-build tag — same cache-busting, no disclosure. The fill is ONE function shared with the parity harness, because a fixture rendered through a different data path is a picture of a page nobody serves, which the previous release got wrong twice. 15 shell fixtures re-captured; 91 identical, every dashboard page among them. MinAgent: 0.131.0 (unchanged). No hub release needed. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0159rPz1ZhFKsS53msqPYxtS
This commit is contained in:
@@ -1,3 +1,43 @@
|
||||
## v0.255.0 — The globe on the sign-in-flow pages: styled, and inside the card (2026-09-18, fixes v0.254.0)
|
||||
|
||||
**MinAgent: 0.131.0** (unchanged). **No hub release needed.** Nothing on the wire moved. One Hungarian
|
||||
block changes, on the pages outside the dashboard chrome only — **zero dashboard fixtures were
|
||||
re-captured**.
|
||||
|
||||
Two defects in v0.254.0's globe, both visible on a real browser and neither catchable by any test that
|
||||
existed:
|
||||
|
||||
**1. The stylesheet was requested with no cache-buster, so the globe rendered UNSTYLED.** `layout.html`
|
||||
has always used `/static/style.css?v={{.Version}}`; the shells did not. A browser that had the file
|
||||
cached from before v0.254.0 kept serving a copy with no `.lang-globe` rules in it, and the globe came
|
||||
out as a bare `<details>` — a stray triangle and two plain words, floating at the edge of the window.
|
||||
**It was not three shells but FIVE**: `login`, `claim`, `recovery`, **and both guest share pages**. The
|
||||
two share pages have no globe, but they have the same stale-stylesheet problem for any CSS change, and
|
||||
their visitor is the likeliest of all to be holding an old copy. All five fixed.
|
||||
|
||||
**And `.Version` was not in the data of three of them** — which is exactly how the next shell would
|
||||
have been missed. It is now set in `executeTemplateLang`, the single choke point every shell renders
|
||||
through, so a new shell cannot forget it.
|
||||
|
||||
**2. The globe floated outside the card.** `.shell-lang` was pinned to the corner of the VIEWPORT, so
|
||||
it read as part of the browser rather than part of the page. It now sits **inside the card, centred
|
||||
under the footer**, with the menu opening upward — which is the shared `.lang-globe-menu` rule, so the
|
||||
block adds no positioning of its own and the dashboard and the shells cannot drift apart.
|
||||
|
||||
**A third defect, found by an existing test while fixing the first two.** Putting `?v={{.Version}}`
|
||||
on the guest share pages would have printed the controller version onto a page **a stranger holding a
|
||||
capability URL can open** — `TestShareGuest_HeadersTilesNoAdminChrome` refuses exactly that, and
|
||||
refused it. Those two pages now take an **opaque per-build tag** (`AssetTag`, four bytes of a hash of
|
||||
the version): it busts a cache just as well and tells a visitor nothing about which build is running.
|
||||
The fill lives in one function, `addShellAssetData`, called by `executeTemplateLang` **and** by the
|
||||
parity harness — because a fixture rendered through a different data path is a picture of a page
|
||||
nobody serves, which this release's predecessor got wrong twice.
|
||||
|
||||
`TestGlobeOnAnonymousShells` gained both halves — the stylesheet carries a non-empty `?v=`, and the
|
||||
globe is inside the card and below the footer. Each was red-proofed by restoring the defect's exact
|
||||
shape. The test server gained a version, because an empty `?v=` busts a cache exactly once and never
|
||||
again, and baking that into a fixture would have hidden it.
|
||||
|
||||
## v0.254.0 — The saved notes follow the language, and the switch becomes a globe (2026-09-18, R-557 slice 2 release C — SLICE 2 CLOSED)
|
||||
|
||||
**MinAgent: 0.131.0** (unchanged). **No hub release needed.** Nothing on the wire moved.
|
||||
|
||||
Reference in New Issue
Block a user