Commit f62b80b
authored
fix(sandbox): upgrade Node runtime to 24.18.0 (#83)
## 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
- [x] full workspace typecheck under Node 24.18.0 — 46/46 tasks passed
- [x] full workspace and repository lint under Node 24.18.0 — no
warnings
- [x] production build under Node 24.18.0 — 26/26 tasks passed
- [x] operational script typecheck, architecture boundaries, and
dead-code scan passed
- [x] GitHub Actions workflow and embedded shell passed
actionlint/shellcheck
- [x] five npm locks and both pnpm template locks validated under Node
24.18.0
- [x] 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.1 parent cade5ac commit f62b80b
20 files changed
Lines changed: 23 additions & 23 deletions
File tree
- .github
- actions/setup-repository
- workflows
- apps/web
- infra/containers
- dev
- sandbox
- app-generators
- app-templates
- expo
- next
- browser-driver
- doc-runtime
- extension-overrides/parquet-viewer
- package-manager
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
19 | 19 | | |
20 | 20 | | |
21 | 21 | | |
22 | | - | |
| 22 | + | |
23 | 23 | | |
24 | 24 | | |
25 | 25 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
113 | 113 | | |
114 | 114 | | |
115 | 115 | | |
116 | | - | |
| 116 | + | |
117 | 117 | | |
118 | 118 | | |
119 | 119 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | | - | |
| 1 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
46 | 46 | | |
47 | 47 | | |
48 | 48 | | |
49 | | - | |
50 | | - | |
| 49 | + | |
| 50 | + | |
51 | 51 | | |
52 | 52 | | |
53 | 53 | | |
| |||
104 | 104 | | |
105 | 105 | | |
106 | 106 | | |
107 | | - | |
| 107 | + | |
108 | 108 | | |
109 | 109 | | |
110 | 110 | | |
| |||
152 | 152 | | |
153 | 153 | | |
154 | 154 | | |
155 | | - | |
| 155 | + | |
156 | 156 | | |
157 | 157 | | |
158 | 158 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
5 | 5 | | |
6 | 6 | | |
7 | 7 | | |
8 | | - | |
| 8 | + | |
9 | 9 | | |
10 | 10 | | |
11 | 11 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | | - | |
| 1 | + | |
2 | 2 | | |
3 | 3 | | |
4 | 4 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | | - | |
| 1 | + | |
2 | 2 | | |
3 | 3 | | |
4 | 4 | | |
| |||
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
3 | 3 | | |
4 | 4 | | |
5 | 5 | | |
6 | | - | |
| 6 | + | |
7 | 7 | | |
8 | 8 | | |
9 | 9 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
5 | 5 | | |
6 | 6 | | |
7 | 7 | | |
8 | | - | |
| 8 | + | |
9 | 9 | | |
10 | 10 | | |
11 | 11 | | |
| |||
0 commit comments