PRDCT-679: repoint 23 anchor links that land readers on the wrong section - #1112
Merged
Merged
Conversation
…tion Every one of these resolves to a real page, so nothing looks broken — the reader just arrives at the top of a 1,500-line reference instead of the section they clicked. 22 of the 23 are in pages ported from developers.keboola.com. Our tooling could not see them: audit-phase2 validates paths, not fragments, and a markdown-only check matches the link against a heading that Starlight renders under a different id. Four classes: - kramdown ids that never survived the Astro migration: #dataType vs the rendered data-type, #baseurl vs base-url, #merging-response vs merging-responses, #an-object-with-nested-object vs object-with-nested-object - seven links written as ](/#function-contexts) — root-relative, so they pointed at the site home rather than the Functions page's own section - links through redirect stubs, which drop the fragment: /management/limits/ 301s to /management/project/limits/, where the id is project-power--time-credits - headings renamed after the port: #configuration-sections, #modifying-a-configuration, #configuration, #submission, #backends One link had no counterpart anywhere. workspace/table-export.md pointed at /integrate/storage/api/importer/#download-a-file — a pre-move path and an anchor that exists on no page. Repointed to /storage/api/import-export/, which documents the download flow; no section invented. Found by diffing every internal anchor link against the ids in the built HTML. 23 before, 0 after. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Four links still pointed at ids that no page renders, all of them missed by the first pass because they are same-page fragments: * storage/api/configurations (3x) linked #modifying-a-configuration, while the page renders id="modifying-configuration" * generic-extractor/functions linked #api-default-parameter, while the page renders id="api-default-parameters" Verified against built dist/ ids rather than markdown, since the ported pages carry kramdown-era anchors. With this commit the anchor checker from #1073 reports BROKEN LINK ANCHORS: 0 on a full build, down from 27 before #1112. The 29 remaining broken internal links on this branch are the /overview/api/, /overview/encryption/ and /integrate/jobs/ targets that #1120 supplies, and are untouched here. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
keboola-pr-reviewer-bot
approved these changes
Sep 22, 2026
keboola-pr-reviewer-bot
left a comment
There was a problem hiding this comment.
Verdict: auto_approve (risk 1/5) · profile connection-docs
Anchor-only link repointing across 12 content pages, and every fixed anchor resolves against a real heading at HEAD.
Iamfle4ka
pushed a commit
that referenced
this pull request
Sep 22, 2026
/overview/apis/ and /extend/common-interface/encryption/ are removed together with their two images; main has /overview/api/ and /extend/encryption/ from #1132, approved 2026-09-21. Neither removed slug was ever published, so no redirect stubs are needed. The 11 links this branch still pointed at the old slugs are repointed (storage/api/index, management/jobs, flows/schedule-api, artifacts/tutorial, variables/api/tutorial, running-jobs-in-parallel, ai/index). Navigation loses the "Jobs API" child under Management > Jobs and the "Encryption" entry under Common Interface; sidebar.mjs is regenerated. What this branch still adds that main does not have: Artifacts (reference and tutorial, the pages that carried all seven CRITICAL review findings), /flows/schedule-api/ from the dev page /automate/set-schedule/, and /extend/development-project/. Verified on a full build: broken internal links 0, missing images 0. The anchor checker from #1073 reports the same 27 findings as main, none in a file this branch touches; all 27 are covered by #1112. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Iamfle4ka
enabled auto-merge
September 23, 2026 10:25
Iamfle4ka
pushed a commit
that referenced
this pull request
Sep 23, 2026
Main landed PR #1112 (PRDCT-679), which fixed the same dangling anchors this branch did, independently. Three files conflicted; main's side is taken in all three, and its version is the better one twice over: - functions/index.md — main writes the absolute path where this branch used a same-page fragment. Equivalent in the browser, more explicit. - incremental/index.md — main points at /management/project/limits/, the canonical page. This branch pointed at /management/limits/, which only works because a redirect stub catches it. Main's skips the hop. - table-export.md — this branch repointed "the standard file download flow" at /storage/files/#file-links, arguing the Storage API importer page is about uploading. Main instead kept the importer page and dropped the dangling fragment. That was flagged as an owner's call in the PR description and merging #1112 answered it, so main's stands. The defect — an anchor that resolves nowhere — is gone either way. Eleven of the thirteen anchor fixes turned out identical on both sides, which is reassuring about both. What remains here is only the work main does not have: the image-dimensions remark plugin and the fragment check in audit-phase2.mjs — which now validates main's anchor work too. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01PEKnDNvPqkNrBonYN6S61r
This branch was successfully deployed
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.
Linear: PRDCT-679 · first PR under the dev-ported Diátaxis rework epic.
The defect
23 internal links point at anchors that don't exist on the target page. Nothing looks broken — every link resolves to a real page — the reader just lands at the top of a 1,500-line reference instead of the section they clicked. 22 of the 23 are in pages ported from developers.keboola.com.
They were invisible to our tooling.
audit-phase2.mjsvalidates link paths, not fragments, and a markdown-only check can't catch them either: these pages carry kramdown-era ids while Starlight renders github-slugger ids. Found by diffing every internal anchor link against theid="…"attributes in the built HTML.Four classes
jobs/#dataType— the heading renders asdata-type#data-type,#base-url,#merging-responses,#object-with-nested-object](/#function-contexts)on the Functions page pointed at the site home…/functions/#function-contexts/management/limits/#project-power301s to/management/project/limits//management/project/limits/#project-power--time-credits#configuration-sections,#modifying-a-configuration,#configuration,#submission,#backendsThe one judgment call
workspace/table-export.mdpointed at/integrate/storage/api/importer/#download-a-file— a pre-move path and an anchor that exists on no page in the repo. The importer page only has#parametersand#examples. Repointed to/storage/api/import-export/, which actually documents the download flow, rather than inventing a section to link to.Verification
npm run buildclean](/path#frag)against the ids indist/)audit-phase2.mjs: MISSING IMAGES 0; broken-link and total counts unchanged frommain's baseline, as expected — this PR changes fragments, which that audit doesn't inspectAnchor-only changes: one line per link, no prose touched, no page moved.
Note for the queue: #1073 adds a permanent anchor validator. Until it merges this count can regress silently.
🤖 Generated with Claude Code