Fix Edge brand-text weight, add copyable NixOS pin block, deploy-key fallback for pins job - #18
Merged
Conversation
The pins job's push to main can be blocked by the pull-request rule
(GH013). Let the job authenticate with a write-enabled deploy key when
the NIX_PINS_DEPLOY_KEY Actions secret is set ("Deploy keys" then goes
on the ruleset bypass list); when unset, checkout falls back to
GITHUB_TOKEN, which requires the workflow to be allowed through the
ruleset instead.
Add a standalone, copyable pin block to the plugin pins section of
docs/deployment-nixos.md so the current versions and hashes can be
copied with one click. The pins now appear twice (copy block + full
module example), so the update script replaces every occurrence of
each anchor instead of exactly one, keeping both blocks in sync.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MkN8eGu18MoULRF4XLb5Y4
The "helpwave id" brand text requested font-weight 900, but Space Grotesk's variable weight axis only spans 300-700 and the @font-face declares that range. Browsers diverge on out-of-range requests: Chromium on Windows (Edge) renders the 700 instance with synthetic bold smeared on top, and Safari can fall back to the default 400 instance, so the heavy brand text looked broken while all other weights rendered fine. Use font-bold (700) like hightide's own brand components do. Bump to 0.6.2 so the fix ships in a release. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01MkN8eGu18MoULRF4XLb5Y4
Deploying id-helpwave-de with
|
| Latest commit: |
afdd9c4
|
| Status: | ✅ Deploy successful! |
| Preview URL: | https://8115d902.id-helpwave-de.pages.dev |
| Branch Preview URL: | https://claude-labelled-checkbox-spa.id-helpwave-de.pages.dev |
Storybook's preview imported the hightide globals and index.css but not fonts.css, so stories rendered in system-fallback fonts instead of the self-hosted Inter and Space Grotesk that production loads via main.tsx. Import fonts.css in the same order as the production entry. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01MkN8eGu18MoULRF4XLb5Y4
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Follow-up to #17. Bumps the version to 0.6.2 so the font fix ships in a release.
1. "helpwave id" brand text broken on Edge — root cause found
The brand text requested
font-weight: 900, but Space Grotesk's variable font only has a weight axis of 300–700 (there is no 900), and the@font-facedeclaresfont-weight: 300 700accordingly. Browsers diverge on out-of-range requests: Chromium on Windows (Edge) renders the 700 instance and smears synthetic bold on top, and Safari can drop to the default 400 instance — so the heavy brand text looked broken/wrong while every other weight rendered fine. This is also why helpwave tasks never showed the issue: it declares the identical300 700range but never requests more thanfont-bold.Fix:
font-[900]→font-bold(700) inBranding.tsx, matching hightide's own brand components (HelpwaveBadge, thehelpwavemarkdown span).RealmBanner'sfont-extrabold(800) is unaffected — it inherits Inter, which genuinely spans 100–900.2. Storybook parity: load the self-hosted fonts
.storybook/preview.tsimported the hightide globals andindex.cssbut notfonts.css, so Storybook rendered all stories in system-fallback fonts while production (viamain.tsx) shows the self-hosted Inter/Space Grotesk.fonts.cssis now imported in the same order as the production entry. Verified viabuild-storybook: both variable-font files are emitted into the bundle and the built CSS carries the@font-facedeclarations.3. Copyable pin block in the NixOS docs
docs/deployment-nixos.md§2 now contains the complete pin set (themeVersion,spiVersion,releasehelper, and the four plugin bindings) as a standalone code fence — GitHub's per-block copy button grabs the whole thing in one click. The pins now appear twice (copy block + full module example), soupdate-nixos-plugin-pins.mjsreplaces every occurrence of each anchor instead of exactly one, keeping both blocks in sync (still failing loudly on zero matches). Verified: corrupting only one block heals both;--checkpasses against the real v0.6.1 release data.4. Deploy-key fallback for the pins job
The pins push to
mainoriginally failed with GH013. The job now supports two auth modes: if the Actions secretNIX_PINS_DEPLOY_KEYis set (write-enabled deploy key, with Deploy keys on the ruleset bypass list), checkout/push go over SSH; when unset,actions/checkoutfalls back toGITHUB_TOKEN— which works now that the re-run pushed successfully, so nothing needs configuring unless the token path breaks again.Testing
eslint .,tsc --noEmit— passbuild-storybook— succeeds;SpaceGrotesk-Variable-*.ttfandInter-Variable-*.ttfpresent instorybook-static/assets/,@font-facewithfont-weight: 300 700in the built CSS--checkfresh/stale, single-block corruption healing🤖 Generated with Claude Code