chore(deps): interface-core as bounded peer + dev dependency - #4
Merged
Conversation
| "ioredis": "^5.10.1" | ||
| }, | ||
| "devDependencies": { | ||
| "@antelopejs/interface-core": "^0.0.5", |
There was a problem hiding this comment.
devDependencies range only covers the peer range floor
^0.0.5 resolves to >=0.0.5 <0.0.6 (semver caret on a 0.0.x version locks the patch digit), so the installed dev/CI copy is pinned to exactly 0.0.5. The declared peer range is >=0.0.5 <0.1.0, meaning future patch releases like 0.0.6 or 0.0.7 fall within the stated compatibility window but are never exercised in development. Consider aligning the devDependency specifier with the peer range — e.g. >=0.0.5 <0.1.0 — so local builds and CI always pick up the latest compatible release.
Prompt To Fix With AI
This is a comment left during a code review.
Path: package.json
Line: 45
Comment:
**devDependencies range only covers the peer range floor**
`^0.0.5` resolves to `>=0.0.5 <0.0.6` (semver caret on a `0.0.x` version locks the patch digit), so the installed dev/CI copy is pinned to exactly `0.0.5`. The declared peer range is `>=0.0.5 <0.1.0`, meaning future patch releases like `0.0.6` or `0.0.7` fall within the stated compatibility window but are never exercised in development. Consider aligning the devDependency specifier with the peer range — e.g. `>=0.0.5 <0.1.0` — so local builds and CI always pick up the latest compatible release.
How can I resolve this? If you propose a fix, please make it concise.Note: If this suggestion doesn't match your team's coding style, reply to this and let me know. I'll remember it for next time!
Interfaces are host-provided runtime singletons, so they move to peerDependencies. The range keeps the original lower bound (no forced upgrade) and is bounded to the current major (<1.0.0). devDependencies mirror the exact same range so local/CI builds exercise the full supported window, and the field is grouped with the other dependency sections.
Upd4ting
force-pushed
the
chore/peer-interface-deps
branch
from
June 15, 2026 21:52
3356376 to
1bbd606
Compare
Member
Author
|
@greptileai review |
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.
Move
@antelopejs/interface-corefrom dependencies to peerDependencies (bounded to the current major, e.g.>=0.0.5 <0.1.0) and mirror it in devDependencies for standalone compilation. interface-core is a host-provided runtime singleton; this avoids dual installs and version-pinning overrides downstream. Verified: install, build, lint.Greptile Summary
This PR reclassifies
@antelopejs/interface-corefrom a runtimedependencyto apeerDependency(mirrored indevDependencies), which is the correct pattern for a host-provided singleton that should not be duplicated in the dependency tree.@antelopejs/interface-coreis removed fromdependenciesand added to bothpeerDependenciesanddevDependencieswith the range>=0.0.3 <1.0.0, allowing the host to control which version is used at runtime.0.0.3.<1.0.0) is wider than the PR description's example (<0.1.0), which may be intentional but differs from the stated rationale of bounding to the current minor.Confidence Score: 5/5
Safe to merge — the change is a straightforward dependency reclassification with no runtime logic altered.
The only change is moving a dependency to peerDependencies/devDependencies. No source code is modified, the lockfile resolves correctly, and the peer range covers the currently published version. The range upper bound is wider than the PR description's example, but this does not break anything today.
No files require special attention; both changed files are configuration only.
Important Files Changed
Flowchart
%%{init: {'theme': 'neutral'}}%% flowchart TD A["Downstream consumer\ninstalls interface-redis"] --> B{Dependency type} B -->|"Before (dependency)"| C["npm/pnpm installs\ninterface-core@^0.0.3\ninto interface-redis node_modules"] B -->|"After (peerDependency)"| D["Host must provide\ninterface-core >=0.0.3 <1.0.0\nin its own node_modules"] C --> E["Risk: dual installs,\nversion overrides downstream"] D --> F["interface-core resolved\nonce from host tree"] F --> G["devDependencies: >=0.0.3 <1.0.0\n(for local build & CI)"]%%{init: {'theme': 'base', 'themeVariables': {"darkMode": true, "background": "#0d1117", "primaryColor": "#21262d", "primaryTextColor": "#e6edf3", "primaryBorderColor": "#8b949e", "lineColor": "#8b949e", "textColor": "#e6edf3", "edgeLabelBackground": "#161b22", "actorBkg": "#21262d", "actorBorder": "#8b949e", "actorTextColor": "#e6edf3", "actorLineColor": "#8b949e", "signalColor": "#8b949e", "signalTextColor": "#e6edf3", "noteBkgColor": "#373320", "noteBorderColor": "#d4a72c", "noteTextColor": "#f0e6c0", "labelBoxBkgColor": "#21262d", "labelBoxBorderColor": "#8b949e", "labelTextColor": "#e6edf3", "loopTextColor": "#e6edf3", "activationBkgColor": "#30363d", "activationBorderColor": "#8b949e"}}}%% flowchart TD A["Downstream consumer\ninstalls interface-redis"] --> B{Dependency type} B -->|"Before (dependency)"| C["npm/pnpm installs\ninterface-core@^0.0.3\ninto interface-redis node_modules"] B -->|"After (peerDependency)"| D["Host must provide\ninterface-core >=0.0.3 <1.0.0\nin its own node_modules"] C --> E["Risk: dual installs,\nversion overrides downstream"] D --> F["interface-core resolved\nonce from host tree"] F --> G["devDependencies: >=0.0.3 <1.0.0\n(for local build & CI)"]Reviews (2): Last reviewed commit: "chore(deps): interface deps as bounded p..." | Re-trigger Greptile