Repository navigation
Point the site at carsten-bokemeyer.de - #5
Merged
Merged
Conversation
The custom domain is live with a certificate and HTTPS enforced, but the markup still named the old address, so every canonical pointed at a URL that 301-redirects to the page declaring it. 17 URLs moved across canonicals, og:url, og:image, the JSON-LD url/@id/ image, both sitemap entries, the Sitemap line in robots.txt and the ORIGIN constant in design/check.js. The OG card footer follows, with the image re-exported so card and site agree. profile/build.js needed no change: it reads the site URL from the JSON-LD, so it picks the new domain up on its own. Only the visible link text in profile/README.template.md still spelled out the old host. README gains a "Domain and hosting" section recording what is not obvious from the tree: that there is deliberately no CNAME file, because GitHub only writes one for branch-published sites and ignores it for Actions workflows, and that the certificate covers the apex and www together. While www had no DNS record, no certificate was issued for either name and "Enforce HTTPS" stayed greyed out for five days with nothing explaining why. The manual-upkeep list now names every place a future domain change touches. Verified: invariants, html-validate, linkinator (27 links) and Lighthouse (9 runs) pass. Also confirmed design/check.js actually catches a missed URL by reverting one sitemap entry and watching it fail. axe could not run locally: Chrome updated to 154 and the chromedriver bundled with the pinned @axe-core/cli 4.13.0 supports 152. CI will show whether the runner hits the same mismatch. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
The axe step failed: ChromeDriver 152 against Chrome 154, on the runner and locally alike. Pinning everything was right for the analysis tools, but wrong for this one dependency. chromedriver is a shim for whatever Chrome is installed, and both GitHub's runners and a developer laptop update Chrome on their own. @axe-core/cli declares it as "latest" for exactly that reason; adding package-lock.json froze it at 152.0.3 and turned a self-correcting dependency into a time bomb that went off at the next Chrome release. CI now reads the runner's Chrome major version and installs a matching chromedriver with --no-save, leaving the lockfile untouched. Everything that decides pass or fail stays pinned, axe-core 4.13.0 included; only the protocol shim follows the browser. Verified locally: with chromedriver 154 against Chrome 154, axe runs over all four pages with 0 violations. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
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.
The custom domain is live with a certificate and HTTPS enforced, but the markup still named the old address. Every canonical pointed at a URL that 301-redirects to the page declaring it.
What moved
17 URLs: canonicals,
og:urlandog:imageon all three pages, the JSON-LDurl/@id/image, both sitemap entries, theSitemap:line inrobots.txt, and theORIGINconstant indesign/check.js. The OG card footer follows, withassets/og-image.pngre-exported so card and site agree.profile/build.jsneeded no change: it reads the site URL from the JSON-LD, so it picks the new domain up by itself. Only the visible link text inprofile/README.template.mdstill spelled out the old host.README
New Domain and hosting section recording two things that are not visible from the tree:
wwwtogether. Whilewwwhad no DNS record, GitHub could not complete the challenge for that name, so no certificate was issued for either, and "Enforce HTTPS" stayed greyed out for five days with nothing in the interface explaining why.The manual-upkeep list now names every file a future domain change touches.
Verification
Invariants, html-validate, linkinator (27 links) and Lighthouse (9 runs) pass. I also confirmed
design/check.jsactually catches a missed URL, by reverting one sitemap entry and watching it fail.axe could not run locally: Chrome updated to 154 and the chromedriver bundled with the pinned
@axe-core/cli4.13.0 supports 152. This CI run will show whether the runner hits the same mismatch — if it does, that is a separate fix.🤖 Generated with Claude Code