@kudzujs/core 0.11.3 → 0.12.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,45 @@ 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.12.0 Project Route Shell And Runtime Parameters
10
+
11
+ Measured 2026-08-23 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 while the application also emits
14
+ standalone runtime project and issue routes.
15
+
16
+ The maintained enhanced session is unchanged at 16 JavaScript files totaling
17
+ 58,970 raw / 22,124 aggregate gzip bytes. Navigation samples are
18
+ `[1.3, 1.4, 1.2, 1.4, 1.4, 1.4, 1.3, 1.3, 1.2, 1.4, 1.4, 1.3, 1.1, 1.2, 1.2, 1.2, 1.6, 1.3, 1.4, 1.4, 1.4]`
19
+ ms, with a 1.3 ms median and 1.1/1.6 ms minimum/maximum. The range overlaps
20
+ `0.11.4`, so no latency change is claimed.
21
+
22
+ The runtime project route uses 17,905 raw / 8,455 aggregate gzip JavaScript
23
+ bytes; its issue route uses 18,002 raw / 8,474 aggregate gzip bytes. Complete
24
+ deploy output grows by 16 files and 28,314 raw / 11,911 aggregate gzip bytes.
25
+ These routes reuse existing pathname parameters, layout effects, bindings, and
26
+ native anchors. No compiler or browser-runtime source changed, and `/help`
27
+ remains 0 B JavaScript.
28
+
29
+ ## 0.11.4 Project Pagination And Polling Policy
30
+
31
+ Measured 2026-08-23 on macOS arm64 with Node 25.6.1 and Chrome
32
+ 151.0.7922.172. `RUNS=21 npm run benchmark:project-navigation` retains the same
33
+ fetch-complete list-to-detail interval. Required Chrome separately proves URL
34
+ page/filter push and back synchronization, explicit refresh, hidden-page polling
35
+ suppression, one visible refresh, exact cleanup, and results bounded to two rows.
36
+
37
+ The two-route session uses 16 unique JavaScript files totaling 58,970 raw /
38
+ 22,124 aggregate gzip bytes. Navigation samples are
39
+ `[1.3, 1.6, 1.3, 1.3, 1.3, 1.3, 1.2, 1.2, 1.2, 1.4, 1.3, 1.3, 1.3, 1.4, 1.3, 1.3, 1.3, 1.3, 1.2, 1.5, 1.4]`
40
+ ms, with a 1.3 ms median and 1.2/1.6 ms minimum/maximum.
41
+
42
+ Compared with `0.11.3`, the authored query controls, query-backed fetch
43
+ dependencies, polling state/effect, and native timer/listener cleanup add 2,652
44
+ raw / 913 aggregate gzip session bytes. The prior 0.8 ms median and 0.7/1.0 ms
45
+ range do not overlap, so the measured 0.5 ms median increase is disclosed. No
46
+ compiler or browser-runtime source changed, and `/help` remains 0 B JavaScript.
47
+
9
48
  ## 0.11.3 Project Optimistic Mutation
10
49
 
11
50
  Measured 2026-08-22 on macOS arm64 with Node 25.6.1 and Chrome
@@ -23,6 +62,11 @@ UI, and async handler add 582 raw / 3 aggregate gzip session bytes. The prior
23
62
  0.9 ms median and 0.7/1.2 ms range overlap, so no latency change is claimed. No
24
63
  compiler or browser-runtime source changed, and `/help` remains 0 B JavaScript.
25
64
 
65
+ A clean homepage verification rerun on the same environment recorded
66
+ `[0.9, 0.7, 0.8, 0.9, 0.9, 0.7, 0.8, 0.9, 0.7, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.8, 0.8, 0.9, 0.8, 0.9]`
67
+ ms, with a 0.9 ms median and 0.7/0.9 ms range. It reproduces the release result's
68
+ overlapping range and does not change the no-regression conclusion.
69
+
26
70
  ## 0.11.1 Project List/Detail Consistency
27
71
 
28
72
  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.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).
17
+ **Latest release: 0.12.0 - Project route shell and runtime parameters.** Directly addressable project and issue routes now reuse bracket file routes, pathname parameters, complete fallback HTML, generated host rewrites, and native anchors without an SPA router. Read the [release notes](./RELEASES.md#0120---project-route-shell-and-runtime-parameters), open the [release page](https://github.com/kudzujs/kudzu/releases/tag/v0.12.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,95 @@
1
1
  # Kudzu Releases
2
2
 
3
+ ## 0.12.0 - Project Route Shell And Runtime Parameters
4
+
5
+ Kudzu 0.12.0 opens the routing and application-lifetime train with directly
6
+ addressable project and issue routes.
7
+
8
+ ### Changed in 0.12.0
9
+
10
+ - Added bracket project and nested issue pages using supported React Router
11
+ `useParams()` migration syntax.
12
+ - Emitted complete fallback HTML and pathname parameter ESM for both routes.
13
+ - Preserved native project-to-issue links without an SPA route registry.
14
+ - Emitted ordered host rewrite records while retaining exact-file precedence.
15
+ - Updated `create-kudzu@0.1.113` to generate projects on
16
+ `@kudzujs/core@^0.12.0`.
17
+
18
+ ### Output Evidence
19
+
20
+ - The application emits 36 files, 105,577 raw / 38,067 aggregate gzip bytes,
21
+ and deploy digest
22
+ `6a6c5985cf2a7e9649b0bbd70506357051dac995a74225b0022c5f1ecedaf2b8`.
23
+ - The standalone project route uses 17,905 raw / 8,455 aggregate gzip
24
+ JavaScript bytes; the issue route uses 18,002 raw / 8,474 aggregate gzip.
25
+ - The maintained enhanced session remains byte-identical at 58,970 raw /
26
+ 22,124 aggregate gzip bytes, and `/help` remains 0 B JavaScript.
27
+ - No semantic primitive, compiler pass, production compiler line, runtime
28
+ concept, server, or browser route registry was added.
29
+
30
+ ### Validation
31
+
32
+ - Required Chrome proves direct project and issue entry plus issue reload.
33
+ - The parameter module rejects invalid encoded path segments before mounting.
34
+ - The full suite, package smoke, registry metadata, and fresh installation are
35
+ release gates.
36
+
37
+ ### Limits
38
+
39
+ The deployment host must install the generated runtime rewrites. Exact emitted
40
+ files must be checked before those fallbacks.
41
+
42
+ ### Upgrade
43
+
44
+ ```sh
45
+ npm install @kudzujs/core@^0.12.0
46
+ ```
47
+
48
+ ## 0.11.4 - Pagination, Refresh, And Polling Policy
49
+
50
+ Kudzu 0.11.4 completes the `0.11.x` server-data train with bounded URL-owned
51
+ pagination and application-owned refresh policy.
52
+
53
+ ### Changed in 0.11.4
54
+
55
+ - Synchronized project page/filter values with URL query signals and browser
56
+ back navigation.
57
+ - Proved explicit refresh and exact list request counts without a query cache.
58
+ - Added optional visibility-aware polling with interval/listener cleanup.
59
+ - Bounded every server response to two retained rows.
60
+ - Updated `create-kudzu@0.1.112` to generate projects on
61
+ `@kudzujs/core@^0.11.4`.
62
+
63
+ ### Output Evidence
64
+
65
+ - The application emits 20 files, 77,263 raw / 26,156 aggregate gzip bytes, and
66
+ deploy digest
67
+ `a3864a5155d658e86378fce80de94e082ef0894c5db5f5793d91b4de7f359b46`.
68
+ - The list/detail session uses 16 JavaScript files totaling 58,970 raw / 22,124
69
+ aggregate gzip bytes; `/help` remains 0 B JavaScript.
70
+ - Twenty-one fresh Chrome profiles record a 1.3 ms navigation median and
71
+ 1.2/1.6 ms range.
72
+ - No semantic primitive, compiler pass, production compiler line, runtime
73
+ concept, cache, retained result store, or scheduler was added.
74
+
75
+ ### Validation
76
+
77
+ - Required Chrome proves query push/back, bounded results, exact requests,
78
+ refresh, hidden polling suppression, visible refresh, and cleanup.
79
+ - The full suite, package smoke, registry metadata, and fresh installation are
80
+ release gates.
81
+
82
+ ### Limits
83
+
84
+ Polling remains authored route policy. Kudzu does not ship a universal
85
+ scheduler, request registry, invalidation graph, or retained query cache.
86
+
87
+ ### Upgrade
88
+
89
+ ```sh
90
+ npm install @kudzujs/core@^0.11.4
91
+ ```
92
+
3
93
  ## 0.11.3 - Optimistic Mutation And Rollback
4
94
 
5
95
  Kudzu 0.11.3 proves optimistic server mutation with ordinary shared state and
@@ -453,6 +453,13 @@ aggregate gzip bytes, an authored application increase of 582 raw / 3 gzip bytes
453
453
  over `0.11.2`. Twenty-one fresh Chrome profiles record a 0.8 ms median with a
454
454
  0.7/1.0 ms range; no latency change is claimed.
455
455
 
456
+ Clean-worktree `npm run check`, 273/273 required-Chrome tests, and packed-package
457
+ smoke passed on 2026-08-22. Release commit `ba6f97a`, tag `v0.11.3`, CI
458
+ `32576861865`, the GitHub release, `@kudzujs/core@0.11.3`,
459
+ `create-kudzu@0.1.111`, registry metadata, and a fresh registry-backed scaffold
460
+ install/check passed. Publish workflow `32577090955` completed every version,
461
+ package, publication, and registry gate.
462
+
456
463
  ### `0.11.4`: Pagination, Refresh, And Polling Policy
457
464
 
458
465
  - **Purpose:** complete bounded server-data loading before infinite data work.
@@ -465,6 +472,34 @@ over `0.11.2`. Twenty-one fresh Chrome profiles record a 0.8 ms median with a
465
472
  - **Done condition:** the exact owner and network behavior are measured and
466
473
  documented.
467
474
 
475
+ **Completion evidence:** the project list reads page and filter from two
476
+ existing React Router query signals and restarts its existing abortable fetch
477
+ effect when either changes. Static updater handlers push page 2/all and page
478
+ 1/active URLs. Two browser back operations restore the prior URL, signal values,
479
+ and bounded server results. An explicit refresh increments the same route-owned
480
+ request signal. Optional polling owns one native interval and one
481
+ `visibilitychange` listener; hidden events perform no work, one visible event
482
+ performs one refresh, and disabling polling clears both owners before a later
483
+ event. The deterministic journey records 11 total list requests across initial
484
+ stale replacement, HTTP recovery, page/filter history, refresh, polling, and
485
+ route remount. Every response retains at most two rows.
486
+
487
+ Existing query signals, primitive state, dependency effects, abort invalidation,
488
+ native timers/listeners, and route cleanup are sufficient. This packet adds zero
489
+ semantic primitives, ModuleIR kinds, compiler passes, production compiler lines,
490
+ runtime concepts, normalization rules, adapter rules, public APIs, caches,
491
+ schedulers, or retained result stores. One positive application fixture gains
492
+ page/filter URL ownership, history, refresh, visibility-aware polling, exact
493
+ cleanup, request counts, and bounded-result cases. It emits 20 files totaling
494
+ 77,263 raw / 26,156 aggregate gzip bytes with deploy SHA-256
495
+ `a3864a5155d658e86378fce80de94e082ef0894c5db5f5793d91b4de7f359b46`.
496
+ The two-route session uses 16 JavaScript files totaling 58,970 raw / 22,124
497
+ aggregate gzip bytes, an authored application increase of 2,652 raw / 913 gzip
498
+ bytes over `0.11.3`. Twenty-one fresh Chrome profiles record a 1.3 ms median
499
+ with a 1.2/1.6 ms range. The prior range does not overlap, so the 0.5 ms median
500
+ increase is disclosed rather than presented as a no-regression result. `/help`
501
+ remains 0 B JavaScript.
502
+
468
503
  ## `0.12.x`: Routing And Application Lifetime
469
504
 
470
505
  ### `0.12.0`: Project Route Shell And Runtime Parameters
@@ -477,6 +512,40 @@ over `0.11.2`. Twenty-one fresh Chrome profiles record a 0.8 ms median with a
477
512
  - **Stop condition:** an SPA route registry is introduced.
478
513
  - **Done condition:** all target routes are addressable without a browser router.
479
514
 
515
+ **Completion evidence:** the maintained project application adds one bracket
516
+ project page and one nested bracket issue page, both using the existing aliased
517
+ React Router `useParams()` migration path and the existing shared application
518
+ layout. Each fallback emits complete document structure plus only pathname
519
+ parameter, binding, native-handler, and owned-layout capability ESM. The project
520
+ page owns a native parameterized anchor to its first issue. The issue page owns a
521
+ native parameterized project return. Neither standalone artifact includes the
522
+ enhanced-navigation entry.
523
+
524
+ The fixture emits the compiler-provided ordered rewrite records through its
525
+ existing `afterBuild` host boundary. A deterministic static server checks exact
526
+ files first, then applies those records for direct project and issue entry.
527
+ Required Chrome proves project entry,
528
+ issue entry, and issue reload; the generated parameter module rejects an encoded
529
+ slash before mounting. Static HTML and artifact assertions prove the project to
530
+ issue anchor remains native, both routes share one signature-keyed standalone
531
+ runtime family, and `/help` remains 0 B JavaScript. Deployment still must install
532
+ the generated rewrites; Kudzu does not add a server or browser route registry.
533
+
534
+ Existing file routes, runtime pathname parameters, layout ownership, route
535
+ bindings, native anchors, host rewrites, and browser reload are sufficient. This
536
+ packet adds zero semantic primitives, ModuleIR kinds, compiler passes,
537
+ production compiler lines, runtime concepts, normalization rules, adapter rules,
538
+ or public APIs. One positive application fixture gains two route files, direct
539
+ entry, reload, invalid-parameter rejection, native project-to-issue linkage, and
540
+ host fallback cases. It emits 36 files totaling 105,577 raw / 38,067 aggregate
541
+ gzip bytes with deploy SHA-256
542
+ `6a6c5985cf2a7e9649b0bbd70506357051dac995a74225b0022c5f1ecedaf2b8`.
543
+ The runtime project route uses 17,905 raw / 8,455 gzip JavaScript bytes and the
544
+ issue route uses 18,002 raw / 8,474 gzip bytes. The existing two-route enhanced
545
+ session remains byte-identical at 58,970 raw / 22,124 gzip bytes. Twenty-one
546
+ fresh Chrome profiles record a 1.3 ms median with a 1.1/1.6 ms range; the range
547
+ overlaps `0.11.4`, so no latency change is claimed.
548
+
480
549
  ### `0.12.1`: Shared Layout, History, Focus, And Scroll
481
550
 
482
551
  - **Purpose:** complete the accepted same-document application group behavior.
@@ -1053,5 +1122,7 @@ release transaction where possible or document and publish a forward-fix patch.
1053
1122
  | `0.11.0` | Released | Preserve the published owned-fetch lifecycle and zero-query-runtime exclusion. | None |
1054
1123
  | `0.11.1` | Released | Preserve the published single-owner consistency and exact request-count evidence. | None |
1055
1124
  | `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 |
1125
+ | `0.11.3` | Released | Preserve the published optimistic rollback, duplicate prevention, navigation, and retry evidence. | None |
1126
+ | `0.11.4` | Released | Preserve the published bounded pagination, history, refresh, polling cleanup, and exact request-count evidence. | None |
1127
+ | `0.12.0` | Active | Release the completed runtime project/issue route-shell evidence. | None |
1128
+ | `0.12.1` onward | Blocked | Wait for explicit approval after the minor-version entry release. | User-directed minor-version 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.111` retains the explicit install instructions and generates projects with `@kudzujs/core@^0.11.3`.
69
+ `create-kudzu@0.1.113` retains the explicit install instructions and generates projects with `@kudzujs/core@^0.12.0`.
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.3",
3
+ "version": "0.12.0",
4
4
  "description": "HTML-first TSX framework with synchronous state semantics and no virtual DOM",
5
5
  "type": "module",
6
6
  "license": "MIT",