void 0.10.12 → 0.10.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (28) hide show
  1. package/dist/cli/cli.mjs +10 -10
  2. package/dist/{config-BkTvs43g.mjs → config-qHGgPuWT.mjs} +10 -0
  3. package/dist/{db-DOiJMRt2.mjs → db-C0i0sYMS.mjs} +3 -3
  4. package/dist/{deploy-u7Rv9q_q.mjs → deploy-jBJT1fUT.mjs} +227 -21
  5. package/dist/{gen-o_w-8yI8.mjs → gen-BzXf3Jh2.mjs} +1 -1
  6. package/dist/{headers-nsHIFixA.mjs → headers-ChAADPQu.mjs} +1 -1
  7. package/dist/index.mjs +49 -39
  8. package/dist/{init-3rgHKBVi.mjs → init-7JCAcKNQ.mjs} +1 -1
  9. package/dist/{node-Da0UcsGA.mjs → node-pRg81HqV.mjs} +3 -3
  10. package/dist/pages/index.mjs +3 -3
  11. package/dist/pages/islands-plugin.mjs +1 -1
  12. package/dist/{prepare-BoKHgMNx.mjs → prepare-BvvgAz-3.mjs} +3 -3
  13. package/dist/{provision-rShh6MKY.mjs → provision-CPx2ZxsH.mjs} +1 -1
  14. package/dist/{route-types-COI2DsZv.mjs → route-types-z1jtHEi_.mjs} +8 -1
  15. package/dist/{scan-DYXkrasO.mjs → scan-ChWt4pX1.mjs} +12 -13
  16. package/dist/{scan-DEwlM_Xy.mjs → scan-NU4xKGci.mjs} +4 -1
  17. package/package.json +2 -2
  18. package/schema.json +13 -0
  19. package/skills/migrate-vite-cloudflare-to-void/SKILL.md +1 -1
  20. package/skills/void/docs/guide/deployment.md +68 -1
  21. package/skills/void/docs/guide/edge/static-assets.md +15 -2
  22. package/skills/void/docs/guide/server-routing.md +21 -1
  23. package/skills/void/docs/guide/websockets.md +3 -0
  24. package/skills/void/docs/node_modules/void/CLAUDE.md +3 -1
  25. package/skills/void/docs/node_modules/void/skills/migrate-vite-cloudflare-to-void/SKILL.md +1 -1
  26. package/skills/void/docs/reference/cli.md +24 -0
  27. package/skills/void/docs/reference/config.md +15 -0
  28. package/skills/void/docs/reference/structure.md +1 -0
@@ -271,6 +271,30 @@ For Drizzle projects, deploy performs a read-only schema drift check. If a new m
271
271
 
272
272
  Every deploy writes a structured JSONL trace to `~/.void/logs/deploy-<timestamp>.jsonl` regardless of `--debug`. On failure the path is printed at the end of the error message so you can attach it when reporting platform issues. `VOID_DEPLOY_DEBUG=1` is accepted as an alternate trigger for stderr mirroring.
273
273
 
274
+ When a deploy fails after it starts, the CLI also prints a summary of that trace under the error, so the cause is visible where the file is not — a CI runner, for example, is discarded with the job. The summary has two blocks: every `error` record with its flattened cause chain, then the last 20 records as a timeline.
275
+
276
+ Pre-flight failures print no summary. A missing project, a rejected flag combination, or an unsupported `--backend cloudflare` feature stops before any trace exists, and each of those prints its own message explaining what to change. A build failure prints no summary either — the build streams its own output straight to the terminal.
277
+
278
+ Void masks the credentials it emits itself: signed query parameters, bearer tokens, and any field whose key names a credential.
279
+
280
+ Masking your own values is left to your CI platform, which holds the secrets and masks them before the log is written. GitHub Actions does this for everything under `secrets.*`. Void does not guess at credential-shaped variable names, and it does not parse credentials out of values you supplied — a password inside a `DATABASE_URL` in your build command prints as written. Register such values as CI secrets, or keep them out of the build command.
281
+
282
+ ```
283
+ ■ deploy: Deploy failed: deploy in progress
284
+ │ Deployment: dpl_7zgitxdrxxz9
285
+ │ Detailed log: ~/.void/logs/deploy-2026-08-21T03-24-19-764Z.jsonl
286
+ │
287
+ │ Errors
288
+ │ 9.0s deploy_server_error
289
+ │ deploymentId=dpl_7zgitxdrxxz9
290
+ │ message=deploy in progress
291
+ │
292
+ │ Last 20 of 26 entries
293
+ │ 8.4s info finalize_start assets=98 workers=0
294
+ │ 8.6s info stream_deployment_id deploymentId=dpl_7zgitxdrxxz9
295
+ │ 9.0s error deploy_server_error message=deploy in progress
296
+ ```
297
+
274
298
  Project resolution precedence:
275
299
 
276
300
  1. `--project <name>`
@@ -254,6 +254,7 @@ Curated Cloudflare Workers configuration. Cloudflare-targeted apps require an ex
254
254
  | `compatibility_date` | `string` | Cloudflare Workers compatibility date |
255
255
  | `compatibility_flags` | `string[]` | Cloudflare Workers compatibility flags |
256
256
  | `vars` | `object` | Plain-text worker variables |
257
+ | `limits` | `object` | Worker resource limit overrides |
257
258
 
258
259
  ```json
259
260
  {
@@ -269,6 +270,18 @@ Curated Cloudflare Workers configuration. Cloudflare-targeted apps require an ex
269
270
 
270
271
  `worker.vars` values must be strings. They are merged into Worker bindings before `.env` files are loaded, so project `.env` values override `worker.vars` for local dev/build. Do not put secrets here; use `env.ts` plus `void secret put` for production secrets.
271
272
 
273
+ `worker.limits.cpu_ms` caps Workers CPU time per request, in milliseconds. It must be an integer between 1 and 300000 (Cloudflare's hard maximum, 5 minutes). A deploy that requests more than your account plan's ceiling fails with an error naming both the requested value and the plan maximum. Only a rollback clamps: rolling back to a deployment whose configured limit now exceeds your plan applies the plan ceiling instead of failing. If your plan changes so that a previously valid value now exceeds the ceiling, deploys keep failing until you lower `cpu_ms` in `void.json`. On the self-hosted path (`void deploy --backend cloudflare`, or a bare `wrangler deploy` of the build output), the value is written into the generated `dist/ssr/wrangler.json` as `limits.cpu_ms` and enforced by Cloudflare directly. The Void plan ceiling does not apply there, but your Cloudflare account's own CPU-time allowance still does: the Workers Free plan caps CPU at 10 ms per request, and the Workers Paid plan allows up to 300000 ms. A value above what your Cloudflare account permits is constrained or rejected by Cloudflare, not by Void.
274
+
275
+ ```json
276
+ {
277
+ "worker": {
278
+ "limits": {
279
+ "cpu_ms": 30000
280
+ }
281
+ }
282
+ }
283
+ ```
284
+
272
285
  ### `routing`
273
286
 
274
287
  Routing and edge configuration for headers, redirects, rewrites, and caching.
@@ -396,6 +409,8 @@ Set `"404-page"` when your assets come from a static site generator (VitePress,
396
409
 
397
410
  This does **not** apply to SvelteKit, Nuxt, Analog, or Astro deploys: those pin `not_found_handling` to `"none"` because the framework's own worker owns unmatched HTML, and `void deploy` warns if you set `routing.notFound` anyway.
398
411
 
412
+ TanStack Start, React Router, and vinext honor it on a managed `void deploy`, which resolves the asset config itself. Void writes no `assets` policy into their generated worker wrangler config (`dist/server` for TanStack Start and vinext App, `build/server` for React Router, `dist/ssr` for vinext Pages), so on a self-hosted `wrangler deploy` it applies only if that config declares a complete `assets` policy of its own — `binding`, `directory`, `not_found_handling`, and `run_worker_first`. Void leaves those fields untouched, so your own policy is honored; with none, Cloudflare's default applies. `vite build` warns when it is set. See [Static Assets](../guide/edge/static-assets.md#unmatched-requests) for the per-framework paths.
413
+
399
414
  ### `inference`
400
415
 
401
416
  Configuration for build-time inference, including how Void detects your app type, bindings, and build process.
@@ -80,6 +80,7 @@ File-based HTTP API endpoints built on [Hono](https://hono.dev). Each file expor
80
80
  - **Catch-all**: `[...slug]` matches the remaining path
81
81
  - **Route groups**: `(admin)/` organizes files without affecting URL paths
82
82
  - **Files starting with `_`** are ignored
83
+ - **Environment suffix**: `debug.dev.ts` builds in development only, `metrics.prod.ts` in production only
83
84
 
84
85
  See [Server Routing](/guide/server-routing) for the full guide.
85
86