Skip to content

docs: make v8 the default docs version#1032

Merged
willwashburn merged 4 commits into
mainfrom
docs-default-to-v8
Jun 3, 2026
Merged

docs: make v8 the default docs version#1032
willwashburn merged 4 commits into
mainfrom
docs-default-to-v8

Conversation

@willwashburn
Copy link
Copy Markdown
Member

@willwashburn willwashburn commented Jun 3, 2026

User description

Summary

Flips the published docs so v8 is the default (served at the bare /docs/* paths) and v7.1.1 becomes the archive at /docs/7.1.1/*, reachable only via the version dropdown. The old docs stay out of sitemap.xml.

Changes

Version logic — web/lib/docs-versions.ts

  • currentDocsVersion: v7.1.1v8
  • v8DocsBasePath: /docs/8.0.0/docs
  • Dropdown lists v8.0.0 (latest) first, then v7.1.1 (dropped the preview/latest framing)
  • getDocsVersionForPath / getDocsVersionHref / getDefaultDocsVersionForSlug resolve the /docs/7.1.1 prefix first, then default to v8

Routing

  • app/docs/[slug]/page.tsx — bare path serves v8 only; legacy-only slugs 307-redirect to /docs/7.1.1/{slug} so v7 content never renders at a canonical bare URL
  • app/docs/8.0.0/* — now redirects to the bare path (mirrors pre-v87.1.1), keeping old preview links working without duplicate content

Nav — components/docs/DocsNav.tsx

  • Simplified base-path selection: v8 → /docs, v7.1.1 → /docs/7.1.1

Content

  • Rewrote internal /docs/8.0.0/* cross-links → /docs/* in the 5 CLI MDX files; updated docs-markdown-components.test.ts expectations

Sitemap

  • No change needed — sitemap.ts already emits only the bare v8 slugs, so the /docs/7.1.1 archive is excluded

Testing

  • npx tsc --noEmit — clean
  • npx vitest run — 12/12 pass

🤖 Generated with Claude Code


CodeAnt-AI Description

Make v8 the default docs experience and move v7.1.1 into the archive

What Changed

  • The main docs now open on v8 at the bare /docs/* paths, and v7.1.1 is served from /docs/7.1.1/*
  • Legacy-only pages now send readers to the archived v7.1.1 version instead of showing outdated content on the main docs path
  • Old /docs/8.0.0/* links now redirect to the current v8 pages, and internal docs links were updated to use the new bare /docs/* paths
  • Docs navigation now points each version to the correct base path, and page actions are shown for the main docs pages

Impact

✅ Clearer docs links
✅ Fewer broken version paths
✅ Easier access to the current docs

💡 Usage Guide

Checking Your Pull Request

Every time you make a pull request, our system automatically looks through it. We check for security issues, mistakes in how you're setting up your infrastructure, and common code problems. We do this to make sure your changes are solid and won't cause any trouble later.

Talking to CodeAnt AI

Got a question or need a hand with something in your pull request? You can easily get in touch with CodeAnt AI right here. Just type the following in a comment on your pull request, and replace "Your question here" with whatever you want to ask:

@codeant-ai ask: Your question here

This lets you have a chat with CodeAnt AI about your pull request, making it easier to understand and improve your code.

Example

@codeant-ai ask: Can you suggest a safer alternative to storing this secret?

Preserve Org Learnings with CodeAnt

You can record team preferences so CodeAnt AI applies them in future reviews. Reply directly to the specific CodeAnt AI suggestion (in the same thread) and replace "Your feedback here" with your input:

@codeant-ai: Your feedback here

This helps CodeAnt AI learn and adapt to your team's coding style and standards.

Example

@codeant-ai: Do not flag unused imports.

Retrigger review

Ask CodeAnt AI to review the PR again, by typing:

@codeant-ai: review

Check Your Repository Health

To analyze the health of your code repository, visit our dashboard at https://app.codeant.ai. This tool helps you identify potential issues and areas for improvement in your codebase, ensuring your repository maintains high standards of code health.

Serve v8 docs at the bare /docs path and archive v7.1.1 under
/docs/7.1.1, reachable via the version dropdown.

- Flip currentDocsVersion to v8 and point v8DocsBasePath at /docs
- Bare /docs/[slug] serves v8; legacy-only slugs redirect to the
  /docs/7.1.1 archive so v7 never renders at a canonical bare URL
- Redirect /docs/8.0.0/* to the bare path to avoid duplicate content
- Rewrite v8 MDX cross-links from /docs/8.0.0/* to /docs/*
- Version dropdown lists v8.0.0 (latest) first, then v7.1.1

The sitemap continues to emit only the bare v8 slugs, so the v7.1.1
archive stays out of sitemap.xml.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@codeant-ai
Copy link
Copy Markdown

codeant-ai Bot commented Jun 3, 2026

CodeAnt AI is reviewing your PR.

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented Jun 3, 2026

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 9bdd367d-43d2-4839-96ca-052ef0e1a73e

📥 Commits

Reviewing files that changed from the base of the PR and between 54c3032 and fc6d41e.

📒 Files selected for processing (2)
  • .agentworkforce/trajectories/completed/2026-06/traj_4kjbodqi338z/summary.md
  • .agentworkforce/trajectories/completed/2026-06/traj_4kjbodqi338z/trajectory.json
✅ Files skipped from review due to trivial changes (1)
  • .agentworkforce/trajectories/completed/2026-06/traj_4kjbodqi338z/summary.md
🚧 Files skipped from review as they are similar to previous changes (1)
  • .agentworkforce/trajectories/completed/2026-06/traj_4kjbodqi338z/trajectory.json

📝 Walkthrough

Walkthrough

This PR migrates docs routing so v8 is served at /docs (unversioned), archives v7.1.1 under /docs/7.1.1, updates routing helpers and page redirects, simplifies navigation base-path selection, retargets internal doc links, updates tests, and removes legacy redirect generation from next.config.

Changes

Documentation Versioning Migration

Layer / File(s) Summary
Version routing constants and resolution utilities
web/lib/docs-versions.ts
docsVersions reordered with v8 marked latest, currentDocsVersion set to v8, v8DocsBasePath changed to /docs. Path-to-version resolution, slug derivation, and href generation rewritten to prefer legacy-path detection then current slugs.
V8 versioned pages redirect to unversioned paths
web/app/docs/8.0.0/[slug]/page.tsx, web/app/docs/8.0.0/page.tsx
Index and slug handlers for /docs/8.0.0 now redirect to unversioned /docs equivalents; prior MDX rendering/static params/metadata removed from v8-versioned pages.
Legacy-only docs redirect and metadata handling
web/app/docs/[slug]/page.tsx
Unversioned docs page redirects legacy-only slugs to /docs/7.1.1/${slug} and uses v7.1.1 archive content for metadata/canonical URLs while loading main content from v8.
Navigation component path selection simplified
web/components/docs/DocsNav.tsx
docsBasePath selection simplified to use docsVersion (v8 → /docs, else legacy base) rather than pathname-based fallbacks.
Documentation content links migrated to unversioned paths
web/content/docs/cli-agent-management.mdx, web/content/docs/cli-broker-lifecycle.mdx, web/content/docs/cli-messaging.mdx, web/content/docs/cli-overview.mdx, web/content/docs/reference-cli.mdx
See-also/Next-steps card hrefs changed from /docs/8.0.0/* to /docs/* and some MDX card markup refreshed.
Tests: docs-version behavior and markdown links
web/lib/test/docs-markdown-components.test.ts, web/lib/test/docs-versions.test.ts
Updated MDX link expectations to unversioned paths and added tests verifying currentDocsVersion is v8, legacy archive behavior, remapping of old /docs/8.0.0/... prefixes, and href generation.
Remove legacy redirect generation from Next config
web/next.config.mjs
Deleted legacyDocRedirects and stopped appending it to redirects(), removing many autogenerated legacy redirect rules.
Trajectory artifacts
.agentworkforce/trajectories/completed/2026-06/*
Added trajectory JSON and summary documenting the review/repair work and decisions made.

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~45 minutes

Possibly related PRs

Suggested reviewers

  • khaliqgant

Poem

🐰 I hopped through routes and tidied the tracks,
V8 now leads where old links slipped back,
Legacy sleeps under seven-point-one-one,
Redirects redirect and tests all run,
A tidy warren of docs, bright as the sun.

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly and concisely summarizes the main objective of the PR: making v8 the default docs version, which is the primary change across all modified files.
Description check ✅ Passed The PR description provides a comprehensive summary, detailed change breakdown across multiple sections (version logic, routing, navigation, content, sitemap), and testing results showing all checks passed.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch docs-default-to-v8

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@codeant-ai codeant-ai Bot added the size:M This PR changes 30-99 lines, ignoring generated files label Jun 3, 2026
Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 6378aa10ac

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread web/lib/docs-versions.ts
export const currentDocsVersion: DocsVersionId = 'v8';
export const legacyDocsBasePath = '/docs/7.1.1';
export const v8DocsBasePath = '/docs/8.0.0';
export const v8DocsBasePath = '/docs';
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Remove conflicting bare docs redirects

With the v8 base path now set to /docs, current v8 pages such as /docs/cli-messaging, /docs/cli-agent-management, /docs/cli-broker-lifecycle, and /docs/reference-cli collide with the existing legacyDocRedirects in web/next.config.mjs lines 16-21. Those redirects are evaluated before the app route can render, so the new v8 nav/content links to these canonical pages bounce to unrelated destinations like /docs/cli-overview or /docs/harness-driver instead of showing the v8 pages. Please remove or retarget the conflicting bare redirects when promoting v8 to /docs.

Useful? React with 👍 / 👎.

Comment on lines +107 to +108
if (getDefaultDocsVersionForSlug(slug) === 'v7.1.1') {
redirect(`/docs/7.1.1/${slug}`);
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggestion: This new redirect branch does not consistently take effect because many legacy bare slugs are already intercepted by existing top-level redirects in web/next.config.mjs (for example /docs/spawning-an-agent, /docs/channels, /docs/dms, etc.). As a result, those URLs still redirect into v8 pages instead of the /docs/7.1.1/* archive, so the new routing intent is only partially implemented. Update or remove the conflicting config redirects so legacy-only slugs reliably reach the archive route. [incomplete implementation]

Severity Level: Major ⚠️
- ❌ Legacy v7 doc URLs resolve to unintended v8 pages.
- ⚠️ Archival `/docs/7.1.1/*` routing not consistently honored.
- ⚠️ SEO/canonical behavior for legacy slugs becomes inconsistent.
- ⚠️ Users following old links see updated content, not archive.
Steps of Reproduction ✅
1. Configure and run the Next.js app using the PR code in `web/` so that routing and
config from `web/next.config.mjs` are active.

2. Request the legacy bare docs URL `GET /docs/spawning-an-agent` (an example mentioned in
the suggestion). Next.js evaluates redirects defined in `web/next.config.mjs:7-48` and
`web/next.config.mjs:66-78`, and matches the entry `{ source: '/docs/spawning-an-agent',
destination: '/docs/harness-driver', permanent: false }` at `web/next.config.mjs:9`.

3. Observe that the framework issues an HTTP redirect from `/docs/spawning-an-agent` to
`/docs/harness-driver` at the config level; the route handler `DocsPage` in
`web/app/docs/[slug]/page.tsx:103-154` is never invoked for slug `spawning-an-agent`, so
the new branch:

   `if (getDefaultDocsVersionForSlug(slug) === 'v7.1.1') {
   redirect(\`/docs/7.1.1/${slug}\`); }`

   at `web/app/docs/[slug]/page.tsx:107-108` does not run.

4. Independently verify intent: `getDefaultDocsVersionForSlug(slug)` in
`web/lib/docs-versions.ts:15-20` returns `'v7.1.1'` for slugs that are legacy-only (i.e.,
not in `currentDocsSlugs` but present in `legacyDocsSlugs`), meaning
`/docs/spawning-an-agent` is expected to go to `/docs/7.1.1/spawning-an-agent`. Because of
the conflicting redirect in `web/next.config.mjs`, those legacy slugs are instead
redirected to various `/docs/*` v8 destinations (e.g., `/docs/harness-driver`), so the
archival redirect logic in `web/app/docs/[slug]/page.tsx:107-108` is partially bypassed.

Fix in Cursor | Fix in VSCode Claude

(Use Cmd/Ctrl + Click for best experience)

Prompt for AI Agent 🤖
This is a comment left during a code review.

**Path:** web/app/docs/[slug]/page.tsx
**Line:** 107:108
**Comment:**
	*Incomplete Implementation: This new redirect branch does not consistently take effect because many legacy bare slugs are already intercepted by existing top-level redirects in `web/next.config.mjs` (for example `/docs/spawning-an-agent`, `/docs/channels`, `/docs/dms`, etc.). As a result, those URLs still redirect into v8 pages instead of the `/docs/7.1.1/*` archive, so the new routing intent is only partially implemented. Update or remove the conflicting config redirects so legacy-only slugs reliably reach the archive route.

Validate the correctness of the flagged issue. If correct, How can I resolve this? If you propose a fix, implement it and please make it concise.
Once fix is implemented, also check other comments on the same PR, and ask user if the user wants to fix the rest of the comments as well. if said yes, then fetch all the comments validate the correctness and implement a minimal fix
👍 | 👎

@codeant-ai
Copy link
Copy Markdown

codeant-ai Bot commented Jun 3, 2026

CodeAnt AI finished reviewing your PR.

Copy link
Copy Markdown

@gemini-code-assist gemini-code-assist Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request promotes Version 8.0.0 (v8) of the documentation to be the default, serving it from the bare /docs path instead of /docs/8.0.0, while archiving Version 7.1.1 (v7.1.1) under /docs/7.1.1. This involves updating path resolution, navigation components, markdown links, and setting up redirects from the old /docs/8.0.0/[slug] paths to /docs/[slug]. Feedback on the changes suggests keeping generateStaticParams in the redirect page at web/app/docs/8.0.0/[slug]/page.tsx to ensure Next.js can statically generate these redirect pages during build time, preventing potential build failures and optimizing edge redirects.

Important

The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.

Comment on lines +1 to 10
import { redirect } from 'next/navigation';

type PageProps = {
params: Promise<{ slug: string }>;
};

export async function generateStaticParams() {
return getAllDocSlugs().map((slug) => ({ slug }));
}

export async function generateMetadata({ params }: PageProps): Promise<Metadata> {
export default async function V8DocsSlugRedirectPage({ params }: PageProps) {
const { slug } = await params;
const doc = getDoc(slug, 'v8');

if (!doc) {
return { title: 'Not Found' };
}

return {
title: `${doc.frontmatter.title} - Version 8.0.0`,
description: doc.frontmatter.description,
alternates: {
canonical: absoluteUrl(`/docs/8.0.0/${slug}`),
},
openGraph: {
title: `${doc.frontmatter.title} - Version 8.0.0`,
description: doc.frontmatter.description,
url: absoluteUrl(`/docs/8.0.0/${slug}`),
type: 'article',
},
};
}

export default async function V8DocsPage({ params }: PageProps) {
const { slug } = await params;
const doc = getDoc(slug, 'v8');

if (!doc) {
notFound();
}

const { default: MDXContent } = await evaluate(doc.content, {
Fragment,
jsx,
jsxs,
remarkPlugins: [remarkGfm],
} as Parameters<typeof evaluate>[1]);

const pageUrl = absoluteUrl(`/docs/8.0.0/${slug}`);
const markdownPath = `/docs/markdown/${slug}.md`;
const markdownUrl = getDocMarkdownUrl(slug);

return (
<div className={styles.articleWrapper}>
<article className={styles.article}>
<div className={styles.articleHeader}>
<div className={styles.articleHeading}>
<h1>{doc.frontmatter.title}</h1>
</div>
<DocsPageActions
title={doc.frontmatter.title}
pageUrl={pageUrl}
markdownPath={markdownPath}
markdownUrl={markdownUrl}
/>
</div>
{doc.frontmatter.description && (
<p className={styles.articleDescription}>{doc.frontmatter.description}</p>
)}
<div className={styles.articleBody}>
<MDXContent components={components} />
</div>
</article>
<aside className={styles.tocSidebar}>
<TableOfContents items={doc.toc} />
</aside>
</div>
);
redirect(`/docs/${slug}`);
}
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

high

Removing generateStaticParams from this dynamic route file will prevent Next.js from statically generating the redirect pages during build time. If the project is deployed as a static export (output: 'export'), the build will fail. Even with dynamic server rendering, statically generating these redirects is highly recommended for performance and SEO to ensure instant redirects at the CDN edge without invoking serverless functions.

Suggested change
import { redirect } from 'next/navigation';
type PageProps = {
params: Promise<{ slug: string }>;
};
export async function generateStaticParams() {
return getAllDocSlugs().map((slug) => ({ slug }));
}
export async function generateMetadata({ params }: PageProps): Promise<Metadata> {
export default async function V8DocsSlugRedirectPage({ params }: PageProps) {
const { slug } = await params;
const doc = getDoc(slug, 'v8');
if (!doc) {
return { title: 'Not Found' };
}
return {
title: `${doc.frontmatter.title} - Version 8.0.0`,
description: doc.frontmatter.description,
alternates: {
canonical: absoluteUrl(`/docs/8.0.0/${slug}`),
},
openGraph: {
title: `${doc.frontmatter.title} - Version 8.0.0`,
description: doc.frontmatter.description,
url: absoluteUrl(`/docs/8.0.0/${slug}`),
type: 'article',
},
};
}
export default async function V8DocsPage({ params }: PageProps) {
const { slug } = await params;
const doc = getDoc(slug, 'v8');
if (!doc) {
notFound();
}
const { default: MDXContent } = await evaluate(doc.content, {
Fragment,
jsx,
jsxs,
remarkPlugins: [remarkGfm],
} as Parameters<typeof evaluate>[1]);
const pageUrl = absoluteUrl(`/docs/8.0.0/${slug}`);
const markdownPath = `/docs/markdown/${slug}.md`;
const markdownUrl = getDocMarkdownUrl(slug);
return (
<div className={styles.articleWrapper}>
<article className={styles.article}>
<div className={styles.articleHeader}>
<div className={styles.articleHeading}>
<h1>{doc.frontmatter.title}</h1>
</div>
<DocsPageActions
title={doc.frontmatter.title}
pageUrl={pageUrl}
markdownPath={markdownPath}
markdownUrl={markdownUrl}
/>
</div>
{doc.frontmatter.description && (
<p className={styles.articleDescription}>{doc.frontmatter.description}</p>
)}
<div className={styles.articleBody}>
<MDXContent components={components} />
</div>
</article>
<aside className={styles.tocSidebar}>
<TableOfContents items={doc.toc} />
</aside>
</div>
);
redirect(`/docs/${slug}`);
}
import { redirect } from 'next/navigation';
import { getAllDocSlugs } from '../../../../lib/docs-nav';
type PageProps = {
params: Promise<{ slug: string }>;
};
export async function generateStaticParams() {
return getAllDocSlugs().map((slug) => ({ slug }));
}
export default async function V8DocsSlugRedirectPage({ params }: PageProps) {
const { slug } = await params;
redirect(`/docs/${slug}`);
}

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Jun 3, 2026

Preview deployed!

Environment URL
Web https://d257i6ar5pcf5w.cloudfront.net

This preview will be cleaned up when the PR is merged or closed.

@agent-relay-code
Copy link
Copy Markdown
Contributor

Fixed the PR issues I found.

Changed:

Verification:

  • npm --prefix web test passes: 6 files, 15 tests.
  • npx tsc --noEmit from web/ passes.
  • npm --prefix web run build was attempted twice and killed by the host with exit 137 during Next’s optimized production build, before any diagnostic output.

@agent-relay-code
Copy link
Copy Markdown
Contributor

pr-reviewer applied fixes — committed and pushed 54c3032 to this PR. The notes below describe what changed.

Fixed the PR issues I found.

Changed:

Verification:

  • npm --prefix web test passes: 6 files, 15 tests.
  • npx tsc --noEmit from web/ passes.
  • npm --prefix web run build was attempted twice and killed by the host with exit 137 during Next’s optimized production build, before any diagnostic output.

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🧹 Nitpick comments (2)
web/app/docs/8.0.0/page.tsx (1)

3-5: 💤 Low value

Consider using a permanent redirect for consistency.

Same as the slug redirect page - this permanent URL change would benefit from a 308 redirect: redirect('/docs/introduction', 'permanent').

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@web/app/docs/8.0.0/page.tsx` around lines 3 - 5, The redirect in
V8DocsRedirectPage currently issues a temporary redirect; update the redirect
call inside function V8DocsRedirectPage to perform a permanent (308) redirect by
passing the 'permanent' option as the second argument to redirect (i.e., change
the redirect invocation so it calls redirect('/docs/introduction', 'permanent')
within V8DocsRedirectPage).
web/app/docs/8.0.0/[slug]/page.tsx (1)

7-10: 💤 Low value

Consider using a permanent redirect for better SEO.

The default redirect() issues a 307 (temporary) redirect. Since the /docs/8.0.0/*/docs/* migration is permanent, a 308 redirect would signal to search engines that this change is permanent, improving crawl efficiency and link equity transfer.

Suggested change
 export default async function V8DocsSlugRedirectPage({ params }: PageProps) {
   const { slug } = await params;
-  redirect(`/docs/${slug}`);
+  redirect(`/docs/${slug}`, 'permanent');
 }
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@web/app/docs/8.0.0/`[slug]/page.tsx around lines 7 - 10, The redirect in
V8DocsSlugRedirectPage currently issues a temporary 307; change the call so it
issues a permanent 308 redirect (e.g. pass a 308 status option to
redirect(`/docs/${slug}`) or use NextResponse.redirect with status 308) so the
migration from /docs/8.0.0/* to /docs/* is permanent for SEO; update the
import/usage (redirect vs NextResponse) if necessary to support providing the
308 status.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Nitpick comments:
In `@web/app/docs/8.0.0/`[slug]/page.tsx:
- Around line 7-10: The redirect in V8DocsSlugRedirectPage currently issues a
temporary 307; change the call so it issues a permanent 308 redirect (e.g. pass
a 308 status option to redirect(`/docs/${slug}`) or use NextResponse.redirect
with status 308) so the migration from /docs/8.0.0/* to /docs/* is permanent for
SEO; update the import/usage (redirect vs NextResponse) if necessary to support
providing the 308 status.

In `@web/app/docs/8.0.0/page.tsx`:
- Around line 3-5: The redirect in V8DocsRedirectPage currently issues a
temporary redirect; update the redirect call inside function V8DocsRedirectPage
to perform a permanent (308) redirect by passing the 'permanent' option as the
second argument to redirect (i.e., change the redirect invocation so it calls
redirect('/docs/introduction', 'permanent') within V8DocsRedirectPage).

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 2856df27-56d6-4ce4-8874-b3b48d8bcf60

📥 Commits

Reviewing files that changed from the base of the PR and between 916afc5 and dcf8a06.

📒 Files selected for processing (11)
  • web/app/docs/8.0.0/[slug]/page.tsx
  • web/app/docs/8.0.0/page.tsx
  • web/app/docs/[slug]/page.tsx
  • web/components/docs/DocsNav.tsx
  • web/content/docs/cli-agent-management.mdx
  • web/content/docs/cli-broker-lifecycle.mdx
  • web/content/docs/cli-messaging.mdx
  • web/content/docs/cli-overview.mdx
  • web/content/docs/reference-cli.mdx
  • web/lib/docs-versions.ts
  • web/lib/test/docs-markdown-components.test.ts

@willwashburn willwashburn merged commit 3be269e into main Jun 3, 2026
2 checks passed
@willwashburn willwashburn deleted the docs-default-to-v8 branch June 3, 2026 09:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:M This PR changes 30-99 lines, ignoring generated files

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant