fix(wcm): redirect /wcm/ to the single WCM home - #55
Merged
Conversation
agentrust-io.com/wcm/ and wcm.agentrust-io.com were two different homepages for one project. Both returned 200, both were indexable, both set canonical to themselves, and they disagreed: this page pinned SDK 0.27.0 from a proof.json captured on 2026-09-07, while the docs site was on 0.28.1. This page existed because the WCM repository was private and GitHub Pages cannot publish a private repo on the free plan, so wcm.agentrust-io.com was a Cloudflare 307 to here. The repo went public and that rule is gone, so the subdomain now serves the project's own MkDocs site and this address had nothing left to be. wcm.agentrust-io.com is the home. This file becomes a redirect: canonical, instant meta refresh, and location.replace() so Back does not bounce, with a visible link if both are blocked. The launch page's content moved to the docs home in weight-custody-manifest, which is where it can stay accurate. og-launch.png stays in this directory and og:image still points at it, so cards already shared against agentrust-io.com/wcm/og-launch.png keep resolving. og:url and canonical point at the docs home, so a share of either address resolves to one card. Repointed everything that linked through the hop: supernav.js (WCM now targets its own host like every other subdomain; the /wcm path branch stays so the stub highlights correctly for the instant it is on screen), llms.txt in two places, and sitemap.xml, which should not advertise a redirecting URL. The sitemap edit agrees with build-discovery.py --check, because that generator reads canonical and this page's canonical is now off-site. launch-page.test.js becomes redirect.test.js: it asserts the three ways out, a single off-site canonical, that og-launch.png stays, and a 6KB ceiling so content cannot quietly grow back here. The SDK numbers it used to gate are gated in weight-custody-manifest now, by a test that counts the actual conformance vectors; proof.json could not see that repo, which is why it went stale. check-site, check-dashes, build-discovery --check, check-discovery and marketplace tests pass locally. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0193nB52LNx2WqtFRMf7PFYJ
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
agentrust-io.com/wcm/andwcm.agentrust-io.comwere two different homepages for one project. Both returned 200, both were indexable, both setcanonicalto themselves, and they disagreed: this page pinned SDK 0.27.0 from aproof.jsoncaptured 2026-09-07, while the docs site was on 0.28.1.This page existed because the WCM repository was private and GitHub Pages cannot publish a private repo on the free plan, so
wcm.agentrust-io.comwas a Cloudflare 307 pointing here. The repo went public, that rule is gone, the subdomain now serves the project's own MkDocs site, and this address had nothing left to be.Pairs with agentrust-io/weight-custody-manifest#118, which folds this page's content into the docs home so nothing is lost.
What changed
wcm/index.htmlbecomes a redirect tohttps://wcm.agentrust-io.com/:canonical, an instantmeta refresh, andlocation.replace()so Back does not bounce the reader, plus a visible link if both are blocked.Cards keep working.
og-launch.pngstays in this directory andog:imagestill points at it, so cards already shared againstagentrust-io.com/wcm/og-launch.pngkeep resolving.og:urlandcanonicalpoint at the docs home, so a share of either address resolves to one card.Nothing links through the hop any more:
supernav.jstargetswcm.agentrust-io.comlike every other subdomain. The/wcmpath branch stays, so the stub highlights WCM correctly for the instant it is on screen.llms.txt, two links.sitemap.xml, which should not advertise a redirecting URL. This edit agrees withbuild-discovery.py --check, because that generator readscanonicaland this page's canonical is now off-site.launch-page.test.jsbecomesredirect.test.js(workflow renamed to match). It asserts the three ways out, exactly one off-site canonical, thatog-launch.pngstays put, and a 6KB ceiling so content cannot quietly grow back here. The SDK numbers it used to gate are now gated inweight-custody-manifestby a test that counts the actual conformance vectors;proof.jsoncould not see that repo, which is why it went stale.Verification
Run locally, all passing:
check-site.py(41 pages, 598 local links, valid JSON-LD),check-dashes.js,build-discovery.py --check,check-discovery.py,marketplace.test.js, and the newwcm/redirect.test.js.check-quickstart.pyfails on this Windows machine on a POSIXvenv/bin/activatepath. It is unrelated to this change and runs on Ubuntu in CI.Note
supernav.jsis served with no cache buster, so verify the nav change with a hard reload. A normal reload shows the stale copy and reads as a failed deploy.🤖 Generated with Claude Code
https://claude.ai/code/session_0193nB52LNx2WqtFRMf7PFYJ