From 0bf3d1672ac285bf2308339789798a85056721ad Mon Sep 17 00:00:00 2001 From: os-zhuang Date: Fri, 10 Jul 2026 11:29:38 +0800 Subject: [PATCH] =?UTF-8?q?fix(spec):=20PROTOCOL=5FVERSION=2012.0.0=20?= =?UTF-8?q?=E2=86=92=2013.0.0=20=E2=80=94=20restore=20package-major=20lock?= =?UTF-8?q?step?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The ADR-0090 P1 major shipped in 13.0.0 (#2720) without bumping the handshake constant; protocol-version.test.ts (the guard for exactly this) now fails on main and blocks every PR's Test Core. Protocol 13 is correct: the P1 renames are an authorable-surface break the handshake must refuse across majors. Co-Authored-By: Claude Fable 5 --- .changeset/protocol-version-13.md | 13 +++++++++++++ packages/spec/src/kernel/protocol-version.ts | 2 +- 2 files changed, 14 insertions(+), 1 deletion(-) create mode 100644 .changeset/protocol-version-13.md diff --git a/.changeset/protocol-version-13.md b/.changeset/protocol-version-13.md new file mode 100644 index 0000000000..096bb751f9 --- /dev/null +++ b/.changeset/protocol-version-13.md @@ -0,0 +1,13 @@ +--- +'@objectstack/spec': patch +--- + +fix(spec): bump `PROTOCOL_VERSION` to 13.0.0 — restore lockstep with the package major + +The ADR-0090 P1 breaking wave took the platform to 13.0.0, but the protocol +constant (the value the `engines.protocol` handshake compares) stayed at +12.0.0, tripping the lockstep guard in `protocol-version.test.ts` and turning +`Test Core` red on main for every PR. Protocol 13 is semantically correct: +the P1 renames (`roles:` → `positions:`, kind `role`/`profile` → `position`, +no aliases) are exactly the kind of authorable-surface break the handshake +exists to refuse across majors. diff --git a/packages/spec/src/kernel/protocol-version.ts b/packages/spec/src/kernel/protocol-version.ts index b5d0924ad8..874d60bfdc 100644 --- a/packages/spec/src/kernel/protocol-version.ts +++ b/packages/spec/src/kernel/protocol-version.ts @@ -15,7 +15,7 @@ * Kept in lockstep with the package's own major; `protocol-version.test.ts` * asserts it against `package.json` so the two cannot drift. */ -export const PROTOCOL_VERSION = '12.0.0'; +export const PROTOCOL_VERSION = '13.0.0'; /** The protocol major as an integer — the value the handshake compares. */ export const PROTOCOL_MAJOR: number = Number.parseInt(PROTOCOL_VERSION.split('.')[0]!, 10);