Found while measuring #10497 (the pnpm floor for the scaffolded package.json). Unrelated cause, so filed rather than ridden.
What happens
renderPnpmWorkspaceYaml() in packages/cli/src/commands/init.ts emits a peerDependencyRules.allowedVersions block whose stated purpose is that a brand-new project's first pnpm install does not open with a peer-skew report. From SCAFFOLD_ALLOWED_PEER_VERSIONS:
Both are reported by pnpm install on a brand-new scaffold, and neither is a real incompatibility. They are declared here because that report is the first thing a newcomer sees, on the one screen where they are deciding whether this project is solid, and there is nothing they did to cause it.
Two skews are declared (better-auth>better-sqlite3, @better-auth/scim>better-call). A third one is not, and it still shows. Scaffolded with the real CLI at 17.1.0 (objectstack init my-app -t app --no-install), then pnpm@10.15.0 install --lockfile-only:
WARN Issues with peer dependencies found
.
├─┬ @better-auth/core 1.7.1
│ └── ✕ unmet peer @better-auth/utils@0.4.2: found 0.5.0
...
└─┬ @objectstack/runtime 17.1.0
└─┬ @objectstack/plugin-auth 17.1.0
├─┬ @better-auth/scim 1.7.0-rc.1
│ └── ✕ unmet peer @better-auth/utils@0.4.2: found 0.5.0
├─┬ @better-auth/oauth-provider 1.7.1
│ └── ✕ unmet peer @better-auth/utils@0.4.2: found 0.5.0
└─┬ @better-auth/sso 1.7.1
└── ✕ unmet peer @better-auth/utils@0.4.2: found 0.5.0
Four declaring packages (@better-auth/core, @better-auth/scim, @better-auth/oauth-provider, @better-auth/sso) each peer an exact @better-auth/utils@0.4.2, while the tree resolves 0.5.0. Install still exits 0 — this is report noise, not a resolution failure.
Why it is a finding and not a fix
Whether to widen is a judgement I did not make, and the existing entries were each justified by measuring the configuration the stale range actually governs, not by silencing the line. Two things need deciding:
- Whether
0.5.0 really is compatible for these four consumers, measured the way the better-sqlite3 entry was — otherwise the right move is a resolution change, not an allowedVersions widening. - Whether the rule should be spelled per declaring package (four scoped entries, matching the existing convention that each rule widens exactly one declaration) or whether the shared
@better-auth/* origin makes that repetitive.
Note @better-auth/scim appears in both this list and the existing better-call entry, and it is held at an rc deliberately — so anything done here should be checked against the note that the scim entry retires with that pin.
Severity is low: warnings only, install succeeds. Filing it because the scaffolder has an explicit, implemented intent to keep that first screen clean, and this defeats it for four of six lines.
Filed unassigned, not graded or routed.
Found while measuring #10497 (the pnpm floor for the scaffolded
package.json). Unrelated cause, so filed rather than ridden.What happens
renderPnpmWorkspaceYaml()inpackages/cli/src/commands/init.tsemits apeerDependencyRules.allowedVersionsblock whose stated purpose is that a brand-new project's firstpnpm installdoes not open with a peer-skew report. FromSCAFFOLD_ALLOWED_PEER_VERSIONS:Two skews are declared (
better-auth>better-sqlite3,@better-auth/scim>better-call). A third one is not, and it still shows. Scaffolded with the real CLI at17.1.0(objectstack init my-app -t app --no-install), thenpnpm@10.15.0 install --lockfile-only:Four declaring packages (
@better-auth/core,@better-auth/scim,@better-auth/oauth-provider,@better-auth/sso) each peer an exact@better-auth/utils@0.4.2, while the tree resolves0.5.0. Install still exits 0 — this is report noise, not a resolution failure.Why it is a finding and not a fix
Whether to widen is a judgement I did not make, and the existing entries were each justified by measuring the configuration the stale range actually governs, not by silencing the line. Two things need deciding:
0.5.0really is compatible for these four consumers, measured the way thebetter-sqlite3entry was — otherwise the right move is a resolution change, not anallowedVersionswidening.@better-auth/*origin makes that repetitive.Note
@better-auth/scimappears in both this list and the existingbetter-callentry, and it is held at an rc deliberately — so anything done here should be checked against the note that the scim entry retires with that pin.Severity is low: warnings only, install succeeds. Filing it because the scaffolder has an explicit, implemented intent to keep that first screen clean, and this defeats it for four of six lines.
Filed unassigned, not graded or routed.