@kudzujs/core 0.13.0 → 0.13.2

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,61 @@ 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.2 Multistep Draft And Autosave
10
+
11
+ Measured 2026-08-25 on Linux x64 with Node 24.14.0 and Chrome
12
+ 142.0.7444.175. Required Chrome proves native step validation, debounced save,
13
+ server rejection of an older in-flight version, ignored stale completion,
14
+ enhanced-navigation and reload restoration, retained input on conflict, and
15
+ reset with timer and storage cleanup.
16
+
17
+ The application emits 44 files totaling 144,633 raw / 49,217 aggregate gzip
18
+ bytes with deploy SHA-256
19
+ `06a35341c5e70bfec48c46ad767ac351326b39ba701f5c1f1d03992a65ec8b9e`.
20
+ The two-route session remains 17 JavaScript files and totals 68,664 raw / 24,747
21
+ aggregate gzip bytes, 3,260 raw / 848 gzip bytes above `0.13.1`. `/help`
22
+ remains 0 B JavaScript. The added bytes are route-specific authored state,
23
+ conditions, handlers, and effects; there is no wizard or autosave runtime.
24
+
25
+ Navigation samples are `[10.7, 7.4, 3.7, 7.9, 6.1, 4.0, 5.4]` ms, with a 6.1
26
+ ms median and 3.7/10.7 ms minimum/maximum. This changes the destination and the
27
+ range is noisy, so no same-content runtime regression or improvement claim is
28
+ made.
29
+
30
+ Core semantic LOC remains 5,682 with zero new semantic primitives, IR kinds,
31
+ compiler passes, production compiler/runtime lines, normalization rules,
32
+ adapters, runtime concepts, public APIs, wizard schedulers, or autosave
33
+ schedulers. One real application fixture closes the packet through existing
34
+ state, conditional ownership, dependency-effect cleanup, owned fetch, and
35
+ versioned storage semantics.
36
+
37
+ ## 0.13.1 Nested Form Metadata
38
+
39
+ Measured 2026-08-25 on Linux x64 with Node 24.14.0 and Chrome
40
+ 142.0.7444.175. Required Chrome proves conditional assignee fields, dynamic
41
+ checklist rows, explicit dirty/touched display, stable-key reorder, removal,
42
+ native reset, exact retained/released DOM identity, and the preserved keyboard
43
+ constraint and server retry journey.
44
+
45
+ The application emits 44 files totaling 138,064 raw / 47,964 aggregate gzip
46
+ bytes with deploy SHA-256
47
+ `f0d96cfd5dee2cf3fa67f4ebe25d8b32cbb1bf66e72ed5ca1c29bd06fdcc0a33`.
48
+ The two-route session remains 17 JavaScript files and totals 65,404 raw / 23,899
49
+ aggregate gzip bytes, 3,286 raw / 803 gzip bytes above `0.13.0`. `/help`
50
+ remains 0 B JavaScript. The added bytes are route-specific authored handlers,
51
+ bindings, conditionals, and keyed-list descriptors; there is no shared form
52
+ runtime.
53
+
54
+ Navigation samples are `[3.5, 3.3, 4.4, 3.3, 3.2, 4.7, 3.3]` ms, with a 3.3
55
+ ms median and 3.2/4.7 ms minimum/maximum. The range overlaps `0.13.0`, and the
56
+ destination now contains dynamic nested form behavior, so no same-content
57
+ runtime regression or improvement claim is made.
58
+
59
+ Core semantic LOC remains 5,682 with no semantic primitive, IR kind, compiler
60
+ pass, production compiler/runtime line, normalization rule, adapter, runtime
61
+ concept, public API, registration function, proxy metadata graph, schema
62
+ adapter, or form runtime.
63
+
9
64
  ## 0.13.0 Production Form And Server Validation
10
65
 
11
66
  Measured 2026-08-24 on Linux x64 with Node 24.14.0 and Chrome
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.13.x`: the compiler API and supported TSX surface may change.
16
16
 
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).
17
+ **Latest release: 0.13.2 - Multistep draft and autosave.** Native step validation, debounced versioned saves, stale-write rejection, navigation and reload restoration, conflict retention, and reset compose without a wizard or autosave runtime. Read the [release notes](./RELEASES.md#0132---multistep-draft-and-autosave), open the [release page](https://github.com/kudzujs/kudzu/releases/tag/v0.13.2), 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,108 @@
1
1
  # Kudzu Releases
2
2
 
3
+ ## 0.13.2 - Multistep Draft And Autosave
4
+
5
+ Kudzu 0.13.2 composes a persistent two-step draft and debounced server save
6
+ from ordinary route state and owned effects without a wizard or autosave runtime.
7
+
8
+ ### Changed in 0.13.2
9
+
10
+ - Added native first-step validation and conditional step navigation over
11
+ parent-owned draft values.
12
+ - Added guarded versioned local-storage restore and immediate draft persistence
13
+ across enhanced navigation and document reload.
14
+ - Added a direct dependency effect with timeout cleanup for debounced owned
15
+ server writes.
16
+ - Rejected stale server versions and ignored late stale completions while
17
+ retaining the current draft through conflict and transport failures.
18
+ - Added reset of step, values, status, version, storage, and pending debounce.
19
+ - Updated `create-kudzu@0.1.120` to generate projects on
20
+ `@kudzujs/core@^0.13.2`.
21
+
22
+ ### Output Evidence
23
+
24
+ - The application emits 44 files totaling 144,633 raw / 49,217 aggregate gzip
25
+ bytes with deploy digest
26
+ `06a35341c5e70bfec48c46ad767ac351326b39ba701f5c1f1d03992a65ec8b9e`.
27
+ - The maintained two-route session remains 17 JavaScript files and totals
28
+ 68,664 raw / 24,747 aggregate gzip bytes; `/help` remains 0 B JavaScript.
29
+ - No semantic primitive, IR kind, compiler pass, production compiler/runtime
30
+ line, normalization rule, adapter, runtime concept, public API, wizard
31
+ scheduler, or autosave scheduler was added.
32
+
33
+ ### Validation
34
+
35
+ - Required Chrome proves native validation, debounced save, server rejection of
36
+ an older in-flight version, ignored stale completion, navigation and reload
37
+ restoration, retained conflict input, and reset cleanup.
38
+ - The complete serial suite passes 273 tests, including the preserved nested
39
+ issue-form and server retry journey.
40
+ - Seven fresh Chrome profiles record a 6.1 ms list-to-detail median with a
41
+ 3.7-10.7 ms range. The destination changed and the range is noisy, so no
42
+ same-content latency change is claimed.
43
+
44
+ ### Limits
45
+
46
+ Draft persistence remains application-owned and versioned per form. Dynamic
47
+ step schemas, cross-document coordination, background sync, retry scheduling,
48
+ and a general autosave scheduler remain unsupported until independent real
49
+ applications prove a shared framework boundary.
50
+
51
+ ### Upgrade
52
+
53
+ ```sh
54
+ npm install @kudzujs/core@^0.13.2
55
+ ```
56
+
57
+ ## 0.13.1 - Nested Form Metadata
58
+
59
+ Kudzu 0.13.1 composes conditional fields, dynamic keyed rows, dirty/touched
60
+ display, and reset from ordinary application state without a form registry.
61
+
62
+ ### Changed in 0.13.1
63
+
64
+ - Added conditional assignee fields backed by one ordinary object state.
65
+ - Added dynamic checklist rows with immutable add, reorder, remove, input, and
66
+ touched updates over one ordinary array state.
67
+ - Preserved exact keyed DOM identity through reorder and reset while releasing
68
+ removed and reset-added rows.
69
+ - Kept native constraints, field/form server errors, retained values, and retry
70
+ behavior from `0.13.0`.
71
+ - Updated `create-kudzu@0.1.119` to generate projects on
72
+ `@kudzujs/core@^0.13.1`.
73
+
74
+ ### Output Evidence
75
+
76
+ - The application emits 44 files totaling 138,064 raw / 47,964 aggregate gzip
77
+ bytes with deploy digest
78
+ `f0d96cfd5dee2cf3fa67f4ebe25d8b32cbb1bf66e72ed5ca1c29bd06fdcc0a33`.
79
+ - The maintained two-route session remains 17 JavaScript files and totals
80
+ 65,404 raw / 23,899 aggregate gzip bytes; `/help` remains 0 B JavaScript.
81
+ - No semantic primitive, IR kind, compiler pass, production compiler/runtime
82
+ line, normalization rule, adapter, public API, registration function, proxy
83
+ metadata graph, schema adapter, or form runtime was added.
84
+
85
+ ### Validation
86
+
87
+ - Required Chrome proves dirty/touched output, conditional ownership, stable-key
88
+ reorder, removal release, native reset, and exact retained/released identity.
89
+ - The existing keyboard validation and delayed `422`, `503`, and `201` journey
90
+ passes while nested assignee and checklist values survive failures.
91
+ - Seven fresh Chrome profiles record a 3.3 ms list-to-detail median with a
92
+ 3.2-4.7 ms range. The range overlaps `0.13.0`, so no latency change is claimed.
93
+
94
+ ### Limits
95
+
96
+ Dynamic field names, schema-driven registration, generic watchers, and proxy
97
+ dirty/touched graphs remain unsupported. Add framework metadata only after
98
+ independent real forms prove the same otherwise-inexpressible graph.
99
+
100
+ ### Upgrade
101
+
102
+ ```sh
103
+ npm install @kudzujs/core@^0.13.1
104
+ ```
105
+
3
106
  ## 0.13.0 - Production Form And Server Validation
4
107
 
5
108
  Kudzu 0.13.0 compiles an accessible issue-creation form from ordinary TSX
@@ -752,6 +752,39 @@ same-content compiler/runtime comparison or a latency improvement claim.
752
752
  - **Done condition:** application composition is accepted or the smallest
753
753
  repeated metadata semantic is isolated.
754
754
 
755
+ **Completion evidence:** the maintained Alpha issue form now owns nested
756
+ assignee metadata as one ordinary object state and a dynamic checklist as one
757
+ ordinary array state with stable string keys. Native `input`, `blur`, `change`,
758
+ and `reset` events drive explicit dirty/touched display, conditional assignee
759
+ fields, immutable checklist add/reorder/remove operations, and reset to the
760
+ authored baseline. Required Chrome proves retained checklist keys preserve exact
761
+ DOM identity through reorder and reset, removed and reset-added keys disconnect,
762
+ conditional ownership releases the assignee controls, and native reset clears
763
+ uncontrolled title/body values plus application-owned metadata. The existing
764
+ keyboard constraints and delayed `422`, `503`, and `201` server journey continue
765
+ to pass while nested assignee/checklist values survive field and form failures.
766
+
767
+ The first failing fixture was the `0.13.1` project-application contract against
768
+ the released `0.13.0` Alpha form. Native controls and existing object/array
769
+ state, condition, keyed-list, binding, and handler semantics close it without a
770
+ normalization rule, adapter, semantic primitive, IR kind, compiler pass,
771
+ production compiler/runtime line, runtime concept, public API, registration
772
+ function, proxy metadata graph, schema adapter, or form runtime. The
773
+ machine-readable decision is `closed-by-application-composition`; dynamic field
774
+ names, schema-driven registration, generic watchers, and proxy dirty/touched
775
+ graphs remain unsupported until independent real forms prove a repeated gap.
776
+
777
+ The application emits 44 files totaling 138,064 raw / 47,964 aggregate gzip
778
+ bytes with deploy SHA-256
779
+ `f0d96cfd5dee2cf3fa67f4ebe25d8b32cbb1bf66e72ed5ca1c29bd06fdcc0a33`.
780
+ The maintained two-route session remains 17 JavaScript files and grows by 3,286
781
+ raw / 803 aggregate gzip bytes to 65,404 / 23,899 bytes. This is authored
782
+ route-specific form behavior, not a shared form runtime; `/help` remains 0 B
783
+ JavaScript. Seven fresh Linux x64 Chrome 142 profiles record list-to-detail
784
+ samples of `[3.5, 3.3, 4.4, 3.3, 3.2, 4.7, 3.3]` ms, a 3.3 ms median and
785
+ 3.2/4.7 ms range. The range overlaps `0.13.0` and the destination content
786
+ changed, so no latency regression or improvement is claimed.
787
+
755
788
  ### `0.13.2`: Multistep Draft And Autosave
756
789
 
757
790
  - **Purpose:** prove draft persistence across steps and failures.
@@ -762,6 +795,33 @@ same-content compiler/runtime comparison or a latency improvement claim.
762
795
  - **Stop condition:** a wizard or autosave scheduler is added for one form.
763
796
  - **Done condition:** no data loss occurs across navigation, reload, or failure.
764
797
 
798
+ Development evidence is complete. The Alpha application now owns a two-step
799
+ project setup draft with native first-step constraints, parent-owned values,
800
+ versioned local storage, one mount restore effect, and one dependency effect
801
+ whose direct timeout cleanup debounces an owned server write. Required Chrome
802
+ proves step navigation, validation, two overlapping versions, server rejection
803
+ of the older save, ignored stale completion, enhanced-navigation restoration,
804
+ reload restoration, retained conflict input, and reset of state, storage, and
805
+ pending work.
806
+
807
+ The first failing fixture was the `0.13.2` project-application contract against
808
+ the released `0.13.1` Alpha route. Existing ordinary state, conditional
809
+ ownership, dependency invalidation, effect cleanup, owned fetch, late-write
810
+ rejection, and guarded versioned storage close it without a semantic primitive,
811
+ IR kind, compiler pass, production compiler/runtime line, normalization rule,
812
+ adapter, runtime concept, public API, wizard scheduler, or autosave scheduler.
813
+ The machine-readable decision is `closed-by-application-composition`.
814
+
815
+ The application emits 44 files totaling 144,633 raw / 49,217 aggregate gzip
816
+ bytes with deploy SHA-256
817
+ `06a35341c5e70bfec48c46ad767ac351326b39ba701f5c1f1d03992a65ec8b9e`.
818
+ The maintained two-route session remains 17 JavaScript files and grows by 3,260
819
+ raw / 848 aggregate gzip bytes to 68,664 / 24,747 bytes; `/help` remains 0 B
820
+ JavaScript. Seven fresh Linux x64 Chrome 142 profiles record list-to-detail
821
+ samples of `[10.7, 7.4, 3.7, 7.9, 6.1, 4.0, 5.4]` ms, a 6.1 ms median and
822
+ 3.7/10.7 ms range. The destination content changed and the range is noisy, so
823
+ no same-content latency regression or improvement is claimed.
824
+
765
825
  ### `0.13.3`: File Upload Boundary
766
826
 
767
827
  - **Purpose:** move beyond local file reading to a real upload lifecycle.
@@ -1270,5 +1330,7 @@ release transaction where possible or document and publish a forward-fix patch.
1270
1330
  | `0.12.3` | Released | Preserve the published route failure, focused retry, native fallback, and precommit retention evidence. | None |
1271
1331
  | `0.12.4` | Released | Preserve the published single-layout decision and zero-owner-chain evidence. | None |
1272
1332
  | `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 |
1333
+ | `0.13.1` | Released | Preserve application-owned nested metadata, keyed row identity, release, and reset evidence. | None |
1334
+ | `0.13.2` | Released | Preserve multistep validation, versioned persistence, stale-save rejection, conflict retention, and reset evidence. | None |
1335
+ | `0.13.3` | Active | Complete the file upload boundary packet. | None |
1336
+ | `0.14.0` onward | Blocked | Complete the `0.13.3` 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.118` retains the explicit install instructions and generates projects with `@kudzujs/core@^0.13.0`.
69
+ `create-kudzu@0.1.120` retains the explicit install instructions and generates projects with `@kudzujs/core@^0.13.2`.
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.13.0",
3
+ "version": "0.13.2",
4
4
  "description": "HTML-first TSX framework with synchronous state semantics and no virtual DOM",
5
5
  "type": "module",
6
6
  "license": "MIT",