fix(conformance): cap the sandbox install so a resolver hang is a finding, not a cancelled job - #259
Merged
Conversation
…ding, not a cancelled job npm does not fail when a dependency's peer range names a version no published package satisfies; it backtracks for hours. On 2026-09-11 the @effect adapters published 4.0.0-rc.114 ahead of effect itself and every conformance run sat in npm install until someone cancelled it, 24 minutes in, with nothing in the log to say why. The sandbox install now runs under a cap, five minutes by default and settable through installTimeoutMs like the bin start's binTimeoutMs. A kill produces its own finding, install-timed-out, whose detail says what npm is doing and carries the ERESOLVE warnings that name the package to pin. A plain failure keeps the install-failed finding it had. Verified against the real tarball with a two-second cap: killed at two seconds, reported as timed out, npm's output attached. The normal run still reports nothing. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Signed-off-by: willbot <w.a.madden+machine@gmail.com> Signed-off-by: Will Madden <madden@prisma.io>
|
Warning Review limit reachedNext included review available in 34 minutes. View limit detailsLimit details: You’ve used the included review currently available. This review ran on the open-source allowance, not this organization's plan, because the pull request author doesn't have an assigned seat. Waiting won't change this — ask an organization admin to assign them a seat, or add seats in Billing if every seat is already assigned, then retry. Review configuration: ⚙️ Run configurationConfiguration used: Organization UI Review profile: ASSERTIVE Plan: Advanced Run ID: 📒 Files selected for processing (4)
Comment |
commit: |
wmadden
approved these changes
Sep 11, 2026
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.
Summary
npm does not fail when a dependency's peer range names a version no published package satisfies; it backtracks for hours. On 2026-09-11 the
@effect/*adapters published4.0.0-rc.114ahead ofeffectitself and every conformance run sat innpm installuntil someone cancelled it 24 minutes in, with nothing in the log saying why (https://github.com/prisma/prisma-cli/actions/runs/34586396643/job/103242148710).The sandbox install in
packages/cli-conformance/src/tarball-io.tshad no timeout, unlike the bin start next to it. It now runs under a cap, five minutes by default and settable throughinstallTimeoutMslikebinTimeoutMs. A kill produces its own finding,install-timed-out, whose detail says what npm is doing and carries the ERESOLVE warnings that name the package to pin. A plain failure keeps theinstall-failedfinding it had. Composer's equivalent check got the same cap in prisma/composer#287.Testing
install-timed-outfinding naming the cap and carrying npm's output, noinstall-failed, and no bin is started.@prisma/clitarball: killed at 2019 ms,timedOut: true, npm's stderr in the output.PUBLISH_CHANNEL=dev pnpm check:conformancewith the default cap: 5 subjects checked, nothing to report.pnpm --filter @repo/cli-conformance test: 65 passed.pnpm typecheckclean. Biome clean on the package.🤖 Generated with Claude Code