Fix broken link checker CI and the broken links it surfaced - #592
Merged
Merged
Conversation
patrickedqvist/wait-for-vercel-preview hardcodes actorName to
vercel[bot], but this repo's own vercel-preview.yml/vercel-production.yml
create GitHub Deployments as github-actions[bot], so the action always
timed out with "no vercel deployment found, exiting...". That action
also targets the deprecated node20 runtime.
Replace it with an inline actions/github-script (node24) step that
queries the Deployments API directly by commit sha + environment
("Preview (GitHub Actions)" for PRs, "Production" for pushes to main)
and reads the environment_url off a successful deployment status,
mirroring the equivalent step in authzed/web's test.yml. Also bump
actions/checkout@v3 (node16) to the node24 v6 pin already used
elsewhere in this repo.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Nextra's breadcrumb component links a top-level section's crumb (e.g. "SpiceDB") to its first child folder's bare route when the section has no index page of its own, rather than resolving to a real leaf page. Since spicedb/getting-started, authzed/guides, and materialize/getting-started also have no index page, every page in those sections rendered a breadcrumb crumb pointing at a 404. No content ever links to the bare paths directly, so redirect them in next.config.mjs instead of adding index pages. Also add --no-check-anchors to link-checker.yaml: Nextra doesn't render heading ids into server-rendered HTML, so the crawler flagged every #fragment link as a false-positive missing anchor. link-checker-full.yaml already carries this flag for the same reason. Document both quirks, plus the wait-for-vercel-preview fix from the prior commit, in a new CLAUDE.md "Known Quirks" section. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Contributor
|
Preview deployment status for this pull request.
|
alecmerdler
approved these changes
Sep 18, 2026
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 subscribe to this conversation on GitHub.
Already have an account?
Sign in.
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
no vercel deployment found, exiting....patrickedqvist/wait-for-vercel-previewhardcodesactorName: 'vercel[bot]', but this repo's ownvercel-preview.yml/vercel-production.ymlcreate GitHub Deployments asgithub-actions[bot](no native Vercel GitHub App integration), so it always timed out. Replaced with an inlineactions/github-scriptstep that queries the Deployments API directly by commit sha + environment, mirroring the equivalent step already inauthzed/web'stest.yml. Also bumpsactions/checkout@v3(node16, deprecated) to the node24v6pin already used elsewhere in this repo./spicedb/getting-started,/authzed/guides,/materialize/getting-started) and ~460 anchor-mismatch warnings. Root-caused both:nextra-theme-docs's breadcrumb component, which links a top-level section's crumb (e.g. "SpiceDB") to its first child folder's bare route when the section has no index page of its own, instead of resolving to a real leaf page. No content links to these bare paths directly, so fixed via redirects innext.config.mjsrather than content edits.ids into server-rendered HTML (added client-side after hydration), so the crawler flags every#fragmentlink as a false-positive missing anchor.link-checker-full.yamlalready carries--no-check-anchorsfor this reason; added it tolink-checker.yamltoo.CLAUDE.md"Known Quirks" section for future reference.Test plan
yamllint -c .yamllinton both workflow filespnpm run format:check(oxfmt)async functionto match howgithub-scriptexecutes it)environment_urlin both casespnpm build && pnpm start) and ran the exactfiliph/linkcheckDocker image the workflow uses against it — before: 3 errors / 461 warnings; after both fixes: 0 errors / 0 warnings, exit code 0308to the correct destination page🤖 Generated with Claude Code