Skip to content

Commit bf4f987

Browse files
committed
chore(deps): lockstep the @objectstack family onto 17.0.0-rc.1
#3178 bumped only @objectstack/spec to 17.0.0-rc.1. client/core/formula/lint depend on spec at an EXACT version, so main resolved two spec copies: objectui code saw rc.1 while every @objectstack/* package saw rc.0 from its own nested node_modules. That breaks the single-contract invariant the repo's guards rely on: spec-subschema-parity.test.ts distinguishes re-export from fork by reference identity, and check-spec-symbol-derivation.mjs / spec-symbol-parity.test.ts resolve spec's .d.ts via createRequire — with two copies, which one they see depends on resolution order. Raise the remaining ^17.0.0-rc.0 ranges to ^17.0.0-rc.1 so the floor is explicit. The rc.1 family members pin spec at 17.0.0-rc.1 exactly, so the graph converges on one copy by construction. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_012C2cd7tL8QDoZ2QKN3djJ5
1 parent b200720 commit bf4f987

7 files changed

Lines changed: 88 additions & 58 deletions

File tree

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
---
2+
"@object-ui/app-shell": minor
3+
"@object-ui/core": minor
4+
"@object-ui/data-objectstack": minor
5+
"@object-ui/console": minor
6+
---
7+
8+
Bring the whole `@objectstack` family to `17.0.0-rc.1`, so the dependency graph resolves a
9+
single copy of `@objectstack/spec`.
10+
11+
#3178 bumped **only** `@objectstack/spec` to `17.0.0-rc.1`. The rest of the family —
12+
`client`, `core`, `formula`, `lint` (and `sdui-parser`, reached through `lint`) — stayed on
13+
`17.0.0-rc.0`, and each of them depends on spec at an **exact** version rather than a
14+
caret:
15+
16+
```
17+
@objectstack/client@17.0.0-rc.0 -> spec "17.0.0-rc.0"
18+
@objectstack/core@17.0.0-rc.0 -> spec "17.0.0-rc.0"
19+
@objectstack/formula@17.0.0-rc.0 -> spec "17.0.0-rc.0"
20+
@objectstack/lint@17.0.0-rc.0 -> spec "17.0.0-rc.0"
21+
```
22+
23+
So `main` carried **two** spec copies: objectui's own code read `17.0.0-rc.1` while every
24+
`@objectstack/*` package read `17.0.0-rc.0` from its own nested `node_modules`. That breaks
25+
the single-contract invariant this repo's guards are built on, and it breaks them
26+
*silently* — the affected checks depend on identity, not on version strings:
27+
28+
- `spec-subschema-parity.test.ts` distinguishes a genuine re-export from a fork by
29+
**reference identity** of the zod schema object. Two spec copies make every schema a
30+
distinct object, so a real re-export starts reading as a fork (or a fork slips through,
31+
depending on which copy each side resolved).
32+
- `scripts/check-spec-symbol-derivation.mjs` and `spec-symbol-parity.test.ts` use
33+
`createRequire` to resolve spec's `.d.ts` and run it through the TS checker. With two
34+
copies installed, *which* declaration file the checker sees is a function of resolution
35+
order rather than of intent.
36+
37+
The declared ranges were already `^17.0.0-rc.0`, which technically admits rc.1 — the pin
38+
lived in the lockfile. Raising the remaining ranges to `^17.0.0-rc.1` makes the floor
39+
explicit and forbids a future install from silently sliding back onto a family member that
40+
drags rc.0 along with it. The rc.1 family members pin spec at `17.0.0-rc.1` exactly, so the
41+
graph now converges on one copy by construction, not by luck.
42+
43+
No product behaviour changes here. `check:spec-symbols` reconciliation was already
44+
completed by #3178 and stays green under the unified graph; this changeset is `minor`
45+
per the repo's fixed-group version policy.

apps/console/package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -89,8 +89,8 @@
8989
"@object-ui/providers": "workspace:*",
9090
"@object-ui/react": "workspace:*",
9191
"@object-ui/types": "workspace:*",
92-
"@objectstack/client": "^17.0.0-rc.0",
93-
"@objectstack/spec": "^17.0.0-rc.0",
92+
"@objectstack/client": "^17.0.0-rc.1",
93+
"@objectstack/spec": "^17.0.0-rc.1",
9494
"@tailwindcss/postcss": "^4.3.3",
9595
"@tailwindcss/typography": "^0.5.20",
9696
"@testing-library/jest-dom": "^7.0.0",

apps/site/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@
3232
"@object-ui/plugin-view": "workspace:*",
3333
"@object-ui/react": "workspace:*",
3434
"@object-ui/types": "workspace:*",
35-
"@objectstack/spec": "^17.0.0-rc.0",
35+
"@objectstack/spec": "^17.0.0-rc.1",
3636
"fumadocs-core": "16.13.0",
3737
"fumadocs-mdx": "15.2.0",
3838
"fumadocs-ui": "16.13.0",

packages/app-shell/package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,8 +48,8 @@
4848
"@object-ui/providers": "workspace:*",
4949
"@object-ui/react": "workspace:*",
5050
"@object-ui/types": "workspace:*",
51-
"@objectstack/formula": "^17.0.0-rc.0",
52-
"@objectstack/lint": "^17.0.0-rc.0",
51+
"@objectstack/formula": "^17.0.0-rc.1",
52+
"@objectstack/lint": "^17.0.0-rc.1",
5353
"@objectstack/spec": "^17.0.0-rc.1",
5454
"@sentry/react": "^10.68.0",
5555
"jsonc-parser": "^3.3.1",

packages/core/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@
3232
},
3333
"dependencies": {
3434
"@object-ui/types": "workspace:*",
35-
"@objectstack/formula": "^17.0.0-rc.0",
35+
"@objectstack/formula": "^17.0.0-rc.1",
3636
"@objectstack/spec": "^17.0.0-rc.1",
3737
"lodash": "^4.18.1",
3838
"zod": "^4.4.3"

packages/data-objectstack/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@
3232
"dependencies": {
3333
"@object-ui/core": "workspace:*",
3434
"@object-ui/types": "workspace:*",
35-
"@objectstack/client": "^17.0.0-rc.0"
35+
"@objectstack/client": "^17.0.0-rc.1"
3636
},
3737
"devDependencies": {
3838
"@objectstack/spec": "^17.0.0-rc.1",

pnpm-lock.yaml

Lines changed: 36 additions & 51 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)