Skip to content

Bump pnpm/action-setup from 4 to 6 - #7

Open
dependabot[bot] wants to merge 22 commits into
mainfrom
dependabot/github_actions/pnpm/action-setup-6
Open

Bump pnpm/action-setup from 4 to 6#7
dependabot[bot] wants to merge 22 commits into
mainfrom
dependabot/github_actions/pnpm/action-setup-6

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Aug 11, 2026

Copy link
Copy Markdown

Bumps pnpm/action-setup from 4 to 6.

Release notes

Sourced from pnpm/action-setup's releases.

v6.0.0

Added support for pnpm v11.

v5.0.0

Updated the action to use Node.js 24.

v4.4.0

Updated the action to use Node.js 24.

v4.3.0

What's Changed

New Contributors

Full Changelog: pnpm/action-setup@v4.2.0...v4.3.0

v4.2.0

When there's a .npmrc file at the root of the repository, pnpm will be fetched from the registry that is specified in that .npmrc file #179

v4.1.0

Add support for package.yaml #156.

Commits
  • 0977fd9 docs: Update README to include devEngines.packageManager (#273)
  • 48261ac fix: update pnpm to v11.19.0 (#283)
  • 75677f7 ci: use pnpm 11 for pr-check (#284)
  • 769ae71 refactor: introduce restore keys for cache (#280)
  • 6fed91f docs(README): point users to the successor pnpm/setup action (#282)
  • 0ebf471 fix: update pnpm to v11.7.0 (#267)
  • 0e279bb fix: update pnpm to 11.1.1 (#248)
  • 3e83581 fix: drop patchPnpmEnv so standalone+self-update works on Windows (#258)
  • 551b42e docs(README): fix cache_dependency_path type (#257)
  • 739bfe4 fix: self-update bootstrap to packageManager-pinned version (#233) (#256)
  • Additional commits viewable in compare view

Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

egekoca and others added 22 commits August 8, 2026 05:29
…tion detection

The CLI was uploading .turbo cache blobs and other gitignored files because
it fell back to the api-gateway subdirectory's .gitignore instead of the
monorepo root's, ballooning the upload to ~1800 files and causing repeated
"Upload aborted" failures. An explicit .vercelignore fixes that regardless
of which .gitignore the CLI would otherwise pick.

Separately, the Fastify framework preset's zero-config detection was
treating src/app.ts (a factory function, not a default-exported server) as
a second function entry point and routing traffic to it instead of the
project's own api/index.ts handler, crashing every request. Disabling
framework detection fixes routing, at the cost of needing an explicit
(empty) output directory since there's no static frontend here.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BTcRHQmup7ykxjRG7CBNW1
…dged detail

The previous version buried "what this does" under paragraph-long sentences
stacking every caveat inline. Replaced with a short problem/solution intro,
a plain how-it-works list, a component table, and badges/links (live demo,
CI status, tech stack) — the honesty about what's real vs. not-yet-live
stays, just as a scannable status table instead of prose.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BTcRHQmup7ykxjRG7CBNW1
Loads DATABASE_URL from the gitignored .env.prod-workers.local (chmod 600,
never committed) then execs the existing prod-workers supervisor. Invoked
as `bash <path>` rather than directly, so it doesn't need the executable
bit. The launchd registration itself is not done yet -- it needs Full Disk
Access granted to /bin/bash first, since ~/Desktop is TCC-protected and
launchd-spawned processes don't inherit Terminal's grant.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BTcRHQmup7ykxjRG7CBNW1
…ized functions

Runtime-config validation (Postgres URL, RPC URL/network resolution, merchant
capability parsing, bounded-int parsing, ConfigurationError base) was
byte-identical across api-gateway, orchestrator-worker, payment-worker, and
x402-demo-target; moved into packages/goat-network-config as shared helpers.

protected-delivery-fetch-client.ts was ~90% identical between
orchestrator-worker and x402-demo-target; moved into
packages/protected-delivery-runner as a parameterized factory.

Split apps/api-gateway/src/app.ts's ~400-line createApp() into per-route-group
registration functions, and apps/orchestrator-worker/src/pipeline.ts's
~324-line runOrchestratorPipeline() into phase-level helpers (risk analysis,
procurement, execution, evidence, attestation) -- behavior unchanged, verified
against the existing test suites (including the 22 checkpoint/resume pipeline
tests) after each step.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018N9SNh4DphGMH9TbQHdvBJ
- Add description/license to all 19 workspace package.json files; remove
  x402-payments' unused run-domain and zod dependencies.
- Fix docs/architecture.md drift: it described a Redis/BullMQ queue and
  separate Execution/Procurement/Sentinel/Signer worker containers that were
  never built -- job queuing is Postgres-backed leased jobs, and those phases
  all run inside orchestrator-worker/payment-worker.
- Add direct unit tests for the new goat-network-config helpers (previously
  only covered indirectly via each app's runtime-config.test.ts) and for
  web-dashboard's pure formatting/validation helpers, which had zero test
  files before this.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018N9SNh4DphGMH9TbQHdvBJ
No ESLint/Prettier existed anywhere in this 18-package TypeScript monorepo,
and every package's "format:check" script was actually just a duplicate of
"format:check" -> "typecheck" (tsc --noEmit does not check formatting).
Removed those 18 fake scripts and the now-unused turbo.json task for them.

Added @biomejs/biome with a root biome.json (single quotes/semicolons/2-space
indent to match existing style; noLiteralKeys and noNonNullAssertion turned
off since they conflict with this repo's noPropertyAccessFromIndexSignature
tsconfig setting and an established, deliberate `!`-after-guard pattern;
noDescendingSpecificity/noImportantStyles off for the hand-tuned CSS cascade
in styles.css). New root scripts: lint, lint:fix, and a real format:check.
Wired both into a new CI job and into `pnpm verify`.

Applied Biome's formatter across the repo and fixed everything it flagged:
- 3 genuine noImplicitAnyLet gaps (x402-demo-target's receipt/native-payment
  verifier `let` locals had no type until first assignment).
- 3 unsafe optional-chaining sites in tests where an absent array element
  would have thrown a confusing TypeError instead of a clear assertion
  failure; replaced with an explicit guard.
- A handful of real accessibility issues (a <div> needing role="region" or
  a <section> instead, an array-index React key swapped for the already-
  available requestHash, a couple of justified biome-ignore exceptions for
  patterns that are correct here but look wrong in isolation, e.g. a
  non-form <div> reimplementing Enter-to-submit because it's nested inside
  the outer <form> and nested <form> tags are invalid HTML).
- A stale, inert `eslint-disable-next-line` comment (ESLint was never
  actually installed) on two intentionally-narrow useEffect dependency
  arrays, replaced with an enforced biome-ignore plus the reasoning.
- 4 env vars read in scripts but not declared to Turborepo's cache key
  (added to turbo.json's globalPassThroughEnv).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018N9SNh4DphGMH9TbQHdvBJ
None of /v1/quotes, /v1/auth/session, /v1/services/onboard, /v1/runs, or
/v1/runs/:runId/payment-challenge had any request-rate protection despite the
latter two triggering real external cost (OpenAPI fetches, GOAT Flow order
creation). Added @fastify/rate-limit: a generous global default (300/min/IP)
plus tighter per-route ceilings on those five routes.

Route declarations had to move inside app.after(...): @fastify/rate-limit
wires its per-route config.rateLimit override via an onRoute hook, and a
route declared synchronously right after the unawaited `app.register(rateLimit,
...)` call (as apps/api-gateway's other plugin, cors, has always done) gets no
rate limiting at all, since that hook hasn't attached yet -- confirmed with an
isolated repro before touching the real route table.

The plugin's errorResponseBuilder return value is thrown and routed through
this app's own generic setErrorHandler rather than sent directly, so it needed
an explicit statusCode: 429 to avoid being miscategorized as a 500, plus a
small addition to that handler to preserve the RATE_LIMITED code instead of
collapsing it into the generic BAD_REQUEST used for other 4xx errors.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018N9SNh4DphGMH9TbQHdvBJ
The layering documented in docs/architecture.md (packages/* never depending
on apps/*, apps/web-dashboard only reaching the backend through
public-api-client) was true only by discipline -- nothing would catch a
future violation except someone noticing on review. Added a
.dependency-cruiser.cjs with four rules (no-circular, packages-do-not-depend-
on-apps, web-dashboard-is-frontend-only, demo-target-is-not-a-backend-
dependency), a `depcruise` script, and a CI step after `pnpm build` (the
ruleset resolves @shipyard402/* imports through each package's built dist/,
same as Node does at runtime, so it needs the workspace already built).

Verified the rules actually fire, not just pass vacuously: temporarily added
a real cross-boundary dependency (persistence-postgres from web-dashboard)
and confirmed dependency-cruiser flagged it, before reverting.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018N9SNh4DphGMH9TbQHdvBJ
apps/web-dashboard had zero tests that actually rendered a React component --
the earlier pass in this session only covered pure formatting/validation
helpers. The two components that actually move money (release-run-form.tsx,
wallet-pay-panel.tsx) had no behavioral coverage at all.

Added @testing-library/react + jsdom + user-event as devDependencies, scoped
to just these two new test files via a per-file `@vitest-environment jsdom`
comment so the existing node-environment pure-function tests (which rely on
`window` being undefined by default) are unaffected.

Coverage added:
- WalletPayPanel: no-wallet-detected fallback copy, connect-wallet flow,
  connected-elsewhere skips straight to Pay, a successful payment shows the
  tx-hash link, and a wallet rejection (EIP-1193 code 4001) surfaces the
  friendly message instead of a raw error.
- ReleaseRunForm: submission is blocked until a wallet is connected, a
  connect + quote-request round trip renders the returned quote, and an API
  failure surfaces its message instead of being swallowed.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018N9SNh4DphGMH9TbQHdvBJ
Cheap polish from the repo-quality pass: pin the Node major version editors
and nvm/fnm pick up automatically (matches engines >=24.0.0 and CI's
NODE_VERSION), add a baseline .editorconfig (2-space default, 4-space for
Solidity to match forge fmt, trailing-whitespace trimming left off for
Markdown's trailing-double-space line breaks), and add a one-line note to
docs/adr/README.md explaining why ADR numbers 0004/0005/0007/0008/0010/0011/
0013 don't exist (retired during drafting, not a missing-files bug).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018N9SNh4DphGMH9TbQHdvBJ
…nents

Only the payment UI (wallet-pay-panel, release-run-form) had render-level
coverage. Added the same for the remaining components that render real data
and call the API, as opposed to the static marketing/landing sections:

- service-onboarding.tsx: collapsed-by-default toggle, required-field
  validation blocking submission, a successful registration reporting back
  to the parent, and the API-error path.
- run-history.tsx: loading state, the deliberate "render nothing" behavior
  on both an empty page and a load failure, row rendering with status
  labels, and paginated "Load more".
- run-detail.tsx: loading state, rendering RunProgressPanels once the run
  resolves, the plain-error vs AUTH_-prefixed-error branches (the latter
  shows a reconnect prompt instead of a generic error card), and the
  reconnect flow itself.
- run-progress-panels.tsx: the payment panel across its three real states
  (awaiting challenge / challenge issued / confirmed with tx link), the AI
  risk plan and evidence panels once populated (including a FAIL result),
  the terminal verdict banner, and that a pending panel's toggle stays
  non-interactive while a ready one expands.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018N9SNh4DphGMH9TbQHdvBJ
The session's earlier test-coverage work has no protection against silent
erosion -- nothing stops a future change from quietly deleting a test or an
assertion. Added @vitest/coverage-v8 (pinned to match the repo's vitest
3.2.7, not the v4 the bare install resolves to) and a vitest.config.ts
scoping coverage to src/lib, src/hooks, and src/components -- excluding the
app-router pages (thin Next.js routing wrappers, better exercised by the
browser than a unit test) and the presentational-only marketing/landing
components that were never in scope for this work.

Thresholds (65% statements/lines, 80% branches, 50% functions) are set a
comfortable margin below what that scope actually measures at right now
(72.47/85.8/57.31/72.47) -- a floor, not an aspirational target. Verified the
gate is real by temporarily setting an impossible threshold and confirming
`pnpm test:coverage` actually fails, then reverting.

Wired into `pnpm verify` and a new CI step (apps/web-dashboard only, right
after the existing `pnpm test`).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018N9SNh4DphGMH9TbQHdvBJ
pipeline.ts had grown to 735 lines carrying all five pipeline phases (risk
analysis, procurement, execution, evidence, attestation) plus their shared
types, error classes, and the scenario registry -- a lot of blast radius in
one file. This is an internal-only reorganization: the same process, same
deployment, same runtime behavior, just moved into apps/orchestrator-worker/
src/pipeline/{types,errors,scenarios,risk-analysis-phase,procurement-phase,
execution-phase,evidence-phase,attestation-phase}.ts.

pipeline.ts itself shrinks to 205 lines: runOrchestratorPipeline (the
resumable state-machine driver) plus re-exports of everything worker.ts,
main.ts, and the test suites already imported from './pipeline.js', so
nothing outside this file needed to change.

Deliberately did NOT split this into separate deployable services/processes
-- that would be real infrastructure work (new job leasing between phases,
new deploy targets) carrying real risk to the production workers this repo
runs today, which is out of proportion for a code-organization concern.

Verified byte-identical behavior: typecheck clean, build clean, and all 39
tests pass unchanged, including the 22 checkpoint/resume pipeline tests that
exercise this exact resumable-state-machine logic. Stopped the live
production workers (which run via `tsx watch` and reload on file save)
before making this change and restarted them only after full verification,
so no live process ran partially-edited code.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018N9SNh4DphGMH9TbQHdvBJ
The launchd-managed prod workers (see scripts/run-prod-workers-launchd.sh)
were running via `pnpm dev` (tsx watch), inherited from when this was a
manual, actively-iterated-on session process. That's wrong for something
meant to stay stable and unattended: a file-watcher has no business running
against production, and it meant an unrelated edit anywhere else in the repo
could silently restart a live worker mid-run.

Switched both workers to `pnpm start` (node dist/main.js), with the
supervisor script rebuilding via `turbo run build --filter=...` (not a plain
pnpm filter) right before starting them, so a change to a shared packages/*
dependency gets picked up too, not just the two apps themselves. A real
code change now reaches the running workers only when the supervisor script
restarts (`launchctl kickstart -k ...`), not on every save -- a deliberate
tradeoff for stability during demo/judging.

Also restores the repo-root .env load that `tsx watch --env-file-if-exists`
used to provide for free (GOATX402_* creds, signer paths, OPENAI_API_KEY,
IPFS_API_URL, etc.) -- plain `node` doesn't read .env files on its own.
DATABASE_URL is explicitly saved and restored around that load so .env's
local-Postgres value can't clobber the real prod Neon URL.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018N9SNh4DphGMH9TbQHdvBJ
launchd gives the process a minimal PATH (/usr/bin:/bin:/usr/sbin:/sbin),
unlike an interactive shell that sources ~/.zshrc -- without this the
supervisor script (and everything it execs) failed immediately with
"pnpm: command not found" every time the LaunchAgent tried to start.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018N9SNh4DphGMH9TbQHdvBJ
The API gateway's CORS allowlist only accepted whichever loopback
spelling WEB_ORIGIN used, so opening the dashboard via the other
alias got rejected. Mirror loopback HTTP origins on the same port in
development only; production's allowlist stays exact.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XZf6VTzEduBpbtcXsF4QoU
Introduce AnimatedContent, DecryptedText, GlassSurface, LightRays,
and SpotlightCard (from React Bits) plus a VerifiedText helper, and
wire them into the landing page, app shell, workflow animation,
problem/solution section, release-run form, replay-defense demo,
run detail view, site header, specular button, and threat-coverage
section. Bundles the accompanying stylesheet rework and the new
gsap/three dependencies these components need.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XZf6VTzEduBpbtcXsF4QoU
Apply the new VerifiedText component to the run verdict label and
the mono hash/tx values in the panels, and drop the redundant
[01]-style index prefix from panel labels now that the stepper above
already numbers each stage.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XZf6VTzEduBpbtcXsF4QoU
The Payment/Evidence/Attestation panel summary (e.g. "INVOICED",
"PASS") sat in a flex item with flex-basis: 0, so once a sibling
panel expanded and squeezed the others, it had almost no width left
to grow into. Combined with overflow-wrap: anywhere, that made the
status word wrap one letter per line instead of staying readable.

Wrap the summary text in its own span and force it to stay on one
line, truncating with an ellipsis instead of breaking mid-word.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XZf6VTzEduBpbtcXsF4QoU
Bumps [pnpm/action-setup](https://github.com/pnpm/action-setup) from 4 to 6.
- [Release notes](https://github.com/pnpm/action-setup/releases)
- [Commits](pnpm/action-setup@v4...v6)

---
updated-dependencies:
- dependency-name: pnpm/action-setup
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot Bot added dependencies Pull requests that update a dependency file github_actions Pull requests that update GitHub Actions code labels Aug 11, 2026
@vercel

vercel Bot commented Aug 11, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
api-gateway Ready Ready Preview Aug 11, 2026 5:16pm
web-dashboard Ready Ready Preview Aug 11, 2026 5:16pm

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file github_actions Pull requests that update GitHub Actions code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant