@kudzujs/core 0.10.3 → 0.11.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
@@ -6,6 +6,42 @@ 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.1 Project List/Detail Consistency
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` waits for both
13
+ route-owned list data and the layout-owned project record before measuring
14
+ list-to-detail completion across fresh Chrome profiles.
15
+
16
+ The two-route session uses 16 unique JavaScript files totaling 55,736 raw /
17
+ 21,208 aggregate gzip bytes. Navigation samples are
18
+ `[1.0, 0.7, 0.7, 1.0, 0.9, 0.9, 0.9, 0.9, 0.8, 0.9, 0.8, 0.9, 0.9, 1.2, 0.8, 0.9, 1.1, 1.0, 1.0, 0.8, 0.8]`
19
+ ms, with a 0.9 ms median and 0.7/1.2 ms minimum/maximum.
20
+
21
+ Compared with `0.11.0`, the authored shared record effect, list/detail outputs,
22
+ and mutation handler add 966 raw / 445 aggregate gzip session bytes. The prior
23
+ 0.8 ms median and 0.6/1.3 ms range overlap, so no latency change is claimed.
24
+ No compiler or browser-runtime source changed, and `/help` remains 0 B
25
+ JavaScript.
26
+
27
+ ## 0.11.0 Project Owned Fetch Lifecycle
28
+
29
+ Measured 2026-08-22 on macOS arm64 with Node 25.6.1 and Chrome
30
+ 151.0.7922.172. `RUNS=21 npm run benchmark:project-navigation` uses fresh Chrome
31
+ profiles, waits for the initial project fetch and persisted workspace update,
32
+ then measures list-to-detail completion including route-effect cancellation.
33
+
34
+ The two-route session uses 15 unique JavaScript files totaling 54,770 raw /
35
+ 20,763 aggregate gzip bytes. Navigation samples are
36
+ `[1.1, 0.8, 0.7, 0.8, 0.7, 0.8, 0.8, 0.7, 0.7, 0.9, 0.9, 0.9, 0.7, 0.8, 0.7, 1.3, 0.8, 0.8, 0.6, 0.9, 0.9]`
37
+ ms, with a 0.8 ms median and 0.6/1.3 ms minimum/maximum.
38
+
39
+ Compared with the `0.10.3` release, the authored fetch effect, loading/error
40
+ conditions, and refetch state add 1,208 raw / 440 aggregate gzip session bytes.
41
+ `/help` remains 0 B JavaScript. The measured interval is unchanged, but the new
42
+ fetch-completion prerequisite makes this an acceptance-safe no-regression check,
43
+ not a latency improvement claim. No compiler or browser-runtime source changed.
44
+
9
45
  ## 0.10.3 Project Persistence Recipe
10
46
 
11
47
  Measured 2026-08-22 on macOS arm64 with Node 25.6.1 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.10.x`: the compiler API and supported TSX surface may change.
15
+ > Experimental `0.11.x`: the compiler API and supported TSX surface may change.
16
16
 
17
- **Latest release: 0.10.3 - Application-owned persistence.** The tracked project application now restores and writes a versioned workspace record, falls back safely from invalid storage, clears state on logout, and keeps static routes free of persistence code. Read the [release notes](./RELEASES.md#0103---application-owned-persistence), open the [release page](https://github.com/kudzujs/kudzu/releases/tag/v0.10.3), or follow the [architecture packet](./docs/next-architecture/README.md).
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).
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,100 @@
1
1
  # Kudzu Releases
2
2
 
3
+ ## 0.11.1 - List/Detail Data Consistency
4
+
5
+ Kudzu 0.11.1 proves that ordinary layout-owned state and one native fetch effect
6
+ keep list and detail routes consistent without a query framework.
7
+
8
+ ### Changed in 0.11.1
9
+
10
+ - Added one server-backed project record owned by the retained application
11
+ layout and consumed by both project routes.
12
+ - Added a detail mutation whose confirmed result is immediately observed by the
13
+ list without another read.
14
+ - Counted exactly one initial GET, one mutation POST, no navigation GETs, and one
15
+ document-reload GET.
16
+ - Recorded document-lifetime retention and the absence of automatic
17
+ deduplication, invalidation, subscribers, and retained query caches.
18
+ - Updated `create-kudzu@0.1.109` to generate projects on
19
+ `@kudzujs/core@^0.11.1`.
20
+
21
+ ### Output Evidence
22
+
23
+ - The application fixture emits 20 files, 69,501 raw / 24,649 aggregate gzip
24
+ bytes, and deploy digest
25
+ `bc6335131b7867da2857621211919fad43ebfb9414aac711c45f0c8ed3803022`.
26
+ - The list/detail session uses 16 unique JavaScript files totaling 55,736 raw /
27
+ 21,208 aggregate gzip bytes; `/help` remains 0 B JavaScript.
28
+ - Twenty-one fresh Chrome profiles record a 0.9 ms navigation median and
29
+ 0.7/1.2 ms range after both initial fetches complete.
30
+ - No semantic primitive, compiler pass, production compiler line, runtime
31
+ concept, request registry, or query runtime was added.
32
+
33
+ ### Validation
34
+
35
+ - Required Chrome proves mutation visibility, exact request counts, retained
36
+ layout identity, route release, and server restoration after reload.
37
+ - The full suite, package smoke, registry metadata, and fresh installation are
38
+ release gates.
39
+
40
+ ### Limits
41
+
42
+ Shared data lasts for one document and retained layout owner. Independently
43
+ authored fetch owners are not deduplicated; coordinated requests remain blocked
44
+ until unrelated fixtures require the same missing contract.
45
+
46
+ ### Upgrade
47
+
48
+ ```sh
49
+ npm install @kudzujs/core@^0.11.1
50
+ ```
51
+
52
+ ## 0.11.0 - Owned Fetch Lifecycle
53
+
54
+ Kudzu 0.11.0 proves browser-only server data as application-owned state, one
55
+ native fetch effect, and exact route lifetime rather than a query framework.
56
+
57
+ ### Changed in 0.11.0
58
+
59
+ - Added accessible loading, success, and HTTP error states to the maintained
60
+ project application.
61
+ - Added explicit refetch and recovery through one primitive request dependency.
62
+ - Proved that a delayed prior continuation cannot overwrite newer keyed data.
63
+ - Added authored `AbortController` cleanup for dependency replacement and route
64
+ removal, with late route work denied state authority.
65
+ - Updated `create-kudzu@0.1.108` to generate projects on
66
+ `@kudzujs/core@^0.11.0`.
67
+
68
+ ### Output Evidence
69
+
70
+ - The application fixture emits 19 files, 67,886 raw / 24,077 aggregate gzip
71
+ bytes, and deploy digest
72
+ `9c06d2a5d47b4ea2ae54cebbc0448bf161907691ee37a02a5dae0e7c37779ae4`.
73
+ - The list/detail session uses 15 unique JavaScript files totaling 54,770 raw /
74
+ 20,763 aggregate gzip bytes; `/help` remains 0 B JavaScript.
75
+ - Twenty-one fresh Chrome profiles record a 0.8 ms navigation median and
76
+ 0.6/1.3 ms range after fetch completion and persisted workspace setup.
77
+ - No semantic primitive, compiler pass, production compiler line, runtime
78
+ concept, cache, Provider, retry scheduler, or query runtime was added.
79
+
80
+ ### Validation
81
+
82
+ - Required Chrome proves loading, stale completion rejection, accessible HTTP
83
+ failure, recovery, cancellation, and route-removal authority loss.
84
+ - The full suite, package smoke, registry metadata, and fresh installation are
85
+ release gates.
86
+
87
+ ### Limits
88
+
89
+ Shared request deduplication, invalidation, optimistic mutation, retries,
90
+ polling, and retained caches remain later evidence packets.
91
+
92
+ ### Upgrade
93
+
94
+ ```sh
95
+ npm install @kudzujs/core@^0.11.0
96
+ ```
97
+
3
98
  ## 0.10.3 - Application-Owned Persistence
4
99
 
5
100
  Kudzu 0.10.3 proves guarded browser persistence as application code composed
@@ -270,6 +270,11 @@ timing ranges overlap with no material loss; the 7,144 raw / 3,278 gzip byte
270
270
  increase is the explicit cost of route-owned effect/native entries, not a
271
271
  compiler or shared-runtime change.
272
272
 
273
+ Release commit `4420ccc`, tag `v0.10.3`, both CI jobs, the GitHub release,
274
+ `@kudzujs/core@0.10.3`, `create-kudzu@0.1.107`, registry metadata, and a fresh
275
+ registry-backed scaffold install/check passed on 2026-08-22. Publish workflow
276
+ `32568752477` completed every version, package, publication, and registry gate.
277
+
273
278
  ## `0.11.x`: Async And Server Data
274
279
 
275
280
  ### `0.11.0`: Owned Fetch Lifecycle
@@ -282,6 +287,41 @@ compiler or shared-runtime change.
282
287
  - **Stop condition:** a query cache is added to implement one request.
283
288
  - **Done condition:** the project list journey passes and `/help` stays zero-JS.
284
289
 
290
+ **Completion evidence:** the project list now composes one route-owned native
291
+ `fetch` effect with ordinary request, status, error, project, and summary state.
292
+ The deterministic server drives initial loading, a fast explicit refetch, an
293
+ HTTP 500 alert, and recovery. A delayed prior continuation attempts its writes
294
+ after dependency replacement and cannot replace the newer keyed project data.
295
+ The effect owns an `AbortController`; dependency replacement and route removal
296
+ invoke authored abort cleanup, and late route work cannot mutate the detail
297
+ route or recreated list ownership. Existing project filtering, nested keyed
298
+ identity, row state, shared layout state, persistence, and logout journeys still
299
+ pass. `/help` remains complete HTML with 0 B JavaScript.
300
+
301
+ This packet adds zero semantic primitives, ModuleIR kinds, compiler passes,
302
+ production compiler lines, runtime concepts, normalization rules, adapter
303
+ rules, public APIs, caches, Providers, retry schedulers, or query runtimes. One
304
+ existing positive application fixture gains loading, success, stale completion,
305
+ HTTP failure, recovery, cancellation, and route-release cases. The fixture
306
+ still emits 19 files and now totals 67,886 raw / 24,077 aggregate gzip bytes,
307
+ with deploy SHA-256
308
+ `9c06d2a5d47b4ea2ae54cebbc0448bf161907691ee37a02a5dae0e7c37779ae4`.
309
+ The project route uses 52,130 raw / 19,502 aggregate gzip JavaScript bytes; the
310
+ two-route session uses 54,770 / 20,763 bytes, an authored capability increase of
311
+ 1,208 raw / 440 gzip bytes over `0.10.3`. Twenty-one fresh Chrome profiles record
312
+ 0.8 ms median list-to-detail completion with a 0.6/1.3 ms range. The changed
313
+ fetch-completion prerequisite permits no latency improvement claim; no material
314
+ regression is present.
315
+
316
+ Clean-worktree `npm run check`, 273/273 standard tests, the required project
317
+ Chrome journey, the focused required-Chrome retry for the one full-suite browser
318
+ timeout, and packed-package smoke pass on 2026-08-22.
319
+
320
+ Release commit `8065d86`, tag `v0.11.0`, both CI jobs, the GitHub release,
321
+ `@kudzujs/core@0.11.0`, `create-kudzu@0.1.108`, registry metadata, and a fresh
322
+ registry-backed scaffold install/check passed on 2026-08-22. Publish workflow
323
+ `32571667242` completed every version, package, publication, and registry gate.
324
+
285
325
  ### `0.11.1`: List And Detail Data Consistency Evidence
286
326
 
287
327
  - **Purpose:** expose the first real multi-consumer coordination limit.
@@ -294,6 +334,35 @@ compiler or shared-runtime change.
294
334
  - **Done condition:** existing composition is accepted or the smallest repeated
295
335
  missing coordination contract is isolated.
296
336
 
337
+ **Completion evidence:** one layout-owned project record composes from two
338
+ primitive shared signals and one existing mount effect. The list and detail
339
+ routes observe the same server-confirmed rename without another read. The
340
+ deterministic journey records one initial GET, zero additional GETs across two
341
+ enhanced route changes, one mutation POST, and exactly one new GET after full
342
+ document reload. The refreshed document reconstructs revision 1 from server
343
+ truth while route-owned detail draft state resets. `/help` remains complete HTML
344
+ with 0 B JavaScript.
345
+
346
+ Current composition is accepted. Shared data lasts for one document and retained
347
+ layout owner; independently authored fetch owners are not deduplicated, and no
348
+ request registry, invalidation graph, subscriber set, or retained query cache
349
+ exists. This one fixture does not authorize `0.11.2`: it needs no coordination
350
+ primitive after ownership is placed correctly, while the packet requires two
351
+ additional independent fixtures to demonstrate the same missing contract.
352
+
353
+ This packet adds zero semantic primitives, ModuleIR kinds, compiler passes,
354
+ production compiler lines, runtime concepts, normalization rules, adapter rules,
355
+ public APIs, caches, Providers, or query runtimes. One existing positive fixture
356
+ gains list/detail consistency, counted domain requests, mutation, navigation,
357
+ and reload cases. It emits 20 files totaling 69,501 raw / 24,649 aggregate gzip
358
+ bytes with deploy SHA-256
359
+ `bc6335131b7867da2857621211919fad43ebfb9414aac711c45f0c8ed3803022`.
360
+ The two-route session uses 16 JavaScript files totaling 55,736 raw / 21,208
361
+ aggregate gzip bytes, an authored application increase of 966 raw / 445 gzip
362
+ bytes over `0.11.0`. Twenty-one fresh Chrome profiles record a 0.9 ms median
363
+ list-to-detail completion with a 0.7/1.2 ms range, overlapping the prior
364
+ 0.6/1.3 ms range; no latency change is claimed.
365
+
297
366
  ### `0.11.2`: Shared Request Coordination
298
367
 
299
368
  - **Purpose:** implement only the deduplication, subscriber, and invalidation
@@ -917,5 +986,7 @@ release transaction where possible or document and publish a forward-fix patch.
917
986
  | `0.10.0` | Released | Preserve the published application baseline and release evidence. | None |
918
987
  | `0.10.1` | Released | Preserve the published state-scale evidence and explicit object-field limit. | None |
919
988
  | `0.10.2` | Released | Preserve the published shared-layout navigation and exact route-release evidence. | None |
920
- | `0.10.3` | Active | Add the guarded application-owned persistence and state-release journey. | None |
921
- | `0.11.0` onward | Blocked | Wait for the preceding patch acceptance and release record. | Ordered dependency |
989
+ | `0.10.3` | Released | Preserve the published guarded persistence recipe and zero-runtime exclusion. | None |
990
+ | `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 |
@@ -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.107` retains the explicit install instructions and generates projects with `@kudzujs/core@^0.10.3`.
69
+ `create-kudzu@0.1.109` retains the explicit install instructions and generates projects with `@kudzujs/core@^0.11.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",
3
+ "version": "0.11.1",
4
4
  "description": "HTML-first TSX framework with synchronous state semantics and no virtual DOM",
5
5
  "type": "module",
6
6
  "license": "MIT",