6 Commits

Author SHA1 Message Date
Shutong Wu 7c553f195e fix(ci): narrow Docs — Sync Release Notes to release events only
PR #1157 review surfaced that the drift-check job was failing on
outsider PRs that touched README.md for unrelated reasons (citation
tweaks, link fixes). The path filter caught any README edit even when
the recent-updates block wasn't touched, and the failure couldn't be
fixed by the PR author since they didn't have push access to commit
a regen.

Real-world reasoning: release notes can only legitimately go stale
when a release event occurs. PRs cannot introduce drift the workflow
needs to "catch" — and a drift-check that an outsider can't fix is
hostile to contributions.

Changes:
- Drop the `pull_request` trigger entirely (was only there to feed the
  now-removed drift-check job).
- Drop the daily `schedule` cron. UI edits to release bodies are
  caught by the `release.edited` event already; falling back to a
  cron added mystery commits unattached to a release.
- Drop the `drift-check` job. Nothing left needs to gate on PRs.
- Keep `release.{published,edited,unpublished,deleted}` as the
  canonical trigger, and `workflow_dispatch` as the manual hatch.
- Updated /contributing/docs page to match, with an explicit
  paragraph on why PRs are NOT a trigger here.
2026-05-25 03:10:02 +08:00
Shutong Wu 033c873e13 docs: flip docs site back to CoplayDev hosting
Pages is now enabled on CoplayDev/unity-mcp, so the canonical preview
URL is back to https://coplaydev.github.io/unity-mcp/.

- docusaurus.config.js: url + organizationName back to CoplayDev
- docs-deploy.yml: deploy condition narrowed back to push-to-beta only
  (drops the temporary docs/v2-wiki-refresh trigger)
- README.md, website/README.md, website/static/robots.txt,
  website/docs/contributing/docs.md: hardcoded scriptwonder URLs swept
  back to coplaydev, and the temporary "Scriptwonder fork preview" /
  "flips back to coplaydev" prose removed

Next deploy of the live site happens when this lands on upstream/beta
(via PR merge) and triggers the existing workflow.
2026-05-25 02:32:29 +08:00
Shutong Wu 11025128e1 docs: simplify citation + host preview on Scriptwonder fork
Citation: trimmed to bibtex only — the paper info paragraph and APA
plain-text citation were nice-to-have but added vertical noise. The
bibtex carries enough metadata for both code search and academic use.

Hosting move (Scriptwonder fork preview):
- docusaurus.config.js: url + organizationName flipped to Scriptwonder
- docs-deploy.yml: deploy on push to `docs/v2-wiki-refresh` OR `beta`
  (Setup Pages, Upload artifact, Deploy job conditions all updated).
  Lets the live preview at scriptwonder.github.io/unity-mcp update as
  we iterate, without waiting for an upstream maintainer to enable
  Pages on CoplayDev/unity-mcp.
- Hardcoded URLs in README.md, website/README.md, website/static/
  robots.txt swapped from coplaydev.github.io/unity-mcp to
  scriptwonder.github.io/unity-mcp via a one-shot sed.
- docs.md + website/README.md retain a one-line note about flipping
  back to coplaydev once upstream Pages is enabled.

After push, to make the preview actually serve:
- Settings → Pages → Source → "GitHub Actions"
  on https://github.com/Scriptwonder/unity-mcp/settings/pages
The deploy job in the next push will then provision Pages on first run.
2026-05-25 02:20:54 +08:00
Shutong Wu 88a713b65b docs(release-sync): pull real release notes + automate going forward
Problem: website/docs/releases.md and the README's "Recent Updates"
block had drifted badly. README claimed v9.6.3 was the latest; the
actual latest is v9.7.0 (and there are 60 releases on record going
back to v4.0.0).

Solution:
- tools/sync_release_notes.py: pulls every non-draft release from the
  GitHub Releases API and renders both files. Uses `gh api` when
  available (handles auth + TLS cleanly), falls back to urllib +
  certifi when not. Supports --check for CI drift detection.

- README.md: gets a sentinel-bracketed `<!-- recent-updates:start -->
  ... <!-- recent-updates:end -->` block the script regenerates
  surgically — never touches the surrounding content. Latest 5
  releases with tag, date, link.

- website/docs/releases.md: full 60-release history, grouped by minor
  version, each release body inside a collapsible `<details>` block.
  Now shows the real v9.7.0 → v4.0.0 span.

- .github/workflows/sync-releases.yml: triggers the sync on every
  release event (published/edited/unpublished/deleted), daily at
  11:00 UTC (catches out-of-band edits), and on workflow_dispatch.
  Commits directly to beta with [skip ci]. PRs run --check only.

- /contributing/docs page: new "Release notes sync" section
  documenting the do-not-edit contract for releases.md and the
  recent-updates block, plus the manual sync commands.

Verified: sync ran end-to-end via `gh api`, renders 60 releases into
1304 lines of releases.md + 5 entries in the README block. npm run
build passes.
2026-05-24 19:17:04 +08:00
Shutong Wu d131735a74 docs(website): M6 polish — fetch-depth, robots.txt, first-deploy doc
- docs-deploy.yml: actions/checkout with fetch-depth: 0 so Docusaurus's
  showLastUpdateTime / showLastUpdateAuthor resolves real per-file
  commit metadata. Shallow clones make every page report the latest
  build commit, which is useless to readers.
- website/static/robots.txt: allow-all crawlers + sitemap reference.
  Required by Algolia DocSearch's crawler when the application gets
  approved; harmless before then.
- /contributing/docs page: new sections covering first-time GitHub
  Pages enablement (Settings → Pages → Source: GitHub Actions) and
  the custom-domain CNAME path. Maintainers reading this would
  otherwise hit a 404 on first deploy and not know why.

Verified:
- npm run build succeeds (Server 935ms, Client 1.8s)
- sitemap.xml lists all 80+ URLs
- robots.txt copies to build/ correctly
2026-05-24 18:12:48 +08:00
Shutong Wu 6c305d43db docs(website): net-new guides + architecture + contributing pages (M4)
9 hand-written pages flagged NEW in the locked IA. All wired into
sidebars.js and verified by `npm run build`.

Getting Started:
- first-prompt.md: end-to-end "build a red cube" walkthrough with the
  exact MCP tool chain the assistant should call, common failure modes,
  and escalating prompts that exercise other groups.
- clients.md: capability matrix across all 12 supported MCP clients
  (transport, auto-config, streaming, free tier, per-client toggles).

Guides:
- multi-instance.md: set_active_instance semantics — Name@hash, hash
  prefix, port shorthand; HTTP vs stdio isolation; per-call unity_instance
  routing for cross-project prompts.
- tool-groups.md: the 9 groups, how manage_tools(activate/deactivate/
  list_groups/sync/reset) works, why per-session visibility exists
  (prompt economy, routing clarity, package hygiene), server vs session
  state reconciliation.

Architecture:
- transports.md: HTTP vs stdio decision matrix, the architecture of each,
  what instance routing semantics each gives you, network security guards
  (loopback by default, LAN/remote opt-in).
- python-layers.md: the three Python surfaces (MCP tools, CLI commands,
  resources), why they're hand-maintained instead of auto-generated,
  domain symmetry rule.
- unity-compat.md: the four active shims, when to add a new shim, what
  doesn't belong in a shim, static-dispatch vs reflection patterns,
  link to the canonical UnityCompatShims.cs marker class.

Contributing:
- testing.md: Python pytest, Unity EditMode/PlayMode, multi-version
  compile matrix, pre-push/pre-commit hooks, stress scripts, CI surface.
- docs.md: hand-written vs auto-generated split, examples block
  preservation rule, slug discipline (brand-neutral), redirect protocol
  for slug renames, CommonMark vs MDX.

sidebars.js: uncommented the NEW entries; left reference/cli and
reference/manifest TODOs in place for a follow-up.

Verified:
- npm run build succeeds (Client 2.4s, Server 1.1s) with no errors
2026-05-24 17:55:01 +08:00