@kudzujs/core 0.12.4 → 0.13.0
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
|
@@ -6,6 +6,34 @@ Reproducibility classes: `npm run benchmark`, `npm run benchmark:keyed`, `npm ru
|
|
|
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.13.0 Production Form And Server Validation
|
|
10
|
+
|
|
11
|
+
Measured 2026-08-24 on Linux x64 with Node 24.14.0 and Chrome
|
|
12
|
+
142.0.7444.175. Required Chrome uses real Enter key input to prove native empty
|
|
13
|
+
and minimum-length constraints, then executes delayed field-error, form-error,
|
|
14
|
+
and successful issue-creation responses. Pending state, focused and ARIA-linked
|
|
15
|
+
field feedback, alert/status roles, exact requests, retry, and retained valid
|
|
16
|
+
input all pass.
|
|
17
|
+
|
|
18
|
+
The application emits 44 files totaling 127,343 raw / 46,261 aggregate gzip
|
|
19
|
+
bytes with deploy SHA-256
|
|
20
|
+
`183f5a7ca081f99ae38de6974e61fdcb32ca49de699359aac053d0154ae38036`.
|
|
21
|
+
The two-route session uses 17 JavaScript files totaling 62,118 raw / 23,096
|
|
22
|
+
aggregate gzip bytes. Compared with `0.12.4`, the authored form, three primitive
|
|
23
|
+
states, one ref, and one route-specific handler add 992 raw / 433 aggregate gzip
|
|
24
|
+
session bytes and one browser file. `/help` remains 0 B JavaScript.
|
|
25
|
+
|
|
26
|
+
Navigation samples are `[3.8, 5.6, 4.3, 2.6, 2.9, 3.6, 3.1]` ms, with a 3.6 ms
|
|
27
|
+
median and 2.6/5.6 ms minimum/maximum. The range does not overlap the `0.12.4`
|
|
28
|
+
1.5/2.4 ms range. This is a changed-content application measurement: the
|
|
29
|
+
destination now parses and mounts the complete issue form and route handler.
|
|
30
|
+
Production compiler/runtime source is unchanged, so no same-content runtime
|
|
31
|
+
regression or improvement claim is made.
|
|
32
|
+
|
|
33
|
+
Core semantic LOC remains 5,682 with no semantic primitive, IR kind, compiler
|
|
34
|
+
pass, production compiler/runtime line, runtime concept, public API, form
|
|
35
|
+
registry, metadata proxy, schema adapter, or form runtime.
|
|
36
|
+
|
|
9
37
|
## 0.12.4 Nested Layout Evidence Decision
|
|
10
38
|
|
|
11
39
|
Verified 2026-08-24 on Linux x64 with Node 24.14.0 and Chrome
|
package/README.md
CHANGED
|
@@ -12,9 +12,9 @@ Kudzu compiles ordinary React-shaped TypeScript and TSX into complete static HTM
|
|
|
12
12
|
|
|
13
13
|
*Watch: React-shaped TSX to static HTML and route-specific ESM in 22 seconds.*
|
|
14
14
|
|
|
15
|
-
> Experimental `0.
|
|
15
|
+
> Experimental `0.13.x`: the compiler API and supported TSX surface may change.
|
|
16
16
|
|
|
17
|
-
**Latest release: 0.
|
|
17
|
+
**Latest release: 0.13.0 - Production form and server validation.** Native constraints, application-owned pending and error state, focused field feedback, retained input, and retry ship without a form runtime. Read the [release notes](./RELEASES.md#0130---production-form-and-server-validation), open the [release page](https://github.com/kudzujs/kudzu/releases/tag/v0.13.0), 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.13.0 - Production Form And Server Validation
|
|
4
|
+
|
|
5
|
+
Kudzu 0.13.0 compiles an accessible issue-creation form from ordinary TSX
|
|
6
|
+
without adding a form runtime, field registry, or metadata proxy.
|
|
7
|
+
|
|
8
|
+
### Changed in 0.13.0
|
|
9
|
+
|
|
10
|
+
- Added a native issue form with `required` and `minLength` constraints,
|
|
11
|
+
keyboard submission, `FormData`, and application-owned pending state.
|
|
12
|
+
- Preserved field-level and form-level server errors, focused and ARIA-linked
|
|
13
|
+
field feedback, valid input across failures, and retry without re-entry.
|
|
14
|
+
- Reused existing state, ref, conditional, binding, and async handler semantics;
|
|
15
|
+
production compiler and runtime source remain unchanged.
|
|
16
|
+
- Updated `create-kudzu@0.1.118` to generate projects on
|
|
17
|
+
`@kudzujs/core@^0.13.0`.
|
|
18
|
+
|
|
19
|
+
### Output Evidence
|
|
20
|
+
|
|
21
|
+
- The application emits 44 files totaling 127,343 raw / 46,261 aggregate gzip
|
|
22
|
+
bytes with deploy digest
|
|
23
|
+
`183f5a7ca081f99ae38de6974e61fdcb32ca49de699359aac053d0154ae38036`.
|
|
24
|
+
- The maintained two-route session uses 17 JavaScript files totaling 62,118 raw
|
|
25
|
+
/ 23,096 aggregate gzip bytes; `/help` remains 0 B JavaScript.
|
|
26
|
+
- No semantic primitive, IR kind, compiler pass, production compiler/runtime
|
|
27
|
+
line, runtime concept, public API, form registry, schema adapter, or form
|
|
28
|
+
runtime was added.
|
|
29
|
+
|
|
30
|
+
### Validation
|
|
31
|
+
|
|
32
|
+
- Required Chrome sends real Enter key input and proves native empty and
|
|
33
|
+
minimum-length constraints make zero requests.
|
|
34
|
+
- Deterministic delayed `422`, `503`, and `201` responses prove pending state,
|
|
35
|
+
exact request counts, field and form feedback, retained input, and retry.
|
|
36
|
+
- Seven fresh Chrome profiles record a 3.6 ms list-to-detail median with a
|
|
37
|
+
2.6-5.6 ms range. This measures the changed destination form and handler, not
|
|
38
|
+
a same-content compiler/runtime regression.
|
|
39
|
+
|
|
40
|
+
### Limits
|
|
41
|
+
|
|
42
|
+
Nested fields, field arrays, dirty/touched metadata, dynamic schemas, and form
|
|
43
|
+
registries remain unsupported. The `0.13.1` packet must first prove which of
|
|
44
|
+
those behaviors cannot be expressed with native controls and ordinary state.
|
|
45
|
+
|
|
46
|
+
### Upgrade
|
|
47
|
+
|
|
48
|
+
```sh
|
|
49
|
+
npm install @kudzujs/core@^0.13.0
|
|
50
|
+
```
|
|
51
|
+
|
|
3
52
|
## 0.12.4 - Nested Layout Evidence Decision
|
|
4
53
|
|
|
5
54
|
Kudzu 0.12.4 reviews executable route ownership evidence and keeps the existing
|
|
@@ -710,6 +710,37 @@ with no generated-output change.
|
|
|
710
710
|
- **Done condition:** complete accessible create/edit behavior passes without a
|
|
711
711
|
form runtime.
|
|
712
712
|
|
|
713
|
+
**Completion evidence:** the maintained Alpha project detail now authors one
|
|
714
|
+
ordinary uncontrolled issue form with native `required` and `minLength`
|
|
715
|
+
constraints, `FormData`, three route-owned primitive states, one object ref, and
|
|
716
|
+
one async submit handler. Required Chrome sends real Enter key events through
|
|
717
|
+
the browser input domain and proves empty and short titles make zero requests.
|
|
718
|
+
For valid input, the deterministic server returns a delayed `422` field error,
|
|
719
|
+
then a `503` form error, then a `201` success. The journey verifies pending
|
|
720
|
+
disable/label state, title focus, `aria-invalid` and `aria-describedby` linkage,
|
|
721
|
+
alert/status roles, exact attempt/create counts, retry without re-entry, and
|
|
722
|
+
retention of the valid title and description through every response.
|
|
723
|
+
|
|
724
|
+
The existing native-form, state, ref, conditional, binding, and handler
|
|
725
|
+
semantics cover the complete packet. Production compiler and runtime source do
|
|
726
|
+
not change. The application route grows from 20 to 70 authored lines and emits
|
|
727
|
+
one additional route handler file; no form package, registration API, proxy
|
|
728
|
+
metadata graph, schema adapter, semantic primitive, IR kind, compiler pass,
|
|
729
|
+
runtime concept, public API, or browser runtime file is added. `/help` remains
|
|
730
|
+
complete HTML with 0 B JavaScript.
|
|
731
|
+
|
|
732
|
+
The project application emits 44 files totaling 127,343 raw / 46,261 aggregate
|
|
733
|
+
gzip bytes with deploy SHA-256
|
|
734
|
+
`183f5a7ca081f99ae38de6974e61fdcb32ca49de699359aac053d0154ae38036`.
|
|
735
|
+
The two-route session uses 17 JavaScript files totaling 62,118 raw / 23,096
|
|
736
|
+
aggregate gzip bytes, 992 raw / 433 gzip bytes above `0.12.4`; the detail route
|
|
737
|
+
itself adds the same 992 raw bytes and 440 gzip bytes. Seven fresh Linux x64
|
|
738
|
+
Chrome 142 profiles record list-to-detail samples of
|
|
739
|
+
`[3.8, 5.6, 4.3, 2.6, 2.9, 3.6, 3.1]` ms, a 3.6 ms median and 2.6/5.6 ms range.
|
|
740
|
+
The range does not overlap `0.12.4`; this is the measured cost of adding the
|
|
741
|
+
form DOM and route-specific handler to the destination application route, not a
|
|
742
|
+
same-content compiler/runtime comparison or a latency improvement claim.
|
|
743
|
+
|
|
713
744
|
### `0.13.1`: Nested Fields, Field Arrays, Dirty, And Touched
|
|
714
745
|
|
|
715
746
|
- **Purpose:** determine which form metadata needs framework support.
|
|
@@ -1238,5 +1269,6 @@ release transaction where possible or document and publish a forward-fix patch.
|
|
|
1238
1269
|
| `0.12.2` | Released | Preserve the published authentication and permission evidence. | None |
|
|
1239
1270
|
| `0.12.3` | Released | Preserve the published route failure, focused retry, native fallback, and precommit retention evidence. | None |
|
|
1240
1271
|
| `0.12.4` | Released | Preserve the published single-layout decision and zero-owner-chain evidence. | None |
|
|
1241
|
-
| `0.13.0` |
|
|
1242
|
-
| `0.13.1`
|
|
1272
|
+
| `0.13.0` | Released | Preserve native constraints, server feedback, focused field errors, retained input, and retry evidence. | None |
|
|
1273
|
+
| `0.13.1` | Active | Complete the nested fields, field arrays, dirty, and touched packet. | None |
|
|
1274
|
+
| `0.13.2` onward | Blocked | Complete the `0.13.1` release transaction first. | Ordered patch boundary |
|
|
@@ -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.118` retains the explicit install instructions and generates projects with `@kudzujs/core@^0.13.0`.
|
|
70
70
|
|
|
71
71
|
## Release Boundary
|
|
72
72
|
|