@kudzujs/core 0.10.0 → 0.10.1
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.
package/PERFORMANCE.md
CHANGED
|
@@ -1,11 +1,32 @@
|
|
|
1
1
|
# Performance Records
|
|
2
2
|
|
|
3
|
-
Reproducibility classes: `npm run benchmark`, `npm run benchmark:keyed`, `npm run benchmark:native`, `npm run benchmark:module-cache`, and `npm run benchmark:source-scale` are maintained in this repository; `npm run benchmark:commerce` is a maintained paired runner over the public external storefront; older excluded-workspace sections are historical provenance only and are not current framework rankings.
|
|
3
|
+
Reproducibility classes: `npm run benchmark`, `npm run benchmark:keyed`, `npm run benchmark:native`, `npm run benchmark:module-cache`, `npm run benchmark:project-state`, and `npm run benchmark:source-scale` are maintained in this repository; `npm run benchmark:commerce` is a maintained paired runner over the public external storefront; older excluded-workspace sections are historical provenance only and are not current framework rankings.
|
|
4
4
|
|
|
5
5
|
`npm run benchmark:source-scale` generates its fixture outside the repository so 50,000 lines of synthetic source are not tracked. The default topology is 50 pages plus 450 route-owned imported modules. Generation is excluded from timing; fresh-process samples separately report source reads, reachable-graph discovery, source compilation, clean production build, compiler-result and deploy digests, output files/bytes, cache counters, and peak RSS. `ROUTES`, `MODULES_PER_ROUTE`, `FILLER_LINES`, `WARMUPS`, and `RUNS` may reduce or expand the fixture without changing the default acceptance floor. `TARGET_ROOT` measures another checkout; `BASELINE_ROOT` alternates that checkout with the current tree and requires identical deploy output.
|
|
6
6
|
|
|
7
7
|
The maintained 2026-08-13 comparison used Node 24.14.0 and an Intel Core i5-9500 Linux x64 host, one warm-up, and seven alternating fresh-process samples against clean `v0.8.44`. A narrow fast path skips Kudzu semantic transformation for 450 plain `.ts` modules whose runtime edges are exclusively resolvable relative TypeScript imports or exports; all other modules retain the existing transformer. Compile median fell from 2,323.9 ms to 1,413.2 ms (39.2%) and clean-build median from 3,325.3 ms to 2,382.4 ms (28.4%); every paired sample improved. Compile peak-RSS median fell from 571.2 MiB to 552.6 MiB, while build peak RSS was 570.9 MiB versus 568.8 MiB. Compiler scratch fell from 7,328,390 to 1,971,061 bytes. Both targets emitted the same 50 static HTML files, 10,980 bytes, and deploy SHA-256 `e107d78a7f55bc8a1af0ea6e53efeffa19b3d44d21c892484d103fa346e7ba7b`. This is a source-scale compiler comparison, not a cross-framework result.
|
|
8
8
|
|
|
9
|
+
## 0.10.1 Project State Scale
|
|
10
|
+
|
|
11
|
+
Measured 2026-08-22 on macOS arm64 with Node 25.6.1 and Chrome
|
|
12
|
+
151.0.7922.172. `npm run benchmark:project-state` generates 1/8/32-state pages,
|
|
13
|
+
requires a clean `v0.10.0` checkout through `BASELINE_ROOT`, and verifies that
|
|
14
|
+
baseline and candidate deploy output is byte-identical before timing seven fresh
|
|
15
|
+
headless Chrome processes per scale. The shared deploy contains 10 files,
|
|
16
|
+
18,780 bytes, and digest
|
|
17
|
+
`3f83712254d95f1cf59c5034f363ea906406efa1bd9539f3bb8b9a0d54a3fdc5`.
|
|
18
|
+
|
|
19
|
+
| States / derived dependency edges | JavaScript raw / gzip | Commit runs (ms) | Median |
|
|
20
|
+
|---:|---:|---|---:|
|
|
21
|
+
| 1 / 0 | 768 / 441 B | 0.4, 0.4, 0.4, 0.5, 0.6, 0.6, 0.6 | 0.5 ms |
|
|
22
|
+
| 8 / 8 | 10,935 / 4,789 B | 0.6, 0.7, 0.6, 0.6, 0.7, 0.6, 0.6 | 0.6 ms |
|
|
23
|
+
| 32 / 32 | 11,341 / 4,841 B | 0.8, 0.8, 1.0, 0.9, 0.8, 1.0, 1.0 | 0.9 ms |
|
|
24
|
+
|
|
25
|
+
The 1-state command-only page needs only the existing command runtime. The
|
|
26
|
+
larger pages reuse the existing binding, serialization, style, and command
|
|
27
|
+
runtime modules. No normalized-state runtime, new runtime family, or generic
|
|
28
|
+
rerender path is added.
|
|
29
|
+
|
|
9
30
|
## 0.9 Shared State And Actions
|
|
10
31
|
|
|
11
32
|
Measured 2026-08-19 on Linux x64 with Node 24.14.0 and Chrome 142.0.7444.175. Baseline `abe87ceafbf70ed8eb2618976e2d1e18c378126f` and the candidate built identical final Context/Zustand cart source.
|
package/README.md
CHANGED
|
@@ -14,7 +14,7 @@ Kudzu compiles ordinary React-shaped TypeScript and TSX into complete static HTM
|
|
|
14
14
|
|
|
15
15
|
> Experimental `0.10.x`: the compiler API and supported TSX surface may change.
|
|
16
16
|
|
|
17
|
-
**Latest release: 0.10.
|
|
17
|
+
**Latest release: 0.10.1 - Application state scale.** The tracked project application now proves primitive, object, array, derived, conditional, and nested keyed state ownership with measured commit scaling and a zero-JavaScript static control. Read the [release notes](./RELEASES.md#0101---application-state-scale), open the [release page](https://github.com/kudzujs/kudzu/releases/tag/v0.10.1), or follow the [architecture packet](./docs/next-architecture/README.md).
|
|
18
18
|
|
|
19
19
|
- [Documentation](https://kudzujs.cloud/docs)
|
|
20
20
|
- [Installation guide](https://kudzujs.cloud/docs#install)
|
package/RELEASES.md
CHANGED
|
@@ -1,5 +1,54 @@
|
|
|
1
1
|
# Kudzu Releases
|
|
2
2
|
|
|
3
|
+
## 0.10.1 - Application state scale
|
|
4
|
+
|
|
5
|
+
Kudzu 0.10.1 extends the tracked project-management journey across ordinary
|
|
6
|
+
primitive, object, array, derived, conditional, nested keyed, and row-local
|
|
7
|
+
state while retaining static-first output and existing browser capabilities.
|
|
8
|
+
|
|
9
|
+
### Changed in 0.10.1
|
|
10
|
+
|
|
11
|
+
- Added deterministic workspace summary replacement, project filtering, saved
|
|
12
|
+
filters, nested issue updates, conditional summary ownership, and keyed row
|
|
13
|
+
state release/remount to the greenfield application contract.
|
|
14
|
+
- Added a maintained 1/8/32-state Chrome commit benchmark with exact `v0.10.0`
|
|
15
|
+
deploy comparison and runtime metadata.
|
|
16
|
+
- Kept direct object-field nested-list replacement outside the accepted boundary
|
|
17
|
+
after the isolated experiment failed browser replacement.
|
|
18
|
+
- Updated `create-kudzu@0.1.105` to generate projects on
|
|
19
|
+
`@kudzujs/core@^0.10.1`.
|
|
20
|
+
|
|
21
|
+
### Output Evidence
|
|
22
|
+
|
|
23
|
+
- The application fixture emits 12 files, 47,546 raw / 16,285 aggregate gzip
|
|
24
|
+
bytes, and deploy digest
|
|
25
|
+
`d50c9ff6dccba338559dd9e9141c4607ec62da30385658e617a86f7af3f52e0f`.
|
|
26
|
+
- `/app/projects` emits 39,178 raw / 14,143 aggregate gzip JavaScript bytes;
|
|
27
|
+
`/help` remains 0 B JavaScript.
|
|
28
|
+
- The generated scale deploy is byte-identical to `v0.10.0`; 1/8/32-state
|
|
29
|
+
commit medians are 0.5/0.6/0.9 ms across seven fresh Chrome processes.
|
|
30
|
+
- No semantic primitive, compiler pass, browser runtime concept, normalized
|
|
31
|
+
state, or generic rerender path was added.
|
|
32
|
+
|
|
33
|
+
### Validation
|
|
34
|
+
|
|
35
|
+
- Required Chrome verifies derived updates, nested keyed identity, conditional
|
|
36
|
+
release/remount, keyed row state reset, and zero unrelated DOM mutations.
|
|
37
|
+
- `npm run check`, the complete test suite, required-Chrome application test,
|
|
38
|
+
package smoke, registry metadata, and fresh installation are release gates.
|
|
39
|
+
|
|
40
|
+
### Limits
|
|
41
|
+
|
|
42
|
+
This release does not support direct object-field nested-list replacement,
|
|
43
|
+
arbitrary object mutation, normalized state, shared layout state, persistence,
|
|
44
|
+
authentication, or server data.
|
|
45
|
+
|
|
46
|
+
### Upgrade
|
|
47
|
+
|
|
48
|
+
```sh
|
|
49
|
+
npm install @kudzujs/core@^0.10.1
|
|
50
|
+
```
|
|
51
|
+
|
|
3
52
|
## 0.10.0 - Application capability baseline
|
|
4
53
|
|
|
5
54
|
Kudzu 0.10.0 begins the application capability release train with a durable
|
|
@@ -163,6 +163,29 @@ is made because compiler and runtime sources are unchanged.
|
|
|
163
163
|
- **Done condition:** the recorded scale remains within the material regression
|
|
164
164
|
threshold and nearby unsupported dynamic paths fail at authored locations.
|
|
165
165
|
|
|
166
|
+
**Completion evidence:** the project journey composes five ordinary route
|
|
167
|
+
states: one object, two arrays, and two primitives. Six existing reactive
|
|
168
|
+
bindings, one conditional owner, three keyed lists, one nested issue list, and
|
|
169
|
+
one keyed row-local state cover summary replacement, filtering, derived issue
|
|
170
|
+
counts, saved-filter append, conditional release/remount, keyed identity, and
|
|
171
|
+
row-state release/reset. An unrelated control records zero DOM mutations. The
|
|
172
|
+
route adds no semantic primitive, pass, browser runtime concept, normalized
|
|
173
|
+
state, or generic rerender path; the only supported source adjustment is the
|
|
174
|
+
application's use of a separate project array state at the existing keyed-list
|
|
175
|
+
boundary. Direct object-field nested-list replacement remains outside this
|
|
176
|
+
packet after its isolated experiment failed browser replacement, while the
|
|
177
|
+
existing dynamic object-property diagnostic remains source-located.
|
|
178
|
+
|
|
179
|
+
The application deploy contains 12 files, 47,546 raw / 16,285 aggregate gzip
|
|
180
|
+
bytes, with SHA-256
|
|
181
|
+
`d50c9ff6dccba338559dd9e9141c4607ec62da30385658e617a86f7af3f52e0f`.
|
|
182
|
+
`/app/projects` uses 39,178 raw / 14,143 aggregate gzip JavaScript bytes;
|
|
183
|
+
`/help` remains 0 B. The generated 1/8/32-state scale benchmark emits identical
|
|
184
|
+
deploy output under `v0.10.0` and the candidate. Seven fresh Chrome processes
|
|
185
|
+
record commit medians of 0.5/0.6/0.9 ms as the derived binding dependency edges
|
|
186
|
+
increase from 0 to 8 to 32. Runtime JavaScript is 768/10,935/11,341 raw bytes
|
|
187
|
+
and 441/4,789/4,841 aggregate gzip bytes. No material regression is present.
|
|
188
|
+
|
|
166
189
|
### `0.10.2`: Shared Layout And Cross-Route State
|
|
167
190
|
|
|
168
191
|
- **Purpose:** keep workspace/session state across an explicit application
|
|
@@ -833,6 +856,6 @@ release transaction where possible or document and publish a forward-fix patch.
|
|
|
833
856
|
|
|
834
857
|
| Patch | Status | Next exact action | Blocker |
|
|
835
858
|
|---|---|---|---|
|
|
836
|
-
| `0.10.0` |
|
|
837
|
-
| `0.10.1` |
|
|
859
|
+
| `0.10.0` | Released | Preserve the published application baseline and release evidence. | None |
|
|
860
|
+
| `0.10.1` | Active | Run the full release gate and publish the accepted state-scale evidence. | None |
|
|
838
861
|
| `0.10.2` onward | Blocked | Wait for the preceding patch acceptance and release record. | Ordered dependency |
|
|
@@ -66,7 +66,7 @@ Keep each patch behavior-preserving and independently reviewable. If a boundary
|
|
|
66
66
|
|
|
67
67
|
## Generator Versions
|
|
68
68
|
|
|
69
|
-
`create-kudzu@0.1.
|
|
69
|
+
`create-kudzu@0.1.105` retains the explicit install instructions and generates projects with `@kudzujs/core@^0.10.1`.
|
|
70
70
|
|
|
71
71
|
## Release Boundary
|
|
72
72
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kudzujs/core",
|
|
3
|
-
"version": "0.10.
|
|
3
|
+
"version": "0.10.1",
|
|
4
4
|
"description": "HTML-first TSX framework with synchronous state semantics and no virtual DOM",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
@@ -60,6 +60,7 @@
|
|
|
60
60
|
"benchmark:commerce": "node test/commerce-build-performance.mjs",
|
|
61
61
|
"benchmark:module-cache": "node test/module-cache-performance.mjs",
|
|
62
62
|
"benchmark:native": "node test/native-performance.mjs",
|
|
63
|
+
"benchmark:project-state": "node test/project-state-performance.mjs",
|
|
63
64
|
"benchmark:source-scale": "node test/source-scale-performance.mjs",
|
|
64
65
|
"prepublishOnly": "npm run check && npm test",
|
|
65
66
|
"deploy": "wrangler deploy",
|