fix: pin @effect/platform-node-shared to stop dual effect runtimes - #67
Merged
Conversation
@effect/platform-node@4.0.0-rc.109 declares @effect/platform-node-shared: ^4.0.0-rc.109, which now floats to rc.110 on fresh installs; rc.110 peer-requires effect ^4.0.0-rc.110, so npm nests a second effect runtime and smoke-packed-install fails on clean main. Pin the shared package to 4.0.0-rc.109 as a direct dependency so the ^ range dedupes onto one runtime; knip ignores it because it is resolution-only, not imported. Fixes #66 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
There was a problem hiding this comment.
Pull request overview
Pins @effect/platform-node-shared to the same Effect RC version as the rest of the Effect stack to prevent dependency drift (and the resulting dual effect runtimes) during fresh installs of the packed CLI, restoring vp run verify / smoke-packed-install on clean environments.
Changes:
- Add a direct, exact dependency pin for
@effect/platform-node-shared@4.0.0-rc.109to keep a singleeffectruntime resolvable. - Update the pnpm lockfile to reflect the new direct dependency.
- Add
@effect/platform-node-sharedtoknip’signoreDependenciessince it is resolution-only and not imported.
Reviewed changes
Copilot reviewed 2 out of 3 changed files in this pull request and generated no comments.
| File | Description |
|---|---|
| package.json | Adds direct exact pin for @effect/platform-node-shared to prevent RC drift. |
| pnpm-lock.yaml | Records the new direct dependency resolution and snapshots. |
| knip.json | Ignores @effect/platform-node-shared for unused-dependency checks (resolution-only). |
Files not reviewed (1)
- pnpm-lock.yaml: Generated file
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Contributor
|
🎉 This PR is included in version 1.6.3 🎉 The release is available on: Your semantic-release bot 📦🚀 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem:
vp run verifyis red on cleanmainatsmoke-packed-install. Root cause:@effect/platform-node@4.0.0-rc.109declares@effect/platform-node-shared: ^4.0.0-rc.109; upstream published rc.110, which peer-requireseffect ^4.0.0-rc.110. The rooteffect@4.0.0-rc.109pin does not satisfy that peer, so a freshnpm installof the packed tarball nests a secondeffectruntime and the single-runtime assertion fails. The published 1.6.2 package fails the same fresh-install contract. The pre-push hook (full verify) blocked every push from this repo.Solution: pin
@effect/platform-node-shared@4.0.0-rc.109as a direct dependency. npm dedupes@effect/platform-node's^4.0.0-rc.109edge onto the pinned rc.109, whoseeffect ^4.0.0-rc.109peer is satisfied by the existing root runtime — oneeffectinstalls. The package is resolution-only (never imported), so it is added to knipignoreDependencies. Exact-pin scope matches the existing exact pins oneffectand@effect/platform-node; drop all three together when bumping the rc.vp run verifygreen includingsmoke-packed-install(proof artifactsingle-effect-runtime).Fixes #66
🤖 Generated with Claude Code