Skip to content

1.0 docs flip - #495

Merged
Rachael-Graham merged 12 commits into
mainfrom
kagent-1-0-docs-flip
Sep 18, 2026
Merged

Rachael-Graham merged 12 commits into
mainfrom
kagent-1-0-docs-flip

Conversation

@Rachael-Graham

@Rachael-Graham Rachael-Graham commented Sep 16, 2026

Copy link
Copy Markdown
Contributor

What this does

Publishes the content/kagent/1.x/ doc set that #493 added behind a draft cascade, and labels it as the kagent 1.0 beta rather than as the current release.

1.0 ships as a beta, so 0.x stays the current supported version. latest does not move off the 0.x entry, both versions carry a banner saying which release a reader is looking at, and the marketing links and the legacy /docs/kagent/* redirect keep pointing at 0.x until GA.

Publishing the 1.x tree

Three things kept 1.x out of a production build, and each had a matching piece of temporary plumbing to remove:

Change Files
Drop draft: true and the cascade.draft key, retitle out of preview docs-site/content/kagent/1.x/_index.md
Delete the preview config overlay that restored the 1.x versions entry docs-site/hugo.preview.yaml
Stop layering that overlay and -D Makefile, .github/workflows/preview.yaml, .github/workflows/links.yml

A plain hugo --config hugo.yaml now renders every 1.x page, list page, and llms.txt entry, so the link checker keeps the 1.x coverage it gained while the overlay existed. make serve-docs also drops -D, which means local authoring now matches production.

Version labeling

The versions list in docs-site/hugo.yaml is where 1.x is declared a beta rather than the current release:

- version: "1.x"
  dropdown: "1.x (beta)"
  banner: "This documentation covers the kagent 1.0 beta. For the current supported release, see the 0.x docs."
- version: "0.x"
  dropdown: "0.x (current)"
  latest: true
  banner: "kagent 1.0 is available as a beta release. To read its documentation, see the 1.x docs."

1.x sits first so the switcher reads newest-first. Order carries no other meaning on this site: resolve-latest-version.html falls back to the first entry, but its only callers are the PDF book cover and the print-book running footer, and this site enables no book output format.

Search indexing

latest: true is the single signal the theme's version-noindex.html accepts, and it stays on 0.x. That partial adds noindex, follow to a non-latest page whenever the same path exists in the latest version, so the 15 1.x pages that also exist under 0.x are withheld from search and the rest of the 1.x tree is indexed normally. No 0.x page is affected. Moving the flag to the 1.x entry at GA reverses the polarity in one line.

This PR also adds docs-site/layouts/partials/utils/version-noindex.html, an override the flag needs in order to do anything at all. kagent's baseURL ends in /docs/, so every RelPermalink carries a /docs/ segment that comes from the baseURL path rather than from a content directory. Upstream feeds that path straight to site.GetPage, which resolves relative to contentDir and therefore never matched: no duplicate was ever found and the partial emitted nothing on any page. The override strips the site's own home prefix before the lookup and changes nothing else. It was invisible until now, because a single rendered version gives the partial nothing to mark either way.

Theme bump

docs-theme-extras v0.3.8 → v0.3.12, which adds utils/md-strip-glossary.html. That partial keeps glossary tooltip definitions out of the .md outputs and the Copy-as-Markdown payload by matching the tooltip markup as a literal adjacency, so the local gloss.html override is re-synced against v0.3.12 to preserve it. The override's own delta is unchanged: it opens a new tab only for an absolute http(s) destination, so an internal cross-reference stays in the current tab.

Verified

Built with hugo --config hugo.yaml --gc --minify and checked against the output rather than the config:

  • 564 pages build with no errors.
  • 15 1.x pages carry noindex, follow, all of them paths that also exist under 0.x, including the 1.x landing page. Zero 0.x pages carry it.
  • Both banners render on their own version, with working links.
  • kmcp, the unversioned product on this same site, shows no banner and no version dropdown.
  • linkChecker passes on this branch.

Still blocked on the release itself

docs-site/assets/kagent-docs/versions/kagent.md pins the 1.x span at 1.0.0-beta0, and no 1.x tag exists on kagent-dev/kagent yet. Until it matches the published tag, the helm command on setup/installation.md fails for anyone who runs it.

Rachael-Graham and others added 10 commits September 16, 2026 09:50
Phase 1 of RELEASE-1.0-CHECKLIST.md — the flip. Mechanical: no content
changes, only the plumbing that was holding 1.x back.

Drop the draft cascade and retitle 1.x out of preview, restore the 1.x
entry in hugo.yaml first in the list and labeled current, move `latest`
from 0.x to 1.x, give 0.x a superseded-version banner, and delete the
hugo.preview.yaml overlay along with its wiring in the Makefile,
preview.yaml and links.yml. A plain `hugo --config hugo.yaml` now
renders 108 1.x pages where it rendered zero.

Order in the versions list is load-bearing beyond the dropdown:
resolve-latest-version.html keys off a `linkVersion` of literally
"latest" and, finding none, falls back to the first entry, which is what
the PDF cover and running footer print.

Also adds a local override of utils/version-noindex.html. The upstream
partial builds a page's current-version equivalent from version-root's
lookupPath and passes it to site.GetPage, but this site's baseURL is
https://kagent.dev/docs/, so that path carries a /docs/ segment coming
from the baseURL rather than from a content directory. GetPage resolves
content-relative paths, so every lookup missed and the partial emitted
nothing on any page. That was invisible while `latest` sat on 0.x and
1.x was withheld; moving the flag would otherwise have had no effect.
The override strips the site's home prefix before the lookup and changes
nothing else. Still unfixed upstream as of v0.3.12.

Verified against a production build: the dropdown reads 1.x (current)
then 0.x, all 107 0.x pages carry the banner and none of the 1.x pages
do, the 15 0.x pages that exist in both trees get noindex and no 1.x
page does, and the {{< version include-if="1.x" >}} conrefs render
non-empty without the overlay. Link check against the pre-flip build
reports zero new failures.

Signed-off-by: Rachael Graham <rachael.graham@solo.io>

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Signed-off-by: Rachael Graham <rachael.graham@solo.io>
Signed-off-by: Rachael Graham <rachael.graham@solo.io>
Signed-off-by: Rachael Graham <rachael.graham@solo.io>
The generated kagent CLI pages built their Subcommands and _index.md
cross-links from --url-prefix, producing hardcoded root-relative paths
like /docs/kagent/1.x/reference/cli/kagent-apply/. That is correct on
this site and wrong anywhere the page is reused: the enterprise docs hub
rebases these pages under its own version, and rebase rewrites the /docs
prefix but cannot remap a version segment it has no way to recognize, so
all 39 links kept pointing at the OSS 1.x tree.

generate-cli-docs.py now takes an optional --link-prefix. When set, those
links are emitted as the theme's version- and product-aware `link`
shortcode instead, so one source resolves correctly in both places. The
update-ref-docs workflow passes it for kagent only; kmcp has no version
tree for the shortcode to resolve against and keeps the URL form. The
0.x regeneration recipe in the workflow header keeps the URL form too,
noted inline: 0.x is frozen and is not rebased downstream.

The 39 links in the committed 1.x pages are rewritten to match what the
generator now produces, so the next scheduled run is a no-op rather than
a large diff.

Verified: the OSS build resolves the same 39 URLs it did before, and a
downstream build of the enterprise hub against this branch resolves them
to that hub's own version with no OSS version segment left anywhere.

Signed-off-by: Rachael Graham <rachael.graham@solo.io>

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
The root-relative /docs/kmcp/ is correct on this site and breaks
downstream. The enterprise docs hub rebases this page and rewrites the
/docs prefix, turning the link into /kagent/kmcp/ — a path that does not
exist there, because kmcp is not part of that product. kmcp docs are
published only here, so an absolute URL is the destination either way and
is left alone by that rewrite.

Signed-off-by: Rachael Graham <rachael.graham@solo.io>

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Signed-off-by: Rachael Graham <rachael.graham@solo.io>
Signed-off-by: Rachael Graham <rachael.graham@solo.io>
Signed-off-by: Rachael Graham <rachael.graham@solo.io>
Signed-off-by: Rachael Graham <rachael.graham@solo.io>
| `provider.organization` | Name of the organization responsible for the agent. |
| `provider.url` | URL to the agent provider's website or documentation. Must be a valid URI. |

## A2A AgentCard metadata

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

duplicate section


Both fields are optional. When neither is set, botocore defaults apply and existing behavior is unchanged.

## Bedrock Guardrails

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

duplicate section

Signed-off-by: Rachael Graham <rachael.graham@solo.io>
Signed-off-by: Rachael Graham <rachael.graham@solo.io>
@Rachael-Graham
Rachael-Graham marked this pull request as ready for review September 18, 2026 16:18
@Rachael-Graham
Rachael-Graham merged commit 3f88551 into main Sep 18, 2026
6 checks passed
@Rachael-Graham
Rachael-Graham deleted the kagent-1-0-docs-flip branch September 18, 2026 20:59
Sign up for free to 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.

3 participants