Update project dependencies - #44
Conversation
|
Important Review skippedAuto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
ℹ️ One dependency-resolution rough edge worth a look — everything else checks out.
Reviewed changes — a pure dependency bump across package.json, bun.lock and .packref/packref-lock.json, with no source changes.
- Effect bumped to
4.0.0-beta.107—effectand@effect/platform-nodemove together from4.0.0-beta.102. The neweffectdropsfind-my-way-ts,ini,multipasta,tomlandyamlfrom its runtime dependencies; nothing insrc/relied on those transitively. - Tooling bumps —
adamantite0.34.2→0.34.4,knip6.31.0→6.32.2,oxfmt0.62.0→0.63.0,oxlint1.77.0→1.78.0. .packref/packref-lock.jsonresynced — theeffectandnanotarentries are re-sorted, andadamantitemoves0.34.1→0.34.4, closing a pre-existing drift againstpackage.json's0.34.2.
I reproduced the author's validation against the PR lockfile rather than taking it on trust: bun install --frozen-lockfile, bun run check, bun run typecheck, bun run analyze, bun run build and bun test --parallel (316 pass, 0 fail) all succeed.
ℹ️ The prerelease channel split is invisible in package.json, so it will drift again
package.json pins effect and @effect/platform-node exactly, which reads as "this project is on the beta channel". But @effect/platform-node-shared is only reachable transitively, so nothing in the manifest expresses that constraint and the next bun update can silently pull it further along the rc line — or onto whatever channel comes after — without a single line of the manifest changing. The inline comment covers the current instance; the broader question is whether this repo wants to commit to a channel explicitly.
Technical details
# Make the effect prerelease channel explicit
## Affected sites
- `package.json:52-53` — pins `@effect/platform-node` and `effect` to `4.0.0-beta.107`, but says nothing about `@effect/platform-node-shared`, which is where the skew actually lands.
## Required outcome
- The manifest should make it impossible for a transitive `@effect/*` package to land on a different prerelease channel than the pinned `effect` without a visible manifest change.
## Suggested approach (optional)
- Add a bun `overrides` entry pinning `@effect/platform-node-shared` alongside the two existing exact pins, so all three move as a unit.
- Alternatively move the whole trio onto the `rc` channel, which is where the ecosystem appears to be heading — `@effect/platform-node-shared@4.0.0-rc.108` already exists.
## Open questions for the human
- Is staying on `beta` deliberate (e.g. a known regression in `rc`), or is it just where the last bump happened to land? That answer decides between "add an override" and "move everything to `rc`".Claude Opus | 𝕏
Pinning effect and @effect/platform-node to 4.0.0-beta.107 let the caret on @effect/platform-node-shared resolve forward to 4.0.0-rc.108, so the shared package ran rc code against a beta effect and its peer range went unsatisfied. adamantite already depends on the rc.108 trio, so moving the pins to 4.0.0-rc.108 aligns every @effect/* package on one channel and dedupes the nested @effect/platform-node copy.
There was a problem hiding this comment.
✅ Pullfrog addressed all of its review feedback on this PR.
Resolved the Effect prerelease channel skew flagged in review #4921744157.
The problem, confirmed: package.json pinned effect and @effect/platform-node to 4.0.0-beta.107, but @effect/platform-node depends on @effect/platform-node-shared by caret (^4.0.0-beta.107). Since adamantite already depends on the 4.0.0-rc.108 trio, bun hoisted @effect/platform-node-shared@4.0.0-rc.108 to the root — leaving rc-channel code running against a beta-channel effect with an unsatisfied peer range.
The fix: moved effect and @effect/platform-node to 4.0.0-rc.108. All three @effect/* packages now resolve on one channel, and the nested duplicate adamantite/@effect/platform-node entry drops out of bun.lock (net -4 lines).
I chose this over the reviewer's alternative of adding a bun overrides entry. Bun overrides apply globally, so pinning @effect/platform-node-shared to beta.107 would have forced adamantite's genuinely-rc @effect/platform-node onto beta shared code — trading one skew for a worse one. rc.108 is the current rc dist-tag and is strictly newer than the beta tag, so this converges the tree rather than fighting the hoist.
.packref/packref-lock.json was resynced with the project's own packref sync command rather than hand-edited.
Validation — all green against the new lockfile: bun run check (0 warnings, 0 errors), bun run typecheck, bun run analyze, bun run build, bun test --parallel (316 pass, 0 fail).
One note for the author: the reviewer's open question — whether staying on beta was deliberate — resolved itself in favour of rc, since adamantite had already moved. If there is a known rc regression I am not aware of, this is the commit to revisit.
Claude Opus | 𝕏

Summary
@effect/platform-nodetogether to4.0.0-beta.107Validation
bun run formatbun run checkbun run analyzebun test --parallel(316 tests)bun run buildbunx adamantite doctorbun outdated