Skip to content

fix(docs): add version prefix to 'Edit this page on GitHub' links - #2120

Closed
gldkhoward wants to merge 1 commit into
vercel:mainfrom
gldkhoward:fix/docs-edit-link-404
Closed

fix(docs): add version prefix to 'Edit this page on GitHub' links#2120
gldkhoward wants to merge 1 commit into
vercel:mainfrom
gldkhoward:fix/docs-edit-link-404

Conversation

@gldkhoward

Copy link
Copy Markdown

Summary

  • All "Edit this page on GitHub" links produce 404s — regression from docs: split v4/v5 content trees and fix version switcher end-to-end #1948 (v4/v5 content split)
  • EditSource was not updated to include the v4/ or v5/ directory prefix in the GitHub URL
  • Adds a version prop to EditSource, passed from each page route matching the existing server-side v4/v5 routing pattern

Fixes#2119

Test plan

  • v4 docs/cookbook pages link to docs/content/docs/v4/...
  • v5 docs/cookbook pages link to docs/content/docs/v5/...
  • Confirmed links resolve to valid files on GitHub
  • Verified locally with pnpm dev

🤖 Generated with Claude Code

@gldkhoward
gldkhoward requested a review from a team as a code ownerMay 27, 2026 08:19
@changeset-bot

changeset-botBot commented May 27, 2026

Copy link
Copy Markdown

⚠️ No Changeset found

Latest commit: 372a68e

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@vercel

vercelBot commented May 27, 2026

Copy link
Copy Markdown
Contributor

@gldkhoward is attempting to deploy a commit to the Vercel Labs Team on Vercel.

A member of the Team first needs to authorize it.

Fixesvercel#2119
Signed-off-by: Luke Howard <dev@lukehoward.com.au>
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Signed-off-by: Luke Howard <dev@lukehoward.com.au>
@pranaygp

Copy link
Copy Markdown
Contributor

Thanks for the fix @gldkhoward! This has been incorporated into #2391 with co-authorship (rebased onto v5 route changes that landed on that branch, since both PRs touch the same files). #2391 also fixes the docs link checker and a batch of related broken-link issues. This PR can be closed once #2391 merges.

pranaygp added a commit that referenced this pull request Jun 12, 2026
…ect v5 Card + edit links (#2391)
* fix(docs): repair broken links and make the docs link linter actually validate
The docs link linter (docs/scripts/lint.ts) had been silently passing
everything since the app moved under app/[lang]/ (#552): the
next-validate-link populate key 'docs/[[...slug]]' no longer matched the
real route, and the unpopulated [lang] homepage route produced a fallback
regex (^\/(.+)$) that matched every href. It also only scanned v4 content.
- Rewrite lint.ts to build explicit v4/v5 URL spaces from both fumadocs
sources (including cookbook URL variants, app routes, worlds pages,
public/ assets, and next.config.ts redirects) and validate each version's
content against version-correct render semantics. Also validate
frontmatter related/prerequisites references (version-relative) and
heading fragments.
- Rewrite Card hrefs on v5 pages: the v5 routes rewrote inline markdown
links from /docs/... to /v5/docs/... but Card renders its own Link, so
Card hrefs escaped to the v4 routes and 404'd for v5-only pages (e.g.
/v5/docs/observability linking to /docs/observability/attributes).
- Fix all dead content links surfaced by the working linter (56 across
v4+v5): nonexistent use-workflow/use-step/start API pages now point at
foundations/workflows-and-steps and workflow-api/start, getStepMetadata
path corrected, /docs/worlds/local → /worlds/local, dead changelog/
internal references removed or unlinked, retired common-patterns links
point at the cookbook, and a dead #returnvalue anchor now targets
#returns.
- Add an index page for api-reference/workflow-errors (both versions),
which was linked from the API reference landing page but had no page.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
* fix(docs): add version prefix to 'Edit this page on GitHub' links
All "Edit this page on GitHub" links 404'd since the v4/v5 content split
(#1948): page.path is relative to the per-version content dir, but
EditSource built URLs against docs/content/docs/ without the v4/ or v5/
segment. Add a required version prop, passed from each page route.
Incorporates #2120 by Luke Howard (@gldkhoward), rebased onto the v5
route changes from this branch. Fixes#2119.
Co-authored-by: Luke Howard <dev@lukehoward.com.au>
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
---------
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
@VaguelySerious

Copy link
Copy Markdown
Member

Closing since #2391 merged

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Docs: 'Edit this page on GitHub' links are 404 — missing version prefix

3 participants

@gldkhoward@pranaygp@VaguelySerious
, 'i'); if (__m === '*' || __re.test(location.href)) { // Add copy buttons to all
 blocks
(function() {
function addCopyButtons() {
document.querySelectorAll('pre code').forEach(function(codeBlock) {
if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;
codeBlock.parentElement.setAttribute('data-copy-added', 'true');
var btn = document.createElement('button');
btn.textContent = 'Copy';
btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';
btn.onmouseover = function() { this.style.opacity = '1'; };
btn.onmouseout = function() { this.style.opacity = '0.7'; };
btn.onclick = function() {
navigator.clipboard.writeText(codeBlock.textContent).then(function() {
btn.textContent = 'Copied!';
setTimeout(function() { btn.textContent = 'Copy'; }, 1500);
});
};
codeBlock.parentElement.style.position = 'relative';
codeBlock.parentElement.appendChild(btn);
});
}
addCopyButtons();
// Re-run on dynamic content
var observer = new MutationObserver(addCopyButtons);
observer.observe(document.body, { childList: true, subtree: true });
})();
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
fix(docs): add version prefix to 'Edit this page on GitHub' links by gldkhoward · Pull Request #2120 · vercel/workflow · GitHub
Skip to content

fix(docs): add version prefix to 'Edit this page on GitHub' links - #2120

Closed
gldkhoward wants to merge 1 commit into
vercel:mainfrom
gldkhoward:fix/docs-edit-link-404
Closed

fix(docs): add version prefix to 'Edit this page on GitHub' links#2120
gldkhoward wants to merge 1 commit into
vercel:mainfrom
gldkhoward:fix/docs-edit-link-404

Conversation

@gldkhoward

Copy link
Copy Markdown

Summary

  • All "Edit this page on GitHub" links produce 404s — regression from docs: split v4/v5 content trees and fix version switcher end-to-end #1948 (v4/v5 content split)
  • EditSource was not updated to include the v4/ or v5/ directory prefix in the GitHub URL
  • Adds a version prop to EditSource, passed from each page route matching the existing server-side v4/v5 routing pattern

Fixes#2119

Test plan

  • v4 docs/cookbook pages link to docs/content/docs/v4/...
  • v5 docs/cookbook pages link to docs/content/docs/v5/...
  • Confirmed links resolve to valid files on GitHub
  • Verified locally with pnpm dev

🤖 Generated with Claude Code

@gldkhoward
gldkhoward requested a review from a team as a code ownerMay 27, 2026 08:19
@changeset-bot

changeset-botBot commented May 27, 2026

Copy link
Copy Markdown

⚠️ No Changeset found

Latest commit: 372a68e

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@vercel

vercelBot commented May 27, 2026

Copy link
Copy Markdown
Contributor

@gldkhoward is attempting to deploy a commit to the Vercel Labs Team on Vercel.

A member of the Team first needs to authorize it.

Fixesvercel#2119
Signed-off-by: Luke Howard <dev@lukehoward.com.au>
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Signed-off-by: Luke Howard <dev@lukehoward.com.au>
@pranaygp

Copy link
Copy Markdown
Contributor

Thanks for the fix @gldkhoward! This has been incorporated into #2391 with co-authorship (rebased onto v5 route changes that landed on that branch, since both PRs touch the same files). #2391 also fixes the docs link checker and a batch of related broken-link issues. This PR can be closed once #2391 merges.

pranaygp added a commit that referenced this pull request Jun 12, 2026
…ect v5 Card + edit links (#2391)
* fix(docs): repair broken links and make the docs link linter actually validate
The docs link linter (docs/scripts/lint.ts) had been silently passing
everything since the app moved under app/[lang]/ (#552): the
next-validate-link populate key 'docs/[[...slug]]' no longer matched the
real route, and the unpopulated [lang] homepage route produced a fallback
regex (^\/(.+)$) that matched every href. It also only scanned v4 content.
- Rewrite lint.ts to build explicit v4/v5 URL spaces from both fumadocs
sources (including cookbook URL variants, app routes, worlds pages,
public/ assets, and next.config.ts redirects) and validate each version's
content against version-correct render semantics. Also validate
frontmatter related/prerequisites references (version-relative) and
heading fragments.
- Rewrite Card hrefs on v5 pages: the v5 routes rewrote inline markdown
links from /docs/... to /v5/docs/... but Card renders its own Link, so
Card hrefs escaped to the v4 routes and 404'd for v5-only pages (e.g.
/v5/docs/observability linking to /docs/observability/attributes).
- Fix all dead content links surfaced by the working linter (56 across
v4+v5): nonexistent use-workflow/use-step/start API pages now point at
foundations/workflows-and-steps and workflow-api/start, getStepMetadata
path corrected, /docs/worlds/local → /worlds/local, dead changelog/
internal references removed or unlinked, retired common-patterns links
point at the cookbook, and a dead #returnvalue anchor now targets
#returns.
- Add an index page for api-reference/workflow-errors (both versions),
which was linked from the API reference landing page but had no page.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
* fix(docs): add version prefix to 'Edit this page on GitHub' links
All "Edit this page on GitHub" links 404'd since the v4/v5 content split
(#1948): page.path is relative to the per-version content dir, but
EditSource built URLs against docs/content/docs/ without the v4/ or v5/
segment. Add a required version prop, passed from each page route.
Incorporates #2120 by Luke Howard (@gldkhoward), rebased onto the v5
route changes from this branch. Fixes#2119.
Co-authored-by: Luke Howard <dev@lukehoward.com.au>
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
---------
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
@VaguelySerious

Copy link
Copy Markdown
Member

Closing since #2391 merged

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Docs: 'Edit this page on GitHub' links are 404 — missing version prefix

3 participants

@gldkhoward@pranaygp@VaguelySerious
, 'i'); if (__m === '*' || __re.test(location.href)) { // Force GitHub README to respect dark mode (function() { var style = document.createElement('style'); style.textContent = ' .markdown-body { color-scheme: dark light; } .markdown-body pre { background: #161b22 !important; } .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; } .markdown-body table th, .markdown-body table td { border-color: #30363d !important; } .markdown-body img { background: #0d1117; } .markdown-body blockquote { border-left-color: #8b949e; } .markdown-body hr { border-color: #30363d; } '; document.head.appendChild(style); })(); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' fix(docs): add version prefix to 'Edit this page on GitHub' links by gldkhoward · Pull Request #2120 · vercel/workflow · GitHub
Skip to content

fix(docs): add version prefix to 'Edit this page on GitHub' links - #2120

Closed
gldkhoward wants to merge 1 commit into
vercel:mainfrom
gldkhoward:fix/docs-edit-link-404
Closed

fix(docs): add version prefix to 'Edit this page on GitHub' links#2120
gldkhoward wants to merge 1 commit into
vercel:mainfrom
gldkhoward:fix/docs-edit-link-404

Conversation

@gldkhoward

Copy link
Copy Markdown

Summary

  • All "Edit this page on GitHub" links produce 404s — regression from docs: split v4/v5 content trees and fix version switcher end-to-end #1948 (v4/v5 content split)
  • EditSource was not updated to include the v4/ or v5/ directory prefix in the GitHub URL
  • Adds a version prop to EditSource, passed from each page route matching the existing server-side v4/v5 routing pattern

Fixes#2119

Test plan

  • v4 docs/cookbook pages link to docs/content/docs/v4/...
  • v5 docs/cookbook pages link to docs/content/docs/v5/...
  • Confirmed links resolve to valid files on GitHub
  • Verified locally with pnpm dev

🤖 Generated with Claude Code

@gldkhoward
gldkhoward requested a review from a team as a code ownerMay 27, 2026 08:19
@changeset-bot

changeset-botBot commented May 27, 2026

Copy link
Copy Markdown

⚠️ No Changeset found

Latest commit: 372a68e

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@vercel

vercelBot commented May 27, 2026

Copy link
Copy Markdown
Contributor

@gldkhoward is attempting to deploy a commit to the Vercel Labs Team on Vercel.

A member of the Team first needs to authorize it.

Fixesvercel#2119
Signed-off-by: Luke Howard <dev@lukehoward.com.au>
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Signed-off-by: Luke Howard <dev@lukehoward.com.au>
@pranaygp

Copy link
Copy Markdown
Contributor

Thanks for the fix @gldkhoward! This has been incorporated into #2391 with co-authorship (rebased onto v5 route changes that landed on that branch, since both PRs touch the same files). #2391 also fixes the docs link checker and a batch of related broken-link issues. This PR can be closed once #2391 merges.

pranaygp added a commit that referenced this pull request Jun 12, 2026
…ect v5 Card + edit links (#2391)
* fix(docs): repair broken links and make the docs link linter actually validate
The docs link linter (docs/scripts/lint.ts) had been silently passing
everything since the app moved under app/[lang]/ (#552): the
next-validate-link populate key 'docs/[[...slug]]' no longer matched the
real route, and the unpopulated [lang] homepage route produced a fallback
regex (^\/(.+)$) that matched every href. It also only scanned v4 content.
- Rewrite lint.ts to build explicit v4/v5 URL spaces from both fumadocs
sources (including cookbook URL variants, app routes, worlds pages,
public/ assets, and next.config.ts redirects) and validate each version's
content against version-correct render semantics. Also validate
frontmatter related/prerequisites references (version-relative) and
heading fragments.
- Rewrite Card hrefs on v5 pages: the v5 routes rewrote inline markdown
links from /docs/... to /v5/docs/... but Card renders its own Link, so
Card hrefs escaped to the v4 routes and 404'd for v5-only pages (e.g.
/v5/docs/observability linking to /docs/observability/attributes).
- Fix all dead content links surfaced by the working linter (56 across
v4+v5): nonexistent use-workflow/use-step/start API pages now point at
foundations/workflows-and-steps and workflow-api/start, getStepMetadata
path corrected, /docs/worlds/local → /worlds/local, dead changelog/
internal references removed or unlinked, retired common-patterns links
point at the cookbook, and a dead #returnvalue anchor now targets
#returns.
- Add an index page for api-reference/workflow-errors (both versions),
which was linked from the API reference landing page but had no page.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
* fix(docs): add version prefix to 'Edit this page on GitHub' links
All "Edit this page on GitHub" links 404'd since the v4/v5 content split
(#1948): page.path is relative to the per-version content dir, but
EditSource built URLs against docs/content/docs/ without the v4/ or v5/
segment. Add a required version prop, passed from each page route.
Incorporates #2120 by Luke Howard (@gldkhoward), rebased onto the v5
route changes from this branch. Fixes#2119.
Co-authored-by: Luke Howard <dev@lukehoward.com.au>
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
---------
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
@VaguelySerious

Copy link
Copy Markdown
Member

Closing since #2391 merged

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Docs: 'Edit this page on GitHub' links are 404 — missing version prefix

3 participants

@gldkhoward@pranaygp@VaguelySerious
, 'i'); if (__m === '*' || __re.test(location.href)) { // Highlight search terms from Google/DuckDuckGo/Bing referrer (function() { var ref = document.referrer; var terms = []; if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) { var url = new URL(ref); var q = url.searchParams.get('q') || url.searchParams.get('p'); if (q) { terms = q.split(/\s+/).filter(function(t) { return t.length > 2; }); } } if (terms.length === 0) return; var style = document.createElement('style'); style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }'; document.head.appendChild(style); function highlight(node) { if (node.nodeType === 3) { // text node var text = node.textContent; var found = false; terms.forEach(function(term) { var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\]\\]/g, '\\') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' fix(docs): add version prefix to 'Edit this page on GitHub' links by gldkhoward · Pull Request #2120 · vercel/workflow · GitHub
Skip to content

fix(docs): add version prefix to 'Edit this page on GitHub' links - #2120

Closed
gldkhoward wants to merge 1 commit into
vercel:mainfrom
gldkhoward:fix/docs-edit-link-404
Closed

fix(docs): add version prefix to 'Edit this page on GitHub' links#2120
gldkhoward wants to merge 1 commit into
vercel:mainfrom
gldkhoward:fix/docs-edit-link-404

Conversation

@gldkhoward

Copy link
Copy Markdown

Summary

  • All "Edit this page on GitHub" links produce 404s — regression from docs: split v4/v5 content trees and fix version switcher end-to-end #1948 (v4/v5 content split)
  • EditSource was not updated to include the v4/ or v5/ directory prefix in the GitHub URL
  • Adds a version prop to EditSource, passed from each page route matching the existing server-side v4/v5 routing pattern

Fixes#2119

Test plan

  • v4 docs/cookbook pages link to docs/content/docs/v4/...
  • v5 docs/cookbook pages link to docs/content/docs/v5/...
  • Confirmed links resolve to valid files on GitHub
  • Verified locally with pnpm dev

🤖 Generated with Claude Code

@gldkhoward
gldkhoward requested a review from a team as a code ownerMay 27, 2026 08:19
@changeset-bot

changeset-botBot commented May 27, 2026

Copy link
Copy Markdown

⚠️ No Changeset found

Latest commit: 372a68e

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@vercel

vercelBot commented May 27, 2026

Copy link
Copy Markdown
Contributor

@gldkhoward is attempting to deploy a commit to the Vercel Labs Team on Vercel.

A member of the Team first needs to authorize it.

Fixesvercel#2119
Signed-off-by: Luke Howard <dev@lukehoward.com.au>
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Signed-off-by: Luke Howard <dev@lukehoward.com.au>
@pranaygp

Copy link
Copy Markdown
Contributor

Thanks for the fix @gldkhoward! This has been incorporated into #2391 with co-authorship (rebased onto v5 route changes that landed on that branch, since both PRs touch the same files). #2391 also fixes the docs link checker and a batch of related broken-link issues. This PR can be closed once #2391 merges.

pranaygp added a commit that referenced this pull request Jun 12, 2026
…ect v5 Card + edit links (#2391)
* fix(docs): repair broken links and make the docs link linter actually validate
The docs link linter (docs/scripts/lint.ts) had been silently passing
everything since the app moved under app/[lang]/ (#552): the
next-validate-link populate key 'docs/[[...slug]]' no longer matched the
real route, and the unpopulated [lang] homepage route produced a fallback
regex (^\/(.+)$) that matched every href. It also only scanned v4 content.
- Rewrite lint.ts to build explicit v4/v5 URL spaces from both fumadocs
sources (including cookbook URL variants, app routes, worlds pages,
public/ assets, and next.config.ts redirects) and validate each version's
content against version-correct render semantics. Also validate
frontmatter related/prerequisites references (version-relative) and
heading fragments.
- Rewrite Card hrefs on v5 pages: the v5 routes rewrote inline markdown
links from /docs/... to /v5/docs/... but Card renders its own Link, so
Card hrefs escaped to the v4 routes and 404'd for v5-only pages (e.g.
/v5/docs/observability linking to /docs/observability/attributes).
- Fix all dead content links surfaced by the working linter (56 across
v4+v5): nonexistent use-workflow/use-step/start API pages now point at
foundations/workflows-and-steps and workflow-api/start, getStepMetadata
path corrected, /docs/worlds/local → /worlds/local, dead changelog/
internal references removed or unlinked, retired common-patterns links
point at the cookbook, and a dead #returnvalue anchor now targets
#returns.
- Add an index page for api-reference/workflow-errors (both versions),
which was linked from the API reference landing page but had no page.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
* fix(docs): add version prefix to 'Edit this page on GitHub' links
All "Edit this page on GitHub" links 404'd since the v4/v5 content split
(#1948): page.path is relative to the per-version content dir, but
EditSource built URLs against docs/content/docs/ without the v4/ or v5/
segment. Add a required version prop, passed from each page route.
Incorporates #2120 by Luke Howard (@gldkhoward), rebased onto the v5
route changes from this branch. Fixes#2119.
Co-authored-by: Luke Howard <dev@lukehoward.com.au>
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
---------
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
@VaguelySerious

Copy link
Copy Markdown
Member

Closing since #2391 merged

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Docs: 'Edit this page on GitHub' links are 404 — missing version prefix

3 participants

@gldkhoward@pranaygp@VaguelySerious
, 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + ' fix(docs): add version prefix to 'Edit this page on GitHub' links by gldkhoward · Pull Request #2120 · vercel/workflow · GitHub
Skip to content

fix(docs): add version prefix to 'Edit this page on GitHub' links - #2120

Closed
gldkhoward wants to merge 1 commit into
vercel:mainfrom
gldkhoward:fix/docs-edit-link-404
Closed

fix(docs): add version prefix to 'Edit this page on GitHub' links#2120
gldkhoward wants to merge 1 commit into
vercel:mainfrom
gldkhoward:fix/docs-edit-link-404

Conversation

@gldkhoward

Copy link
Copy Markdown

Summary

  • All "Edit this page on GitHub" links produce 404s — regression from docs: split v4/v5 content trees and fix version switcher end-to-end #1948 (v4/v5 content split)
  • EditSource was not updated to include the v4/ or v5/ directory prefix in the GitHub URL
  • Adds a version prop to EditSource, passed from each page route matching the existing server-side v4/v5 routing pattern

Fixes#2119

Test plan

  • v4 docs/cookbook pages link to docs/content/docs/v4/...
  • v5 docs/cookbook pages link to docs/content/docs/v5/...
  • Confirmed links resolve to valid files on GitHub
  • Verified locally with pnpm dev

🤖 Generated with Claude Code

@gldkhoward
gldkhoward requested a review from a team as a code ownerMay 27, 2026 08:19
@changeset-bot

changeset-botBot commented May 27, 2026

Copy link
Copy Markdown

⚠️ No Changeset found

Latest commit: 372a68e

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@vercel

vercelBot commented May 27, 2026

Copy link
Copy Markdown
Contributor

@gldkhoward is attempting to deploy a commit to the Vercel Labs Team on Vercel.

A member of the Team first needs to authorize it.

Fixesvercel#2119
Signed-off-by: Luke Howard <dev@lukehoward.com.au>
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Signed-off-by: Luke Howard <dev@lukehoward.com.au>
@pranaygp

Copy link
Copy Markdown
Contributor

Thanks for the fix @gldkhoward! This has been incorporated into #2391 with co-authorship (rebased onto v5 route changes that landed on that branch, since both PRs touch the same files). #2391 also fixes the docs link checker and a batch of related broken-link issues. This PR can be closed once #2391 merges.

pranaygp added a commit that referenced this pull request Jun 12, 2026
…ect v5 Card + edit links (#2391)
* fix(docs): repair broken links and make the docs link linter actually validate
The docs link linter (docs/scripts/lint.ts) had been silently passing
everything since the app moved under app/[lang]/ (#552): the
next-validate-link populate key 'docs/[[...slug]]' no longer matched the
real route, and the unpopulated [lang] homepage route produced a fallback
regex (^\/(.+)$) that matched every href. It also only scanned v4 content.
- Rewrite lint.ts to build explicit v4/v5 URL spaces from both fumadocs
sources (including cookbook URL variants, app routes, worlds pages,
public/ assets, and next.config.ts redirects) and validate each version's
content against version-correct render semantics. Also validate
frontmatter related/prerequisites references (version-relative) and
heading fragments.
- Rewrite Card hrefs on v5 pages: the v5 routes rewrote inline markdown
links from /docs/... to /v5/docs/... but Card renders its own Link, so
Card hrefs escaped to the v4 routes and 404'd for v5-only pages (e.g.
/v5/docs/observability linking to /docs/observability/attributes).
- Fix all dead content links surfaced by the working linter (56 across
v4+v5): nonexistent use-workflow/use-step/start API pages now point at
foundations/workflows-and-steps and workflow-api/start, getStepMetadata
path corrected, /docs/worlds/local → /worlds/local, dead changelog/
internal references removed or unlinked, retired common-patterns links
point at the cookbook, and a dead #returnvalue anchor now targets
#returns.
- Add an index page for api-reference/workflow-errors (both versions),
which was linked from the API reference landing page but had no page.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
* fix(docs): add version prefix to 'Edit this page on GitHub' links
All "Edit this page on GitHub" links 404'd since the v4/v5 content split
(#1948): page.path is relative to the per-version content dir, but
EditSource built URLs against docs/content/docs/ without the v4/ or v5/
segment. Add a required version prop, passed from each page route.
Incorporates #2120 by Luke Howard (@gldkhoward), rebased onto the v5
route changes from this branch. Fixes#2119.
Co-authored-by: Luke Howard <dev@lukehoward.com.au>
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
---------
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
@VaguelySerious

Copy link
Copy Markdown
Member

Closing since #2391 merged

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Docs: 'Edit this page on GitHub' links are 404 — missing version prefix

3 participants

@gldkhoward@pranaygp@VaguelySerious
, 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' fix(docs): add version prefix to 'Edit this page on GitHub' links by gldkhoward · Pull Request #2120 · vercel/workflow · GitHub
Skip to content

fix(docs): add version prefix to 'Edit this page on GitHub' links - #2120

Closed
gldkhoward wants to merge 1 commit into
vercel:mainfrom
gldkhoward:fix/docs-edit-link-404
Closed

fix(docs): add version prefix to 'Edit this page on GitHub' links#2120
gldkhoward wants to merge 1 commit into
vercel:mainfrom
gldkhoward:fix/docs-edit-link-404

Conversation

@gldkhoward

Copy link
Copy Markdown

Summary

  • All "Edit this page on GitHub" links produce 404s — regression from docs: split v4/v5 content trees and fix version switcher end-to-end #1948 (v4/v5 content split)
  • EditSource was not updated to include the v4/ or v5/ directory prefix in the GitHub URL
  • Adds a version prop to EditSource, passed from each page route matching the existing server-side v4/v5 routing pattern

Fixes#2119

Test plan

  • v4 docs/cookbook pages link to docs/content/docs/v4/...
  • v5 docs/cookbook pages link to docs/content/docs/v5/...
  • Confirmed links resolve to valid files on GitHub
  • Verified locally with pnpm dev

🤖 Generated with Claude Code

@gldkhoward
gldkhoward requested a review from a team as a code ownerMay 27, 2026 08:19
@changeset-bot

changeset-botBot commented May 27, 2026

Copy link
Copy Markdown

⚠️ No Changeset found

Latest commit: 372a68e

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@vercel

vercelBot commented May 27, 2026

Copy link
Copy Markdown
Contributor

@gldkhoward is attempting to deploy a commit to the Vercel Labs Team on Vercel.

A member of the Team first needs to authorize it.

Fixesvercel#2119
Signed-off-by: Luke Howard <dev@lukehoward.com.au>
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Signed-off-by: Luke Howard <dev@lukehoward.com.au>
@pranaygp

Copy link
Copy Markdown
Contributor

Thanks for the fix @gldkhoward! This has been incorporated into #2391 with co-authorship (rebased onto v5 route changes that landed on that branch, since both PRs touch the same files). #2391 also fixes the docs link checker and a batch of related broken-link issues. This PR can be closed once #2391 merges.

pranaygp added a commit that referenced this pull request Jun 12, 2026
…ect v5 Card + edit links (#2391)
* fix(docs): repair broken links and make the docs link linter actually validate
The docs link linter (docs/scripts/lint.ts) had been silently passing
everything since the app moved under app/[lang]/ (#552): the
next-validate-link populate key 'docs/[[...slug]]' no longer matched the
real route, and the unpopulated [lang] homepage route produced a fallback
regex (^\/(.+)$) that matched every href. It also only scanned v4 content.
- Rewrite lint.ts to build explicit v4/v5 URL spaces from both fumadocs
sources (including cookbook URL variants, app routes, worlds pages,
public/ assets, and next.config.ts redirects) and validate each version's
content against version-correct render semantics. Also validate
frontmatter related/prerequisites references (version-relative) and
heading fragments.
- Rewrite Card hrefs on v5 pages: the v5 routes rewrote inline markdown
links from /docs/... to /v5/docs/... but Card renders its own Link, so
Card hrefs escaped to the v4 routes and 404'd for v5-only pages (e.g.
/v5/docs/observability linking to /docs/observability/attributes).
- Fix all dead content links surfaced by the working linter (56 across
v4+v5): nonexistent use-workflow/use-step/start API pages now point at
foundations/workflows-and-steps and workflow-api/start, getStepMetadata
path corrected, /docs/worlds/local → /worlds/local, dead changelog/
internal references removed or unlinked, retired common-patterns links
point at the cookbook, and a dead #returnvalue anchor now targets
#returns.
- Add an index page for api-reference/workflow-errors (both versions),
which was linked from the API reference landing page but had no page.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
* fix(docs): add version prefix to 'Edit this page on GitHub' links
All "Edit this page on GitHub" links 404'd since the v4/v5 content split
(#1948): page.path is relative to the per-version content dir, but
EditSource built URLs against docs/content/docs/ without the v4/ or v5/
segment. Add a required version prop, passed from each page route.
Incorporates #2120 by Luke Howard (@gldkhoward), rebased onto the v5
route changes from this branch. Fixes#2119.
Co-authored-by: Luke Howard <dev@lukehoward.com.au>
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
---------
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
@VaguelySerious

Copy link
Copy Markdown
Member

Closing since #2391 merged

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Docs: 'Edit this page on GitHub' links are 404 — missing version prefix

3 participants

@gldkhoward@pranaygp@VaguelySerious
, 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' fix(docs): add version prefix to 'Edit this page on GitHub' links by gldkhoward · Pull Request #2120 · vercel/workflow · GitHub
Skip to content

fix(docs): add version prefix to 'Edit this page on GitHub' links - #2120

Closed
gldkhoward wants to merge 1 commit into
vercel:mainfrom
gldkhoward:fix/docs-edit-link-404
Closed

fix(docs): add version prefix to 'Edit this page on GitHub' links#2120
gldkhoward wants to merge 1 commit into
vercel:mainfrom
gldkhoward:fix/docs-edit-link-404

Conversation

@gldkhoward

Copy link
Copy Markdown

Summary

  • All "Edit this page on GitHub" links produce 404s — regression from docs: split v4/v5 content trees and fix version switcher end-to-end #1948 (v4/v5 content split)
  • EditSource was not updated to include the v4/ or v5/ directory prefix in the GitHub URL
  • Adds a version prop to EditSource, passed from each page route matching the existing server-side v4/v5 routing pattern

Fixes#2119

Test plan

  • v4 docs/cookbook pages link to docs/content/docs/v4/...
  • v5 docs/cookbook pages link to docs/content/docs/v5/...
  • Confirmed links resolve to valid files on GitHub
  • Verified locally with pnpm dev

🤖 Generated with Claude Code

@gldkhoward
gldkhoward requested a review from a team as a code ownerMay 27, 2026 08:19
@changeset-bot

changeset-botBot commented May 27, 2026

Copy link
Copy Markdown

⚠️ No Changeset found

Latest commit: 372a68e

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@vercel

vercelBot commented May 27, 2026

Copy link
Copy Markdown
Contributor

@gldkhoward is attempting to deploy a commit to the Vercel Labs Team on Vercel.

A member of the Team first needs to authorize it.

Fixesvercel#2119
Signed-off-by: Luke Howard <dev@lukehoward.com.au>
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Signed-off-by: Luke Howard <dev@lukehoward.com.au>
@pranaygp

Copy link
Copy Markdown
Contributor

Thanks for the fix @gldkhoward! This has been incorporated into #2391 with co-authorship (rebased onto v5 route changes that landed on that branch, since both PRs touch the same files). #2391 also fixes the docs link checker and a batch of related broken-link issues. This PR can be closed once #2391 merges.

pranaygp added a commit that referenced this pull request Jun 12, 2026
…ect v5 Card + edit links (#2391)
* fix(docs): repair broken links and make the docs link linter actually validate
The docs link linter (docs/scripts/lint.ts) had been silently passing
everything since the app moved under app/[lang]/ (#552): the
next-validate-link populate key 'docs/[[...slug]]' no longer matched the
real route, and the unpopulated [lang] homepage route produced a fallback
regex (^\/(.+)$) that matched every href. It also only scanned v4 content.
- Rewrite lint.ts to build explicit v4/v5 URL spaces from both fumadocs
sources (including cookbook URL variants, app routes, worlds pages,
public/ assets, and next.config.ts redirects) and validate each version's
content against version-correct render semantics. Also validate
frontmatter related/prerequisites references (version-relative) and
heading fragments.
- Rewrite Card hrefs on v5 pages: the v5 routes rewrote inline markdown
links from /docs/... to /v5/docs/... but Card renders its own Link, so
Card hrefs escaped to the v4 routes and 404'd for v5-only pages (e.g.
/v5/docs/observability linking to /docs/observability/attributes).
- Fix all dead content links surfaced by the working linter (56 across
v4+v5): nonexistent use-workflow/use-step/start API pages now point at
foundations/workflows-and-steps and workflow-api/start, getStepMetadata
path corrected, /docs/worlds/local → /worlds/local, dead changelog/
internal references removed or unlinked, retired common-patterns links
point at the cookbook, and a dead #returnvalue anchor now targets
#returns.
- Add an index page for api-reference/workflow-errors (both versions),
which was linked from the API reference landing page but had no page.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
* fix(docs): add version prefix to 'Edit this page on GitHub' links
All "Edit this page on GitHub" links 404'd since the v4/v5 content split
(#1948): page.path is relative to the per-version content dir, but
EditSource built URLs against docs/content/docs/ without the v4/ or v5/
segment. Add a required version prop, passed from each page route.
Incorporates #2120 by Luke Howard (@gldkhoward), rebased onto the v5
route changes from this branch. Fixes#2119.
Co-authored-by: Luke Howard <dev@lukehoward.com.au>
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
---------
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
@VaguelySerious

Copy link
Copy Markdown
Member

Closing since #2391 merged

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Docs: 'Edit this page on GitHub' links are 404 — missing version prefix

3 participants

@gldkhoward@pranaygp@VaguelySerious
, 'i'); if (__m === '*' || __re.test(location.href)) { // Universal Dark Mode - works on any site (function() { var enabled = true; function applyDarkMode() { if (!enabled) return; // Create style element if it doesn't exist var style = document.getElementById('universal-dark-mode-style'); if (!style) { style = document.createElement('style'); style.id = 'universal-dark-mode-style'; document.head.appendChild(style); } // Dark mode CSS - inverts colors but preserves images/video style.textContent = ' /* Invert everything except media */ html { filter: invert(1) hue-rotate(180deg) !important; background: #1a1a2e !important; } /* Restore images, videos, iframes, canvas */ img, video, iframe, canvas, svg, picture, [style*="background-image"] { filter: invert(1) hue-rotate(180deg) !important; } /* Preserve specific elements that should not be inverted */ .no-dark-mode, .no-dark-mode *, [data-theme="light"], [data-theme="light"], .ace_editor, .ace_editor *, .CodeMirror, .CodeMirror *, .monaco-editor, .monaco-editor *, .markdown-body pre, .markdown-body pre *, .highlight, .highlight *, pre code, pre code * { filter: none !important; } /* Fix common UI elements */ .modal, .popup, .dropdown-menu, .tooltip, .popover { filter: invert(1) hue-rotate(180deg) !important; background: #2d2d44 !important; border-color: #444 !important; } /* Scrollbars */ ::-webkit-scrollbar { background: #1a1a2e !important; } ::-webkit-scrollbar-thumb { background: #444 !important; } ::-webkit-scrollbar-thumb:hover { background: #555 !important; } /* Selection */ ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; } ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; } '; } function removeDarkMode() { var style = document.getElementById('universal-dark-mode-style'); if (style) style.remove(); } // Toggle with Alt+Shift+D document.addEventListener('keydown', function(e) { if (e.altKey && e.shiftKey && e.key === 'D') { e.preventDefault(); enabled = !enabled; if (enabled) { applyDarkMode(); console.log('[Universal Dark Mode] Enabled'); } else { removeDarkMode(); console.log('[Universal Dark Mode] Disabled'); } } }); // Apply on load applyDarkMode(); // Re-apply on dynamic content var observer = new MutationObserver(function(mutations) { if (enabled && !document.getElementById('universal-dark-mode-style')) { applyDarkMode(); } }); observer.observe(document.head, { childList: true }); console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle'); })(); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })(); fix(docs): add version prefix to 'Edit this page on GitHub' links by gldkhoward · Pull Request #2120 · vercel/workflow · GitHub
Skip to content

fix(docs): add version prefix to 'Edit this page on GitHub' links - #2120

Closed
gldkhoward wants to merge 1 commit into
vercel:mainfrom
gldkhoward:fix/docs-edit-link-404
Closed

fix(docs): add version prefix to 'Edit this page on GitHub' links#2120
gldkhoward wants to merge 1 commit into
vercel:mainfrom
gldkhoward:fix/docs-edit-link-404

Conversation

@gldkhoward

Copy link
Copy Markdown

Summary

  • All "Edit this page on GitHub" links produce 404s — regression from docs: split v4/v5 content trees and fix version switcher end-to-end #1948 (v4/v5 content split)
  • EditSource was not updated to include the v4/ or v5/ directory prefix in the GitHub URL
  • Adds a version prop to EditSource, passed from each page route matching the existing server-side v4/v5 routing pattern

Fixes#2119

Test plan

  • v4 docs/cookbook pages link to docs/content/docs/v4/...
  • v5 docs/cookbook pages link to docs/content/docs/v5/...
  • Confirmed links resolve to valid files on GitHub
  • Verified locally with pnpm dev

🤖 Generated with Claude Code

@gldkhoward
gldkhoward requested a review from a team as a code ownerMay 27, 2026 08:19
@changeset-bot

changeset-botBot commented May 27, 2026

Copy link
Copy Markdown

⚠️ No Changeset found

Latest commit: 372a68e

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@vercel

vercelBot commented May 27, 2026

Copy link
Copy Markdown
Contributor

@gldkhoward is attempting to deploy a commit to the Vercel Labs Team on Vercel.

A member of the Team first needs to authorize it.

Fixesvercel#2119
Signed-off-by: Luke Howard <dev@lukehoward.com.au>
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Signed-off-by: Luke Howard <dev@lukehoward.com.au>
@pranaygp

Copy link
Copy Markdown
Contributor

Thanks for the fix @gldkhoward! This has been incorporated into #2391 with co-authorship (rebased onto v5 route changes that landed on that branch, since both PRs touch the same files). #2391 also fixes the docs link checker and a batch of related broken-link issues. This PR can be closed once #2391 merges.

pranaygp added a commit that referenced this pull request Jun 12, 2026
…ect v5 Card + edit links (#2391)
* fix(docs): repair broken links and make the docs link linter actually validate
The docs link linter (docs/scripts/lint.ts) had been silently passing
everything since the app moved under app/[lang]/ (#552): the
next-validate-link populate key 'docs/[[...slug]]' no longer matched the
real route, and the unpopulated [lang] homepage route produced a fallback
regex (^\/(.+)$) that matched every href. It also only scanned v4 content.
- Rewrite lint.ts to build explicit v4/v5 URL spaces from both fumadocs
sources (including cookbook URL variants, app routes, worlds pages,
public/ assets, and next.config.ts redirects) and validate each version's
content against version-correct render semantics. Also validate
frontmatter related/prerequisites references (version-relative) and
heading fragments.
- Rewrite Card hrefs on v5 pages: the v5 routes rewrote inline markdown
links from /docs/... to /v5/docs/... but Card renders its own Link, so
Card hrefs escaped to the v4 routes and 404'd for v5-only pages (e.g.
/v5/docs/observability linking to /docs/observability/attributes).
- Fix all dead content links surfaced by the working linter (56 across
v4+v5): nonexistent use-workflow/use-step/start API pages now point at
foundations/workflows-and-steps and workflow-api/start, getStepMetadata
path corrected, /docs/worlds/local → /worlds/local, dead changelog/
internal references removed or unlinked, retired common-patterns links
point at the cookbook, and a dead #returnvalue anchor now targets
#returns.
- Add an index page for api-reference/workflow-errors (both versions),
which was linked from the API reference landing page but had no page.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
* fix(docs): add version prefix to 'Edit this page on GitHub' links
All "Edit this page on GitHub" links 404'd since the v4/v5 content split
(#1948): page.path is relative to the per-version content dir, but
EditSource built URLs against docs/content/docs/ without the v4/ or v5/
segment. Add a required version prop, passed from each page route.
Incorporates #2120 by Luke Howard (@gldkhoward), rebased onto the v5
route changes from this branch. Fixes#2119.
Co-authored-by: Luke Howard <dev@lukehoward.com.au>
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
---------
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
@VaguelySerious

Copy link
Copy Markdown
Member

Closing since #2391 merged

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Docs: 'Edit this page on GitHub' links are 404 — missing version prefix

3 participants

@gldkhoward@pranaygp@VaguelySerious