From 898ccc280a029c502159bdacf387fd8aff24b9a5 Mon Sep 17 00:00:00 2001 From: Claude Date: Sat, 1 Aug 2026 16:09:05 +0000 Subject: [PATCH 1/2] chore(spec): regenerate the api-surface baseline for the percent-scale exports MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit `check:api-surface` is a snapshot gate: every export reachable from a `@objectstack/spec` entry point is listed in `api-surface.json`, and the check fails when the built surface and the committed list disagree — in either direction. It is what makes an unintended public-API change impossible to land silently. The percent-scale work added four exports to `./data` — `PercentScale`, `PercentScaleFieldMeta`, `percentScaleOf` and `emptyGroupValueFor` — without refreshing the baseline, so the gate reported them as 4 unrecorded additions and failed the TypeScript Type Check job. They are additions, deliberately: `percentScaleOf` is the answer-in-one-place the service reads, and the renderer half of objectui#3136 consumes the annotation it produces. Nothing was removed or narrowed, so this is not a breaking surface change. Regenerated with `pnpm --filter @objectstack/spec gen:api-surface`; the diff is exactly those four lines. `api-surface-signatures.json` is untouched — no factory signature moved. Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_01S9TVFwXGsXqR3SD5e2qAU8 --- packages/spec/api-surface.json | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/packages/spec/api-surface.json b/packages/spec/api-surface.json index c24fc55e53..47971d0d1a 100644 --- a/packages/spec/api-surface.json +++ b/packages/spec/api-surface.json @@ -473,6 +473,8 @@ "PaginationConformanceRow (interface)", "PerOperationRequiredPermissions (type)", "PerOperationRequiredPermissionsSchema (const)", + "PercentScale (type)", + "PercentScaleFieldMeta (interface)", "PoolConfig (type)", "PoolConfigSchema (const)", "ProvisionPrimaryOptions (interface)", @@ -612,6 +614,7 @@ "deriveRecordFlowSurface (function)", "deriveRecordSurface (function)", "effectiveOperationsArray (function)", + "emptyGroupValueFor (function)", "fieldForm (const)", "foldQueryAliasSlots (function)", "formatUnknownAuthoringKey (function)", @@ -641,6 +644,7 @@ "parseAutonumberFormat (function)", "parseDateMacroParam (function)", "parseFilterAST (function)", + "percentScaleOf (function)", "provisionPrimary (function)", "referencedFields (function)", "renderAutonumber (function)", From 0a395efda6d8e49501630226d526c396a35b9cfa Mon Sep 17 00:00:00 2001 From: Claude Date: Sat, 1 Aug 2026 16:16:03 +0000 Subject: [PATCH 2/2] chore: declare an empty changeset for the api-surface baseline regen MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The changeset gate requires every PR to add a `.changeset/*.md`, counted by diffing against the PR base rather than globbing the directory — in RC pre-mode `changeset version` retains consumed files, so a global count can never go red. This PR added none and the gate failed, correctly. An empty-frontmatter changeset is the sanctioned "this PR releases nothing" declaration, and that is the honest answer here. `api-surface.json` is a build-time snapshot the `check:api-surface` gate diffs against, not shipped code — regenerating it changes no runtime behavior and publishes no new API. The four exports it now records already ship under the percent-scale changeset on the base branch, so declaring a bump here would double-count that same release. `check-changeset-no-major.mjs` is satisfied for the same reason: an empty changeset declares no bumps at all, least of all a `major`. Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_01S9TVFwXGsXqR3SD5e2qAU8 --- .changeset/spec-api-surface-baseline-percent-scale.md | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 .changeset/spec-api-surface-baseline-percent-scale.md diff --git a/.changeset/spec-api-surface-baseline-percent-scale.md b/.changeset/spec-api-surface-baseline-percent-scale.md new file mode 100644 index 0000000000..1b07342ca6 --- /dev/null +++ b/.changeset/spec-api-surface-baseline-percent-scale.md @@ -0,0 +1,11 @@ +--- +--- + +Regenerates `packages/spec/api-surface.json` so the committed baseline records the +four `./data` exports the percent-scale chain adds — `PercentScale`, +`PercentScaleFieldMeta`, `percentScaleOf` and `emptyGroupValueFor`. + +Deliberately empty: this releases nothing. `api-surface.json` is a build-time +snapshot the `check:api-surface` gate diffs against, not shipped code, and the +exports it now records are already described by the changeset for the change that +introduced them. Declaring a bump here would double-count that release.