[AAASM-3753] ✨ (aggregate): Mirror core & go-sdk archived versions into hub switcher#42
Conversation
build_core now rebuilds every release git tag's mdBook into /core/<tag>/ (one worktree per tag) and computes /core/versions.json via the core repo's own docs/ci/build_versions.py — archived[] seeded from the rebuilt tags (git as source of truth), moving pre-release/stable channels seeded from the live deployed manifest. The hub core switcher now lists the full version set, not just latest. No core repo deploy change required (AAASM-3753). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Cc1vBBiNxp9qLKQ5Gq85w8
build_go now recomputes website/data/versions.toml from git tags (replicating docs-site.yml via the repo's versions_channels.py) before running the repo's build_all_versions.sh, so every archived tag is materialised under /go-sdk/<tag>/ and the build-time-baked version dropdown lists the full set. git tags are the source of truth; no go-sdk repo deploy change required (AAASM-3753). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Cc1vBBiNxp9qLKQ5Gq85w8
Assert at least one /<tag>/ snapshot under core/ and go-sdk/ so a regression that drops the per-tag rebuild fails the build. Scope the Pagefind index to each module's default channel by moving the archived version dirs aside during indexing and restoring them after (via an EXIT trap), so search no longer returns N near-duplicate hits per page across the full version set (AAASM-3753). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Cc1vBBiNxp9qLKQ5Gq85w8
Update the core and go-sdk registry entries to describe the per-tag rebuild + manifest-recompute build strategy that now publishes the full archived version set under each /<module>/ (AAASM-3753). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Cc1vBBiNxp9qLKQ5Gq85w8
Update AGGREGATION.md: core & go-sdk now mirror python's full version breadth (git tags as source of truth, no per-repo deploy change), the verify step asserts the archived sets, and Pagefind is scoped to each module's default channel. Replaces the prior "default channel only" follow-up note (AAASM-3753). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Cc1vBBiNxp9qLKQ5Gq85w8
🔎 Claude Code review — hub archived-version mirroring (AAASM-3753)CI: Green. Scope vs AAASM-3753: Matches exactly. Full archived set via aggregator-only rebuild-from-tags (no per-repo deploy change) — core 13 tags + latest/pre-release/stable via the repo Side-effects / regression: NONE to existing hub behavior — all additive/scoped.
Readiness: Ready to approve & merge. |
|



Description
Make the docs-hub version switcher list the full archived version set for core (agent-assembly mdBook) and go-sdk (Hugo) — matching python-sdk's full breadth. Previously the hub listed only the
latestchannel for core/go while python listed its entire history.Source/approach chosen: rebuild from git tags in the aggregator (Option C-style logic, aggregator-only — no per-repo deploy change). Neither core nor go-sdk has a persistent
gh-pagesbranch (only python does), so Option A is impossible. Option B (mirror the live deployed Pages site) was rejected as fragile — the core deploy itself abandoned live-site mirroring (wget -r) in AAASM-2827 because it silently lost versions, switching to "git is the source of truth". So the hub now does exactly what each module's deploy job does:build_core): rebuild everyv*.*.*git tag's mdBook into/core/<tag>/(worktree per tag), then compute/core/versions.jsonvia the core repo's owndocs/ci/build_versions.py—archived[]seeded from the rebuilt tags (self-healing from git), movingpre-release/stablepointers seeded from the live deployed manifest.build_go): recomputewebsite/data/versions.tomlfrom git tags (replicatingdocs-site.ymlvia the repo's ownversions_channels.py) beforebuild_all_versions.sh, so the build-time-baked Hugo dropdown lists every/go-sdk/<tag>/.EXITtrap) to avoid N near-duplicate hits per page./<tag>/snapshot under bothcore/andgo-sdk/.No per-repo PR was needed — the hub reuses each repo's existing build scripts.
Type of Change
Related Issues
Closes AAASM-3753
How to verify
Ran
bash docs/scripts/aggregate.shlocally (all toolchains present). Results:v0.0.1-alpha.1…beta.4) +latest;versions.jsonarchived[] = all 13.v0.0.1-alpha.1…beta.3) +latest+pre-release.versions.json) lists latest + pre-release + all 13 tags; the go-sdk switcher (baked) lists latest + pre-release + all 8 tags; all 23 archived links resolve 200 (zero 404s). node/python switchers + hub landing unaffected.Documentation Checklist
aggregate.shbuild passes locally with no errorsdocs/src/SUMMARY.md(n/a — aggregation script + contract docs, no new hub page)🤖 Generated with Claude Code
https://claude.ai/code/session_01Cc1vBBiNxp9qLKQ5Gq85w8