From fda18fcdf92cb81636184caa8b451fe3c11e3c67 Mon Sep 17 00:00:00 2001 From: Claude Date: Tue, 20 Oct 2026 01:58:09 +0000 Subject: [PATCH 1/2] chore(release): exit Changesets pre mode, so the next version pass renders 18.0.0 `.changeset/pre.json` as `pnpm changeset pre exit` (`@changesets/cli` 3.0.1) wrote it: `mode` goes from `pre` to `exit`, `tag` stays `next`, same 2-space JSON with a trailing newline. No `changeset version` output is committed. Claude-Session: https://claude.ai/code/session_01FM29ZqLTrnPNXxijioZwMp Co-authored-by: Claude --- .changeset/pre.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.changeset/pre.json b/.changeset/pre.json index d20efa9e7d..421211bc43 100644 --- a/.changeset/pre.json +++ b/.changeset/pre.json @@ -1,4 +1,4 @@ { - "mode": "pre", + "mode": "exit", "tag": "next" } From 9e3c1a14085d3c56d1b649ca197dfb5dd0fb04b4 Mon Sep 17 00:00:00 2001 From: Claude Date: Tue, 20 Oct 2026 02:18:19 +0000 Subject: [PATCH 2/2] test(release): compare the Version row's old literal as a whole token, so the 18.0.0 render validates `sync-quick-reference-release.test.ts` asserted the bumped doc does not contain the old version as a raw substring. With the fixed group at `18.0.0` that string is a prefix of the Spec and Client rows' `^18.0.0-next.1`, so the release lane's `pnpm test scripts/__tests__` went red on a correct rewrite of the GA render. The assertion now reads the doc's version literals with the shared `VERSION_LITERAL` and `normalize`, the tokens the gate compares, and still fails when the Version row keeps its old literal. Claude-Session: https://claude.ai/code/session_01FM29ZqLTrnPNXxijioZwMp Co-authored-by: Claude --- scripts/__tests__/sync-quick-reference-release.test.ts | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/scripts/__tests__/sync-quick-reference-release.test.ts b/scripts/__tests__/sync-quick-reference-release.test.ts index 082e389206..419277b54c 100644 --- a/scripts/__tests__/sync-quick-reference-release.test.ts +++ b/scripts/__tests__/sync-quick-reference-release.test.ts @@ -9,6 +9,7 @@ import { fileURLToPath } from 'node:url'; import { assignSlots, derivedLiteralsByRow, + normalize, readAnchors, syncDoc, VERSION_LITERAL, @@ -144,7 +145,12 @@ describe('a release bump carries the doc with it', () => { expect(result.refusals).toEqual([]); expect(result.changes).toEqual([{ label: 'Version', from: anchors.version, to: '99.9.9' }]); expect(result.doc).toContain(`- **Version:** 99.9.9 (the version every`); - expect(result.doc).not.toContain(anchors.version); + // Whole literals, never a raw substring, as the gate compares them. The + // group's version can be a prefix of another row's literal (the group at + // `18.0.0` beside a `^18.0.0-next.N` spec range), and a substring check then + // reddened the release lane's validation on a correct rewrite (objectui#13108). + const literals = [...result.doc.matchAll(VERSION_LITERAL)].map((match) => normalize(match[0])); + expect(literals).not.toContain(anchors.version); }); /**