Repository navigation
Commit 16ca320
docs(releases): the 18.2.0 release notes page and its upgrade checklist (#26494)
<!-- claude-projects-attribution: {"github_login":"os-steve"} -->
_Requested by **Steve** · [project
thread](https://claude.ai/code/project/chan_01FdL1XeUyvVNxLreh3F4Qi9?thread=cmsg_01FdL1XeUyvVNxLreh3F4Qi9Va7qPMfMa72DB4ApTSiCEi)_
Fixes #26429
Clause-②: no
Metadata-protocol: none
## 维护者速读
- 改了什么:新增 18.2.0 发布说明页 `content/docs/releases/v18/18-2.mdx`(1025 行,照
18-1 骨架),`meta.json` 在 `index` 后加 `18-2`,`v18/index.mdx`
加一行链接;`handwritten-docs.json` 按门禁要求登记新页。
- 为什么改:18.2.0 要有这页。版本提交 `27f38ada49`(#25640)消费的 231 条 changeset
全部按发布脚本的五节分组列出,一条不丢;每条需手动处理的条目写明读者要做什么。
- 风险与回滚:纯文档,不发包(skip-changeset)。回滚就是 revert 这个 PR。
- 先看:页首「How this page was compiled」与五节标题、`## Release facts, as measured`
表(版本提交 `27f38ada49`、发布日期 2026-10-27 已填)、`## Upgrade checklist`。
- 两分钟验证:五节条目数 52 / 7 / 41 / 3 / 128,与 `classifyReleaseBullet` 对版本提交所消费
changeset 的分组逐条一致;版本提交写出的 111 份 CHANGELOG 里 231 条去重条目,用同一函数分组,与页面 0
条不一致。
- 需要你做的:无。版本 PR 开着期间合入的 4 条 changeset(含导航分组默认展开 #26427)不在 18.2.0
里,留给下个版本。
## What changes
- **`content/docs/releases/v18/18-2.mdx` (new).** The 18.2.0 page on the
18-1 skeleton: the compile callout with the counts, Highlights, Release
facts (version commit `27f38ada49`, published 2026-10-27), the
version-level table, the five sections under the headings and order
`scripts/release-github-releases.mjs` uses (需手动处理 / 自动迁移 / 新增能力 / 语义变化 /
其他修复), a Console (Studio) section on the objectui import (#25752, PR
#25825), the `.objectui-sha` retirement and `pnpm console:build`, and an
18.1.0 → 18.2.0 upgrade checklist marked as compiled, not walked.
- Every one of the 231 changesets the version commit consumed is cited
once, as `` (`sha7`, #PR) ``, under the section the script places it in.
- Every 需手动处理 entry ends with what the reader does. Every 自动迁移 entry
names its ADR-0087 ids and says what `os migrate meta` does and what is
left.
- **`content/docs/releases/v18/meta.json`.** `18-2` after `index`.
- **`content/docs/releases/v18/index.mdx`.** One Per-release notes line
for 18.2.0, above 18.1.0.
- **`scripts/docs-audit/handwritten-docs.json`.** One line, written by
`node scripts/docs-audit/check-audit-scope.mjs --write`:
`check:docs-audit-scope` refuses a hand-written page the list does not
hold. Not named by the claim; declared as a deviation in the report.
Nothing else is touched: no other release page, no changeset, no
CHANGELOG, no GitHub Release body, nothing under `ui/`.
## Why
#26429: the 18.2.0 cut needs its curated page
(docs/releases-maintenance.md §3), grouped the way the GitHub Release
body groups the same entries, so that a reader of this page alone can
upgrade.
## Verification
- **Counts, at the version commit.** `27f38ada49` (#25640) deletes 231
changesets from `.changeset/`. All 231 were added after
`@objectstack/cli@18.1.0`, and each was classified with the script's own
`classifyReleaseBullet`: 需手动处理 52, 自动迁移 7, 新增能力 41, 语义变化 3, 其他修复 128. 59
are breaking (15 graded `minor`, 44 `patch`); none is `major`. Four
changesets merged to `main` while the version pull request was open, and
are not in 18.2.0: `26370-nav-group-expanded-default-open` (#26427,
which earlier heads of this PR listed under 自动迁移),
`25235-missed-scheduled-run` (#26485),
`26425-import-row-every-cell-error` (#26454) and
`26329-copy-button-focus-reveal` (#26487). The page names them as
pending and lists none of them.
- **The page against the script.** A counter reads the citations inside
each of the five sections and compares them, as a multiset of `sha7#PR`,
with the classification: `manual 52/52, migrated 7/7, added 41/41,
semantic 3/3, other 128/128`, nothing missing and nothing extra. Before
the citations were complete it went red, naming each missing entry.
- **The real CHANGELOGs.** The version commit wrote an `## 18.2.0`
section into 111 CHANGELOGs (110 published packages and the private VS
Code extension). Their distinct entries are the 231 changesets plus the
`Updated dependencies` family, and the script's functions
(`getChangelogEntry`, `splitChangelogEntry`, `classifyReleaseBullet`)
place them 52 / 7 / 41 / 3 / 128, the page's counts. Before the cut, a
rehearsed `pnpm run version` in a throwaway clone had matched the page
the same way.
- **Drift guard.** Every inline-code name and `/api/v1/…` route on the
page was looked up in `packages/`, `ui/`, `apps/`, `examples/`,
`scripts/` and `skills/` on HEAD (release pages, CHANGELOGs and
`.changeset/` excluded): 456 names, 5 not found, each on purpose: four
retired names the page lists as removed
(`DeclaredDependencyCheck.deliveredIds`, `PASSWORD_TOO_LONG`,
`notNullRefusalSite`, `relabelNotNullRefusal`) and the objectui commit
`b41ed7f68956`. Every ADR-0087 and lint rule id the page names was found
in `packages/`.
- **Gates.** On head `4d57c59923`, `node scripts/pm/dispatch-gates.mjs
--commands` derived 60 commands. Each ran with its exit code captured
before any pipe: 60 exit 0, and `--ran` reconciled 60 derived, 60 run, 0
NOT-MEASURED (a derived zero). Earlier heads: `f2f5a1711e` 60 of 60 exit
0, `a4c9a49572` 62 of 62. Reds met on the way: `check:role-word` (the
page used the reserved word five times; reworded, no baseline change)
and `check:docs-audit-scope` (the hand-written list did not hold the
page; written by its `--write`). Gates that first exited 3, or read a
stale schema after the merge, passed once `formula`, `lint`, `spec`,
`client` and `client-react` were built and the spec schema regenerated.
- **Docs build.** `pnpm --filter docs build` exited 0. The built
`releases/v18/18-2.html` carries the five section ids, `console` and
`upgrade-checklist`, and the v18 index page links
`/docs/releases/v18/18-2` and its `#upgrade-checklist`.
`check:doc-anchors` is green. The page links no external URL; lychee was
not run.
## Human Minimum
- [x] 1. Schemas start as Zod; `packages/spec` holds no runtime logic.
(Not touched.)
- [x] 2. Every name I added uses the casing for its kind. (No code names
added.)
- [x] 3. No formatter ran; `pnpm lint` passes.
- [x] 4. One issue, one branch off an up-to-date `main`, one pull
request.
- [x] 5. A change that publishes carries a changeset, and both
declaration lines are filled in here and in the changeset. (Publishes
nothing: `skip-changeset`.)
- [x] 6. `packages/spec` touched: its generated artifacts are
regenerated and committed. (Not touched.)
- [ ] 7. No hand edits to `content/docs/releases/`. Not ticked: writing
the curated `v18/18-2.mdx` page and its two navigation lines is what
#26429 asks for, and docs/releases-maintenance.md §3 names that page as
the hand-curated layer. No generated file under it is edited.
- [x] 8. Title, body and comments are in English. (Except the 维护者速读
block the dispatch order asks for.)
- [x] The *Before Submitting* list in CONTRIBUTING.md is done.
---
_Generated by [Claude
Code](https://claude.ai/code/session_01ADHkmNukkSDNQzLfynSUVv)_
---------
Co-authored-by: Claude <noreply@anthropic.com>1 parent f515124 commit 16ca320
4 files changed
Lines changed: 1033 additions & 0 deletions
0 commit comments