Skip to content

fix(playground): vendor-local x402 deps so the playground installs anywhere#180

Open
EfeDurmaz16 wants to merge 1 commit into
solana-foundation:mainfrom
EfeDurmaz16:fix/playground-vendored-x402
Open

fix(playground): vendor-local x402 deps so the playground installs anywhere#180
EfeDurmaz16 wants to merge 1 commit into
solana-foundation:mainfrom
EfeDurmaz16:fix/playground-vendored-x402

Conversation

@EfeDurmaz16

Copy link
Copy Markdown
Collaborator

Problem

The playground app pinned its x402 dependencies to an absolute path on a single contributor's machine:

"@x402/core": "file:/Users/ludo/Coding/x402/.local-tarballs/x402-core-2.10.0.tgz",
"@x402/svm":  "file:/Users/ludo/Coding/x402/.local-tarballs/x402-svm-2.10.0.tgz"

and playground/package.json repeated the same path in a root pnpm.overrides. A fresh clone or CI pnpm install fails with ENOENT on that path, so the playground web app cannot be installed or run by anyone else.

Fix

Point both the app deps and the root override at the committed vendored tarballs the rest of the workspace already consumes (typescript/.x402-vendor/x402-{core,svm}-2.15.0.tgz, same version @solana/pay-kit bundles), and regenerate the lockfile.

Verify

cd playground && pnpm install            # resolves the vendored tarballs, no ENOENT
PAYKIT_PLAYGROUND_API_URL=http://localhost:3000 pnpm dev   # app boots on :5173

Verified locally: pnpm install succeeds, the app serves on :5173, and it discovers a backend's routes via the proxied /openapi.json.

The playground app pinned @x402/core and @x402/svm to an absolute local path
on a single contributor's machine (/Users/ludo/Coding/x402/.local-tarballs/
x402-{core,svm}-2.10.0.tgz), and the root pnpm override forced @x402/core to
the same path. A fresh clone or CI could not install the playground at all
(ENOENT on that path).

Point both the app deps and the root override at the committed vendored
tarballs the rest of the workspace already uses
(typescript/.x402-vendor/x402-{core,svm}-2.15.0.tgz) and regenerate the
lockfile, so the playground installs anywhere pnpm install runs.
@greptile-apps

greptile-apps Bot commented Jun 19, 2026

Copy link
Copy Markdown

Greptile Summary

This PR fixes a broken workspace setup where @x402/core and @x402/svm were pinned to absolute paths on a single contributor's machine, making pnpm install fail for everyone else. It replaces those paths with relative references to the already-committed vendored tarballs in typescript/.x402-vendor/, also bumping the version from 2.10.0 to 2.15.0 to match what the rest of the workspace uses.

  • playground/app/package.json and playground/package.json now use file:../../typescript/.x402-vendor/ and file:../typescript/.x402-vendor/ respectively — both paths resolve correctly from their locations to the repo root.
  • playground/package.json adds a missing @x402/svm entry to pnpm.overrides (previously only @x402/core was overridden at the workspace level).
  • playground/pnpm-lock.yaml is regenerated with integrity hashes for the new tarballs and a minor bump of concurrently (9.2.1 → 9.2.3).

Confidence Score: 5/5

Safe to merge — all three changed files make a targeted, mechanical path fix pointing to tarballs that already exist in the repository.

The change replaces three hardcoded absolute paths with relative paths that resolve correctly from their respective locations, the target tarballs are verified to exist in the repo, and the lockfile is regenerated with matching integrity hashes. No logic, runtime code, or published API surface is touched.

No files require special attention.

Important Files Changed

Filename Overview
playground/app/package.json Replaces hardcoded absolute machine-local paths for @x402/core and @x402/svm with relative paths to committed vendor tarballs; version bumps from 2.10.0 to 2.15.0
playground/package.json Updates pnpm.overrides to use relative vendor tarball paths and adds missing @x402/svm override alongside @x402/core
playground/pnpm-lock.yaml Regenerated lockfile reflecting updated tarball paths, new @x402/svm override, and minor dependency version bumps (e.g. concurrently 9.2.1 → 9.2.3)

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart TD
    A[pnpm install in playground/] --> B{Resolve @x402/core & @x402/svm}
    B -->|Before| C["❌ file:/Users/ludo/Coding/x402/...\n(ENOENT on other machines)"]
    B -->|After| D["✅ file:../typescript/.x402-vendor/\n(committed tarballs in repo)"]
    D --> E[typescript/.x402-vendor/x402-core-2.15.0.tgz]
    D --> F[typescript/.x402-vendor/x402-svm-2.15.0.tgz]
    E --> G[Install succeeds everywhere]
    F --> G
Loading
%%{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[pnpm install in playground/] --> B{Resolve @x402/core & @x402/svm}
    B -->|Before| C["❌ file:/Users/ludo/Coding/x402/...\n(ENOENT on other machines)"]
    B -->|After| D["✅ file:../typescript/.x402-vendor/\n(committed tarballs in repo)"]
    D --> E[typescript/.x402-vendor/x402-core-2.15.0.tgz]
    D --> F[typescript/.x402-vendor/x402-svm-2.15.0.tgz]
    E --> G[Install succeeds everywhere]
    F --> G
Loading

Reviews (1): Last reviewed commit: "fix(playground): point x402 deps at the ..." | Re-trigger Greptile

@EfeDurmaz16 EfeDurmaz16 requested a review from lgalabru June 19, 2026 21:01
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