Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions .changeset/platform-pin-core.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
---
"@effex/platform": patch
---

Pin `@effex/core` exactly instead of via a caret range. `@effex/platform`'s source used `"@effex/core": "workspace:^"`, which publishes as `^X.Y.Z` — a range. `@effex/dom`, `@effex/router`, and `@effex/form` all use `"workspace:*"` which publishes as the exact current version. The mismatch meant projects installing both `@effex/dom` and `@effex/platform` could end up with two different `@effex/core` copies in `node_modules` when pnpm couldn't hoist to a single satisfying version — and two copies means Effect Context tags (Signal, Readable, ControlCtx, etc.) declared in one copy don't unify with the other, so cross-package interactions break silently.

Switched to `"workspace:*"`. Now every core bump forces a platform patch bump, which was already the effective behaviour for the other packages, and every published `@effex/platform` will pin the exact `@effex/core` version it was published against — no ambiguity for pnpm to resolve.

Peer deps on `@effex/dom` and `@effex/router` stay on `workspace:^` — those are peers that the user installs and semver ranges are appropriate.
2 changes: 1 addition & 1 deletion packages/platform/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@
"build": "tsup"
},
"dependencies": {
"@effex/core": "workspace:^"
"@effex/core": "workspace:*"
},
"peerDependencies": {
"@effect/platform": "^0.94.0",
Expand Down
Loading
Loading