Skip to content

[Chore] Generate release docs on zoo-stable-release dispatch - #64

Draft
zoomote[bot] wants to merge 1 commit into
mainfrom
feature/docs-release-automation-2f280h58bf2o3
Draft

zoomote[bot] wants to merge 1 commit into
mainfrom
feature/docs-release-automation-2f280h58bf2o3

Conversation

@zoomote

@zoomote zoomote Bot commented Oct 3, 2026

Copy link
Copy Markdown

​Created by Roomote. Follow up by mentioning @roomote, in the web UI, or in Discord.

What changed

Adds the receiver side of the docs-release automation:

  • .github/workflows/zoo-stable-release.yml — triggers on repository_dispatch (types: [zoo-stable-release]) sent by Zoo-Code after a stable publish. It validates the payload, runs pnpm docs:release, then typecheck + lint + unused-import lint + full Docusaurus build, and — on success — commits the generated release docs to main with the same-repo GITHUB_TOKEN. The push to main is what publishes to docs.zoocode.dev through the existing deployment pipeline. Concurrency is keyed on the release tag so duplicate dispatches queue instead of racing.
  • scripts/docs-release.mjs (new pnpm docs:release script) — a deterministic, dependency-free generator that:
    • creates docs/update-notes/vX.Y.Z.mdx if missing (existing pages are never rewritten — human enrichment lands in reviewed PRs),
    • inserts the release into docs/update-notes/index.md and the "Extension Release Notes" category in sidebars.ts, newest-first (single-line sidebar categories are normalized to multi-line first),
    • syncs package.json version to the extension version, never downgrading,
    • is idempotent: re-running with the same payload produces no changes, so dispatch retries are safe.

Why this change was made

Publishing a stable extension currently requires manual release-notes bookkeeping in this repo. The Zoo-Code publisher now dispatches version, tag, source_sha, release_url (and the extracted changelog section as changes) so the mechanical parts happen automatically and consistently.

Impact

No change to existing docs content or site behavior today; the new workflow only runs on the dispatch event. Evergreen docs and enriched prose are intentionally not auto-rewritten — the automation is limited to the deterministic release-notes/index/version updates, and the generated notes page carries a comment directing enrichment edits to reviewed PRs. If branch protection blocks direct pushes to main, the final workflow step should be switched to an auto-merge PR flow (noted in a workflow comment).

Validation: pnpm run check-types, pnpm run lint, pnpm run lint:unused, and pnpm run build all pass. The generator was dry-run end-to-end against a scratch copy of this repo (new minor, patch into existing category, older-minor insertion, no-downgrade, idempotent re-run) with the resulting site passing tsc --noEmit and a full Docusaurus build; both workflow files pass actionlint.

Related PRs

This branch has not been deployed

No deployments
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.

1 participant