@kudzujs/core 0.11.1 → 0.11.3

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,23 @@ 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.11.3 Project Optimistic Mutation
10
+
11
+ Measured 2026-08-22 on macOS arm64 with Node 25.6.1 and Chrome
12
+ 151.0.7922.172. `RUNS=21 npm run benchmark:project-navigation` retains the same
13
+ fetch-complete list-to-detail interval; the required application journey
14
+ separately executes optimistic failure, rollback, retry, and success.
15
+
16
+ The two-route session uses 15 unique JavaScript files totaling 56,318 raw /
17
+ 21,211 aggregate gzip bytes. Navigation samples are
18
+ `[0.7, 0.7, 0.8, 0.8, 0.9, 0.7, 0.8, 0.8, 0.8, 0.8, 0.7, 0.8, 0.9, 0.7, 0.8, 0.9, 0.8, 0.9, 1.0, 0.9, 0.7]`
19
+ ms, with a 0.8 ms median and 0.7/1.0 ms minimum/maximum.
20
+
21
+ Compared with `0.11.2`, the authored mutation status/error state, conditional
22
+ UI, and async handler add 582 raw / 3 aggregate gzip session bytes. The prior
23
+ 0.9 ms median and 0.7/1.2 ms range overlap, so no latency change is claimed. No
24
+ compiler or browser-runtime source changed, and `/help` remains 0 B JavaScript.
25
+
9
26
  ## 0.11.1 Project List/Detail Consistency
10
27
 
11
28
  Measured 2026-08-22 on macOS arm64 with Node 25.6.1 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.11.x`: the compiler API and supported TSX surface may change.
16
16
 
17
- **Latest release: 0.11.1 - List/detail data consistency.** One layout-owned project record now remains consistent across list/detail navigation, one server mutation, and document reload with exact request counts and no query runtime. Read the [release notes](./RELEASES.md#0111---listdetail-data-consistency), open the [release page](https://github.com/kudzujs/kudzu/releases/tag/v0.11.1), or follow the [architecture packet](./docs/next-architecture/README.md).
17
+ **Latest release: 0.11.3 - Optimistic mutation and rollback.** One layout-owned handler now proves optimistic list/detail state, disabled duplicate submission, exact HTTP-failure rollback, accessible error, retry, navigation, and reload without a transaction runtime. Read the [release notes](./RELEASES.md#0113---optimistic-mutation-and-rollback), open the [release page](https://github.com/kudzujs/kudzu/releases/tag/v0.11.3), 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,98 @@
1
1
  # Kudzu Releases
2
2
 
3
+ ## 0.11.3 - Optimistic Mutation And Rollback
4
+
5
+ Kudzu 0.11.3 proves optimistic server mutation with ordinary shared state and
6
+ one owned async handler rather than a transaction runtime.
7
+
8
+ ### Changed in 0.11.3
9
+
10
+ - Added immediate optimistic project name/revision updates visible from list and
11
+ detail routes.
12
+ - Disabled duplicate submission after the synchronous-turn optimistic commit.
13
+ - Restored the exact prior state after an HTTP 500 and exposed an accessible
14
+ error.
15
+ - Proved retry success, retained keyed row identity, enhanced navigation, and
16
+ server restoration after document reload.
17
+ - Updated `create-kudzu@0.1.111` to generate projects on
18
+ `@kudzujs/core@^0.11.3`.
19
+
20
+ ### Output Evidence
21
+
22
+ - The application emits 19 files, 73,202 raw / 25,057 aggregate gzip bytes, and
23
+ deploy digest
24
+ `40c68fef4eeba5ea4c1a92e9a8003b74e6a45b7a10671ee2f3e4952010117b26`.
25
+ - The list/detail session uses 15 unique JavaScript files totaling 56,318 raw /
26
+ 21,211 aggregate gzip bytes; `/help` remains 0 B JavaScript.
27
+ - Twenty-one fresh Chrome profiles record a 0.8 ms navigation median and
28
+ 0.7/1.0 ms range.
29
+ - No semantic primitive, compiler pass, production compiler line, runtime
30
+ concept, transaction primitive, cache, or scheduler was added.
31
+
32
+ ### Validation
33
+
34
+ - Required Chrome proves optimistic state, one accepted attempt after failure,
35
+ exact rollback, retry, identity, navigation, and reload.
36
+ - The full suite, package smoke, registry metadata, and fresh installation are
37
+ release gates.
38
+
39
+ ### Limits
40
+
41
+ The authored handler owns one mutation and snapshot. Generic transactions and
42
+ same-turn programmatic reentrancy are not application semantics.
43
+
44
+ ### Upgrade
45
+
46
+ ```sh
47
+ npm install @kudzujs/core@^0.11.3
48
+ ```
49
+
50
+ ## 0.11.2 - Request Coordination Evidence
51
+
52
+ Kudzu 0.11.2 reviews three unrelated server-data fixtures and closes shared
53
+ request coordination without adding a new semantic primitive.
54
+
55
+ ### Changed in 0.11.2
56
+
57
+ - Reviewed the project application, TanStack Query-shaped product loading, and
58
+ Apache Answer/SWR-shaped question loading.
59
+ - Machine-recorded that all three use one explicit owner, ordinary state, one
60
+ owned fetch effect, dependency invalidation, cleanup, and static exclusion.
61
+ - Recorded no repeated same-key independent owners, subscriber lifetime,
62
+ mutation invalidation, retained query result, or cache-bound requirement.
63
+ - Updated `create-kudzu@0.1.110` to generate projects on
64
+ `@kudzujs/core@^0.11.2`.
65
+
66
+ ### Output Evidence
67
+
68
+ - The project application remains byte-identical at 20 files, 69,501 raw /
69
+ 24,649 aggregate gzip bytes, and deploy digest
70
+ `bc6335131b7867da2857621211919fad43ebfb9414aac711c45f0c8ed3803022`.
71
+ - The list/detail session remains 55,736 raw / 21,208 aggregate gzip JavaScript
72
+ bytes; `/help` remains 0 B JavaScript.
73
+ - No semantic primitive, compiler pass, production compiler line, runtime
74
+ concept, request registry, subscriber set, invalidation graph, cache, or
75
+ browser byte was added.
76
+
77
+ ### Validation
78
+
79
+ - Existing required-Chrome journeys remain the executable evidence for all
80
+ three reviewed fixtures.
81
+ - The full suite, package smoke, registry metadata, and fresh installation are
82
+ release gates.
83
+
84
+ ### Limits
85
+
86
+ Automatic same-key deduplication and retained query data remain unsupported.
87
+ They require repeated executable pressure from independent owners before a
88
+ shared primitive can be reconsidered.
89
+
90
+ ### Upgrade
91
+
92
+ ```sh
93
+ npm install @kudzujs/core@^0.11.2
94
+ ```
95
+
3
96
  ## 0.11.1 - List/Detail Data Consistency
4
97
 
5
98
  Kudzu 0.11.1 proves that ordinary layout-owned state and one native fetch effect
@@ -363,6 +363,13 @@ bytes over `0.11.0`. Twenty-one fresh Chrome profiles record a 0.9 ms median
363
363
  list-to-detail completion with a 0.7/1.2 ms range, overlapping the prior
364
364
  0.6/1.3 ms range; no latency change is claimed.
365
365
 
366
+ Clean-worktree `npm run check`, 273/273 required-Chrome tests, and packed-package
367
+ smoke passed on 2026-08-22. Release commit `5bab3fe`, tag `v0.11.1`, feature CI
368
+ `32573961250`, the GitHub release, `@kudzujs/core@0.11.1`,
369
+ `create-kudzu@0.1.109`, registry metadata, and a fresh registry-backed scaffold
370
+ install/check passed. Publish workflow `32574182988` completed every version,
371
+ package, publication, and registry gate.
372
+
366
373
  ### `0.11.2`: Shared Request Coordination
367
374
 
368
375
  - **Purpose:** implement only the deduplication, subscriber, and invalidation
@@ -377,6 +384,38 @@ list-to-detail completion with a 0.7/1.2 ms range, overlapping the prior
377
384
  - **Done condition:** architecture review records the reused or new primitive,
378
385
  runtime bytes, cache bound, and cleanup behavior.
379
386
 
387
+ **Completion evidence:** architecture review covers three unrelated executable
388
+ fixtures: the project application, TanStack Query-shaped product loading, and
389
+ Apache Answer/SWR-shaped question loading. Every fixture has one explicit data
390
+ owner, ordinary loading/error/data state, one native fetch effect, dependency or
391
+ owner invalidation, exact cleanup, and static exclusion. None has two independent
392
+ owners requesting one key, independently releasable subscribers, mutation-key
393
+ invalidation, retained results after owner release, or a cache bound.
394
+
395
+ The stop condition is met and this packet closes with no new primitive. The
396
+ project application records `closed-no-new-primitive`, the three reviewed
397
+ fixtures, an empty repeated-missing-contract list, and the reused semantics in
398
+ its machine-readable capability contract. Existing fixture journeys remain the
399
+ executable behavioral evidence. Absence of generic deduplication is not itself
400
+ fixture pressure.
401
+
402
+ This packet adds zero semantic primitives, ModuleIR kinds, compiler passes,
403
+ production compiler lines, runtime concepts, normalization rules, adapter rules,
404
+ public APIs, request registries, subscriber sets, invalidation graphs, caches, or
405
+ browser bytes. One existing machine-readable contract and assertion change;
406
+ all three existing positive fixtures remain behaviorally unchanged. The project
407
+ application retains its 20-file, 69,501 raw / 24,649 aggregate gzip deploy and
408
+ 55,736 raw / 21,208 aggregate gzip two-route JavaScript session. Cache bound is
409
+ not applicable because no cache exists; cleanup remains existing effect and
410
+ route/layout owner release.
411
+
412
+ Clean-worktree `npm run check`, 273/273 required-Chrome tests, and packed-package
413
+ smoke passed on 2026-08-22. Release commit `0ae4d5d`, tag `v0.11.2`, CI
414
+ `32575316981`, the GitHub release, `@kudzujs/core@0.11.2`,
415
+ `create-kudzu@0.1.110`, registry metadata, and a fresh registry-backed scaffold
416
+ install/check passed. Publish workflow `32575541567` completed every version,
417
+ package, publication, and registry gate.
418
+
380
419
  ### `0.11.3`: Mutation, Optimistic Update, And Rollback
381
420
 
382
421
  - **Purpose:** complete issue create/edit/delete behavior under failure.
@@ -390,6 +429,30 @@ list-to-detail completion with a 0.7/1.2 ms range, overlapping the prior
390
429
  - **Done condition:** data integrity survives success, failure, navigation, and
391
430
  retry.
392
431
 
432
+ **Completion evidence:** one layout-owned async rename handler snapshots the
433
+ current project name/revision, writes an immediate optimistic value, disables its
434
+ button after the synchronous-turn commit, and sends one native POST. The
435
+ deterministic server rejects the first attempt. The handler restores the exact
436
+ snapshot, exposes `HTTP 500` through an accessible alert, and leaves the retained
437
+ keyed row identity unchanged. A retry from detail writes the optimistic value,
438
+ clears the alert, commits the confirmed revision, survives list/detail
439
+ navigation, and restores from server truth after full document reload. Counts
440
+ record two attempts, one accepted mutation, and no mutation-triggered GET.
441
+
442
+ Existing immediate setters, native async handlers, shared layout signals, and
443
+ owner authority are sufficient. This packet adds zero semantic primitives,
444
+ ModuleIR kinds, compiler passes, production compiler lines, runtime concepts,
445
+ normalization rules, adapter rules, public APIs, transaction primitives, caches,
446
+ or schedulers. One positive application fixture gains optimistic success,
447
+ failure, rollback, disabled duplicate submission, navigation, retry, and reload
448
+ cases. It emits 19 files totaling 73,202 raw / 25,057 aggregate gzip bytes with
449
+ deploy SHA-256
450
+ `40c68fef4eeba5ea4c1a92e9a8003b74e6a45b7a10671ee2f3e4952010117b26`.
451
+ The two-route session uses 15 JavaScript files totaling 56,318 raw / 21,211
452
+ aggregate gzip bytes, an authored application increase of 582 raw / 3 gzip bytes
453
+ over `0.11.2`. Twenty-one fresh Chrome profiles record a 0.8 ms median with a
454
+ 0.7/1.0 ms range; no latency change is claimed.
455
+
393
456
  ### `0.11.4`: Pagination, Refresh, And Polling Policy
394
457
 
395
458
  - **Purpose:** complete bounded server-data loading before infinite data work.
@@ -988,5 +1051,7 @@ release transaction where possible or document and publish a forward-fix patch.
988
1051
  | `0.10.2` | Released | Preserve the published shared-layout navigation and exact route-release evidence. | None |
989
1052
  | `0.10.3` | Released | Preserve the published guarded persistence recipe and zero-runtime exclusion. | None |
990
1053
  | `0.11.0` | Released | Preserve the published owned-fetch lifecycle and zero-query-runtime exclusion. | None |
991
- | `0.11.1` | Active | Measure list/detail mutation consistency, duplicate requests, route changes, and refresh limits. | None |
992
- | `0.11.2` onward | Blocked | Wait for the preceding patch acceptance and release record. | Ordered dependency |
1054
+ | `0.11.1` | Released | Preserve the published single-owner consistency and exact request-count evidence. | None |
1055
+ | `0.11.2` | Released | Preserve the published no-new-primitive architecture decision and zero-byte result. | None |
1056
+ | `0.11.3` | Active | Prove optimistic mutation, exact rollback, duplicate-submit prevention, navigation, and retry. | None |
1057
+ | `0.11.4` 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.109` retains the explicit install instructions and generates projects with `@kudzujs/core@^0.11.1`.
69
+ `create-kudzu@0.1.111` retains the explicit install instructions and generates projects with `@kudzujs/core@^0.11.3`.
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.11.1",
3
+ "version": "0.11.3",
4
4
  "description": "HTML-first TSX framework with synchronous state semantics and no virtual DOM",
5
5
  "type": "module",
6
6
  "license": "MIT",