Skip to content

fix(sandbox): upgrade Node runtime to 24.18.0 - #83

Merged
iamjr15 merged 1 commit into
mainfrom
fix/node-24-sandbox-filesystem
Jul 27, 2026
Merged

fix(sandbox): upgrade Node runtime to 24.18.0#83
iamjr15 merged 1 commit into
mainfrom
fix/node-24-sandbox-filesystem

Conversation

@iamjr15

@iamjr15 iamjr15 commented Jul 27, 2026

Copy link
Copy Markdown
Contributor

Summary

  • upgrades the single repository, CI, local-container, web, sandbox, and generated-app Node baseline to 24.18.0
  • pins both Docker images to the verified multi-architecture Node 24.18.0 image digest
  • makes protected Daytona snapshot publication fail unless the candidate actually runs Node 24.18.0
  • regenerates only the affected npm lock metadata

Context

Production upload QA proved that files persist under the project uploads directory, remain available through the slash picker in later chats, and are readable by the agent. Recovery of one pre-existing mobile workspace still failed because Node 22.22.2/libuv treats timestamp preservation on the Daytona-mounted workspace as fatal, causing pnpm to exit with EPERM: operation not permitted, futime.

Node 24.18.0 contains the upstream mounted-filesystem copy fix and is compatible with the pinned npm 12.0.1 and pnpm 11.15.0 toolchain. This changes the runtime baseline directly; it does not add a package-manager workaround or legacy path.

Decisions

Decision Choice Reasoning
Runtime Node 24.18.0 LTS everywhere One version across local, CI, Vercel, Daytona, and generated apps
Image integrity Exact version plus immutable OCI digest Reproducible image input across architectures
Publication guard Assert the exact Node version in snapshot smoke tests Prevents a mislabeled or stale runtime from being promoted
Migration scope No database change The repository remains at exactly one SQL migration

Verification

  • full workspace typecheck under Node 24.18.0 — 46/46 tasks passed
  • full workspace and repository lint under Node 24.18.0 — no warnings
  • production build under Node 24.18.0 — 26/26 tasks passed
  • operational script typecheck, architecture boundaries, and dead-code scan passed
  • GitHub Actions workflow and embedded shell passed actionlint/shellcheck
  • five npm locks and both pnpm template locks validated under Node 24.18.0
  • official Node image digest independently resolved before pinning
  • protected AMD64 sandbox build, vulnerability/secret scan, runtime smoke test, and Daytona snapshot publication after merge
  • direct production recovery QA after the new snapshot is promoted

No database migration or data mutation is included. No Linear issue or plan document is associated with this production QA fix.

@iamjr15
iamjr15 merged commit f62b80b into main Jul 27, 2026
4 checks passed
@iamjr15
iamjr15 deleted the fix/node-24-sandbox-filesystem branch July 27, 2026 12:27
iamjr15 added a commit that referenced this pull request Jul 27, 2026
## Decision

Promote the immutable Daytona snapshot built from main at
`b0d3572dc6d5bb199c2f7128da3e0eb4cb72e2a0`.

## Why

The prior Node 22 snapshot can hit mounted-volume timestamp failures
during dependency recovery. The replacement uses Node 24.18.0 and
includes the reviewed bundled-dependency security patches from #83 and
#84.

## Evidence

- Protected snapshot run:
https://github.com/cheatcode-ai/cheatcode/actions/runs/30268573116
- Published active snapshot:
`cheatcode-sandbox-viewer-bundle-b0d3572dc6d5-30268573116`
- Image vulnerability, secret, and configuration scans passed
- Runtime smoke checks passed, including exact Node/NSS/embedded-package
versions and all bundled tools, templates, and skills
- Agent-worker lint, typecheck, and production dry-run build pass
locally under Node 24.18.0

## Scope

One reviewed configuration change only. No schema or migration changes.
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