Skip to content

ci(sdk-smoke): drop invalid --no-frozen-lockfile from pnpm add - #388

Merged
dcccrypto merged 1 commit into
mainfrom
fix/keeper-sdk-smoke-pnpm-add-flag
Jul 21, 2026
Merged

ci(sdk-smoke): drop invalid --no-frozen-lockfile from pnpm add#388
dcccrypto merged 1 commit into
mainfrom
fix/keeper-sdk-smoke-pnpm-add-flag

Conversation

@dcccrypto

Copy link
Copy Markdown
Owner

Problem

The nightly SDK publish smoke job has been failing on every scheduled run (e.g. 29731320027, and the 2026-07-19 run before it):

ERROR  Unknown option: 'frozen-lockfile'
Process completed with exit code 1

Root cause

--no-frozen-lockfile is an option of pnpm install, not pnpm add. pnpm 10 rejects unknown options outright, so the Override SDK dep step aborted before installing the target SDK version.

This matters beyond the red X: the job never actually smoke-tested the published SDK. It failed at dependency setup, so a genuine publish regression would have looked identical to this flag bug.

The flag was also unnecessary — pnpm add rewrites the lockfile by design, which is exactly the "mutate one dep, not reproduce a build" behaviour the original comment described.

Verification

Against pnpm 10.33.0 (the version this workflow pins):

command result
pnpm add is-odd@3.0.1 --no-frozen-lockfile ERROR Unknown option: 'frozen-lockfile'
pnpm add is-odd@3.0.1 + is-odd 3.0.1
CI=true pnpm add is-even@1.0.0 + is-even 1.0.0

CI=true matters because pnpm defaults frozen-lockfile to true for install under CI — but that default does not apply to add. Neither repo has an .npmrc pinning it, so no override is needed.

Related

percolator-indexer has the identical bug — companion PR filed there. Its copy of this workflow was also missing the env: hardening this repo already has, so that PR carries an injection fix too.

🤖 Generated with Claude Code

The nightly "SDK publish smoke" job has been failing on every scheduled run:

    ERROR  Unknown option: 'frozen-lockfile'
    Process completed with exit code 1

`--no-frozen-lockfile` is an option of `pnpm install`, not `pnpm add`. pnpm 10
rejects unknown options outright, so the step aborted before it ever installed
the target SDK version — the job never actually smoke-tested anything.

The flag was also unnecessary: `pnpm add` rewrites the lockfile by design, which
is exactly the "mutate one dep" behaviour the original comment was reaching for.

Verified against pnpm 10.33.0 (the version this workflow pins):
  pnpm add is-odd@3.0.1 --no-frozen-lockfile -> ERROR Unknown option
  pnpm add is-odd@3.0.1                      -> + is-odd 3.0.1
  CI=true pnpm add is-even@1.0.0              -> + is-even 1.0.0
Neither repo has an .npmrc pinning frozen-lockfile, so no override is needed.

percolator-indexer has the identical bug; fixed there in a companion PR.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Jul 20, 2026

Copy link
Copy Markdown

Warning

Review limit reached

@dcccrypto, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 6 minutes

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 91644976-82a6-4426-9799-8041ef2d6e53

📥 Commits

Reviewing files that changed from the base of the PR and between e3d969a and 1399f3f.

📒 Files selected for processing (1)
  • .github/workflows/sdk-smoke.yml
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/keeper-sdk-smoke-pnpm-add-flag

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@dcccrypto

Copy link
Copy Markdown
Owner Author

Verified on a real run — and it uncovered a deeper problem

I dispatched this workflow on the branch: run 29781838519.

The flag fix works end to end:

Testing @percolatorct/sdk@2.0.5
Installed: 2.0.5
tests/sdk-smoke.test.ts (42 tests | 15 failed)

No more Unknown option: 'frozen-lockfile'; the SDK installs and the smoke tests execute for the first time.

⚠️ This PR does not turn the job green — deliberately

The 15 failures are real signal, not fallout from my change. tests/sdk-smoke.test.ts asserts the v17 ABI (encodePermissionlessCrank, ACCOUNTS_PERMISSIONLESS_CRANK_BASE, CrankAction, encodeKeeperCrank throwing). That surface belongs to SDK 3.0.0 — which was never published. npm view @percolatorct/sdk versions ends at 2.0.9, and I confirmed 2.0.9 contains none of those symbols (zero matches across the whole package; verified at runtime via require()).

So bumping SDK_VERSION would not help — 2.0.9 fails the same 15 assertions.

I deliberately did not bump the pin or relax the assertions; either would hide the fact that the keeper's pinned SDK contract does not exist. Filed as #389 for the sdk agent to decide: publish 3.0.0, or gate this workflow behind the Phase 7 cutover.

Merging this is still the right call — it converts a meaningless argument-parsing crash into an accurate report of the SDK gap. The canary was blind before; now it tells the truth.

@dcccrypto
dcccrypto merged commit 1d2cb11 into main Jul 21, 2026
2 of 4 checks passed
@dcccrypto
dcccrypto deleted the fix/keeper-sdk-smoke-pnpm-add-flag branch July 21, 2026 05:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant