Skip to content

v0.36.3 — What a fresh install showed

Choose a tag to compare

@donkanishka donkanishka released this 03 Sep 10:40
· 16 commits to main since this release
569b21b

Three faults found by working through every screen of a brand new site with no fonts on it. One is a
regression I shipped in 0.36.2, so anyone on that release has a library quietly showing the wrong preview.

Fixed

Opening Google Fonts changed the library's preview. 0.36.2 made that screen prefer Latin over Auto, which is
right for browsing two thousand mixed-script families. But it did it by writing Latin into shared state, and
nothing put it back — so the font library stopped using Auto for the rest of the session, and permanently as soon
as anything saved preferences.

That removes a signal the panel exists to give. A Latin pangram renders identically whether or not a family
actually carries the glyphs, so Auto — each family in its own script — is what makes a missing subset visible at
a glance. The preference is now computed per view rather than stored: Google Fonts shows Latin, the library shows
each family in its own script, and only a deliberate choice changes either.

A font already in the library could be converted and uploaded all over again. The guard that catches a
re-picked file compared it against the library by raw name, but the server stores names through
sanitize_file_name() — so Atlas Test Sans Regular.ttf sits on disk as Atlas-Test-Sans-Regular.woff2
and the comparison never matched. Picking it again spent a conversion and a whole upload before the server turned
it away, which on a re-picked folder is minutes rather than seconds. Both sides are normalised now, for the
same-file case and for the WOFF2 twin of a convertible one.

Same root cause as the missing-family bug fixed in 0.36.2: the panel trusting a name the server rewrites.

The Generated CSS preview showed a fallback the stylesheet does not contain. familyStack() always
appended , sans-serif and ignored the family's own fallback, while family_stack() on the server uses that
fallback and writes nothing when it is empty. The preview claimed a generic that was never written, and would
have shown sans-serif for a family whose stack was set to Georgia, serif. The two now agree, checked
against five records including metric-matched ones.

Third time the preview has drifted from the generator.

What the same pass confirmed working

On a fresh install, from an empty library: the WOFF2 converter (TTF 210,312 → 73,816 bytes, 65% smaller),
Google Fonts search, filters, pagination and the type tester, install with chosen weights and subsets, the
0.36.2 Reinstall guard opening on what is actually installed and confirming before dropping anything, duplicate
detection by file contents, enable, disable, trash, restore, the derived dirty flag, settings including inline
CSS, the export and import dry run, preload, and the typography tokens reaching the front end — body computes
to the installed family and only the preloaded cut is fetched.

Fifty checks passed; these three did not.