@zerotal/arch 1.13.4 → 1.13.5

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 (2) hide show
  1. package/docs/changelog.md +41 -0
  2. package/package.json +3 -3
package/docs/changelog.md CHANGED
@@ -27,6 +27,47 @@ the section for every version you cross and apply its migration notes, not only
27
27
  majors. [Releases and versioning](/docs/support-policy#releases-and-versioning) explains
28
28
  when that carve-out ends.
29
29
 
30
+ ## 1.13.5 — 2026-09-01
31
+
32
+ **`inertia.ssr: true` server-renders now.** One config line, every page, no controller
33
+ changes — which is what the option is named for and what it did not do.
34
+
35
+ ### Fixed
36
+
37
+ - **The `ssr` flag rendered nothing.** It registered `POST /__ssr` and nothing in the
38
+ request path consulted it. So an app that set `ssr: true` and read
39
+ [the SSR guide](/docs/inertia/ssr) — which stated that the server renders the component
40
+ into the template — got exactly the empty root it had before, and the documentation was
41
+ the reason nobody suspected otherwise.
42
+
43
+ ```ts
44
+ // config/inertia.ts — this is now the whole of it
45
+ export default InertiaConfig({ ssr: true });
46
+ ```
47
+
48
+ `Inertia.render()` renders the component into the root, injects the page's `<Head>` into
49
+ the served `<head>`, and marks the root `data-server-rendered`. The scaffolded `app.tsx`
50
+ already hydrated on that attribute, so the client half needed nothing: turning SSR on is
51
+ one line, and there is no second step.
52
+
53
+ Server rendering was previously reachable only by rewriting each route to
54
+ `Inertia.stream()`, one call site at a time. Two teams did that. **They can go back to
55
+ `render()`** — and should, unless they wanted the streaming.
56
+
57
+ A component that fails to render falls back to the client-rendered document with a
58
+ warning rather than failing the route. The page still works in a browser, and taking a
59
+ route down because an _optimisation_ failed would make `ssr: true` a liability rather
60
+ than an improvement.
61
+
62
+ - **Streaming and SSR are separated in the docs.** `inertiaStream()` is not how you turn
63
+ server rendering on; it decides whether the bytes are **buffered or streamed**. Both
64
+ render the component and both hydrate. Conflating them is what made a per-route rewrite
65
+ look like the supported answer, so the comparison table and the "what a crawler sees"
66
+ remedies now lead with the config flag.
67
+
68
+ `POST /__ssr` is unchanged and documented for what it is: the contract for an
69
+ **external** renderer, not the in-process switch.
70
+
30
71
  ## 1.13.4 — 2026-09-01
31
72
 
32
73
  **Take this one if you are on 1.13.3.** The site gate shipped a staff bypass that failed
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zerotal/arch",
3
- "version": "1.13.4",
3
+ "version": "1.13.5",
4
4
  "license": "MIT",
5
5
  "maturity": "stable",
6
6
  "private": false,
@@ -35,11 +35,11 @@
35
35
  "typecheck": "tsc --noEmit"
36
36
  },
37
37
  "dependencies": {
38
- "@zerotal/core": "1.13.4"
38
+ "@zerotal/core": "1.13.5"
39
39
  },
40
40
  "devDependencies": {
41
41
  "typescript": "^5.8.0",
42
- "@zerotal/orm": "1.13.4"
42
+ "@zerotal/orm": "1.13.5"
43
43
  },
44
44
  "description": "The Zerotal agent surface — an MCP server that hands coding agents the framework's machine-readable truth: exact API signatures, live routes and schema, version-matched docs, and `zt doctor`.",
45
45
  "keywords": [