@kudzujs/core 0.12.1 → 0.12.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,27 @@ 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.2 Authentication And Permission Boundary
|
|
10
|
+
|
|
11
|
+
Measured 2026-08-23 on macOS arm64 with Node 25.6.1 and Chrome
|
|
12
|
+
151.0.7922.172. Required Chrome proves invalid and valid login, token-backed
|
|
13
|
+
reload restoration, anonymous and rejected direct entry, role-aware controls,
|
|
14
|
+
server-enforced API and admin authorization, token clearing, and logout.
|
|
15
|
+
|
|
16
|
+
The two-route session uses 16 JavaScript files totaling 60,767 raw / 22,561
|
|
17
|
+
aggregate gzip bytes, an increase of 1,793 raw / 432 gzip bytes from `0.12.1`
|
|
18
|
+
for authored session state, restoration, and authorization headers. Navigation
|
|
19
|
+
samples are `[1.3, 1.5, 1.5, 1.2, 1.3, 1.4, 1.4]` ms, with a 1.4 ms median and
|
|
20
|
+
1.2/1.5 ms minimum/maximum. The range overlaps `0.12.1`, so no latency change
|
|
21
|
+
is claimed.
|
|
22
|
+
|
|
23
|
+
The application emits 43 files totaling 123,476 raw / 45,305 aggregate gzip
|
|
24
|
+
bytes with deploy SHA-256
|
|
25
|
+
`81d0b3c5e0d1d1f72f29d219647601463f5317f215274e14a45fe5ba92eb033e`.
|
|
26
|
+
The login route uses 12,093 raw / 5,795 aggregate gzip JavaScript bytes. Core
|
|
27
|
+
semantic LOC remains 5,682 with no pass, primitive, production compiler/runtime
|
|
28
|
+
change, or runtime-concept change. `/help` remains 0 B JavaScript.
|
|
29
|
+
|
|
9
30
|
## 0.12.1 Shared Layout, History, Focus, And Scroll
|
|
10
31
|
|
|
11
32
|
Measured 2026-08-23 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.12.x`: the compiler API and supported TSX surface may change.
|
|
16
16
|
|
|
17
|
-
**Latest release: 0.12.
|
|
17
|
+
**Latest release: 0.12.2 - Authentication and permission boundary.** Native login, token restoration, role-aware controls, server-enforced 401/403 responses, token clearing, and logout now compose from existing application primitives without an auth runtime. Read the [release notes](./RELEASES.md#0122---authentication-and-permission-boundary), open the [release page](https://github.com/kudzujs/kudzu/releases/tag/v0.12.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,57 @@
|
|
|
1
1
|
# Kudzu Releases
|
|
2
2
|
|
|
3
|
+
## 0.12.2 - Authentication And Permission Boundary
|
|
4
|
+
|
|
5
|
+
Kudzu 0.12.2 completes the project application's login, restoration,
|
|
6
|
+
permission-aware UI, server rejection, and logout journey using existing
|
|
7
|
+
application primitives.
|
|
8
|
+
|
|
9
|
+
### Changed in 0.12.2
|
|
10
|
+
|
|
11
|
+
- Replaced the placeholder login route with a native constrained form and one
|
|
12
|
+
application-owned async submit handler.
|
|
13
|
+
- Added layout-owned token restoration, session validation, authenticated user
|
|
14
|
+
state, role-aware admin controls, and explicit logout.
|
|
15
|
+
- Added bearer authorization to project reads and mutations; the deterministic
|
|
16
|
+
server rejects missing tokens with 401 and member mutations with 403.
|
|
17
|
+
- Proved that protected static HTML is a UX shell while server authorization is
|
|
18
|
+
the security boundary.
|
|
19
|
+
- Updated `create-kudzu@0.1.115` to generate projects on
|
|
20
|
+
`@kudzujs/core@^0.12.2`.
|
|
21
|
+
|
|
22
|
+
### Output Evidence
|
|
23
|
+
|
|
24
|
+
- The application emits 43 files, 123,476 raw / 45,305 aggregate gzip bytes,
|
|
25
|
+
and deploy digest
|
|
26
|
+
`81d0b3c5e0d1d1f72f29d219647601463f5317f215274e14a45fe5ba92eb033e`.
|
|
27
|
+
- The maintained enhanced session uses 16 JavaScript files totaling 60,767 raw
|
|
28
|
+
/ 22,561 aggregate gzip bytes, 1,793 raw / 432 gzip bytes above `0.12.1`.
|
|
29
|
+
- The login route uses 12,093 raw / 5,795 aggregate gzip JavaScript bytes, while
|
|
30
|
+
`/help` remains complete HTML with 0 B JavaScript.
|
|
31
|
+
- No semantic primitive, compiler pass, core compiler line, runtime concept,
|
|
32
|
+
public API, auth runtime, or server was added to Kudzu.
|
|
33
|
+
|
|
34
|
+
### Validation
|
|
35
|
+
|
|
36
|
+
- Required Chrome proves invalid and valid login, reload restoration, direct
|
|
37
|
+
anonymous and rejected entry, member/admin UI, server 401/403 responses,
|
|
38
|
+
token clearing, and logout.
|
|
39
|
+
- Seven fresh Chrome profiles record a 1.4 ms navigation median with a 1.2-1.5
|
|
40
|
+
ms range. The range overlaps `0.12.1`, so no latency change is claimed.
|
|
41
|
+
- The full suite, package smoke, registry metadata, and fresh installation are
|
|
42
|
+
release gates.
|
|
43
|
+
|
|
44
|
+
### Limits
|
|
45
|
+
|
|
46
|
+
Client conditional rendering only controls presentation. Applications and
|
|
47
|
+
deployment hosts remain responsible for authorizing protected data and actions.
|
|
48
|
+
|
|
49
|
+
### Upgrade
|
|
50
|
+
|
|
51
|
+
```sh
|
|
52
|
+
npm install @kudzujs/core@^0.12.2
|
|
53
|
+
```
|
|
54
|
+
|
|
3
55
|
## 0.12.1 - Shared Layout, History, Focus, And Scroll
|
|
4
56
|
|
|
5
57
|
Kudzu 0.12.1 completes the accepted same-document project route group with
|
|
@@ -594,6 +594,29 @@ no measured AI-delivery cost effect.
|
|
|
594
594
|
- **Done condition:** server authorization and client UX responsibilities are
|
|
595
595
|
executable and explicit.
|
|
596
596
|
|
|
597
|
+
**Completion evidence:** the project application replaces its placeholder login
|
|
598
|
+
route with a native constrained form and one async handler. The shared layout
|
|
599
|
+
restores a stored token, validates the current user, exposes authenticated
|
|
600
|
+
identity and role state, and clears local state before replacement navigation on
|
|
601
|
+
rejection or logout. Required Chrome proves invalid and valid login, reload
|
|
602
|
+
restoration, anonymous and rejected direct protected entry, member/admin control
|
|
603
|
+
visibility, server 401/403 enforcement, token clearing, and logout. Client
|
|
604
|
+
conditions are recorded as presentation only; the deterministic API server
|
|
605
|
+
authorizes every protected read and mutation.
|
|
606
|
+
|
|
607
|
+
Existing native forms, state, layout ownership, effects, storage, fetch, and
|
|
608
|
+
native navigation are sufficient. This packet adds zero semantic primitives,
|
|
609
|
+
ModuleIR kinds, compiler passes, production compiler/runtime lines, runtime
|
|
610
|
+
concepts, normalization rules, adapter rules, public APIs, auth runtimes, or
|
|
611
|
+
servers. The fixture emits 43 files totaling 123,476 raw / 45,305 aggregate gzip
|
|
612
|
+
bytes with deploy SHA-256
|
|
613
|
+
`81d0b3c5e0d1d1f72f29d219647601463f5317f215274e14a45fe5ba92eb033e`.
|
|
614
|
+
The login route uses 12,093 raw / 5,795 gzip JavaScript bytes. The two-route
|
|
615
|
+
session uses 16 JavaScript files totaling 60,767 raw / 22,561 aggregate gzip
|
|
616
|
+
bytes. Seven fresh Chrome profiles record a 1.4 ms navigation median with a
|
|
617
|
+
1.2/1.5 ms range; the range overlaps `0.12.1`, so no latency change is claimed.
|
|
618
|
+
`/help` remains 0 B JavaScript.
|
|
619
|
+
|
|
597
620
|
### `0.12.3`: Route Failure And Restoration Policy
|
|
598
621
|
|
|
599
622
|
- **Purpose:** decide application-visible handling of navigation/data failures.
|
|
@@ -1150,5 +1173,6 @@ release transaction where possible or document and publish a forward-fix patch.
|
|
|
1150
1173
|
| `0.11.3` | Released | Preserve the published optimistic rollback, duplicate prevention, navigation, and retry evidence. | None |
|
|
1151
1174
|
| `0.11.4` | Released | Preserve the published bounded pagination, history, refresh, polling cleanup, and exact request-count evidence. | None |
|
|
1152
1175
|
| `0.12.0` | Released | Preserve direct runtime entry, reload, rewrite, and native fallback evidence. | None |
|
|
1153
|
-
| `0.12.1` |
|
|
1154
|
-
| `0.12.2`
|
|
1176
|
+
| `0.12.1` | Released | Preserve the published layout/history/focus/scroll evidence. | None |
|
|
1177
|
+
| `0.12.2` | Active | Release the completed authentication and permission evidence. | None |
|
|
1178
|
+
| `0.12.3` onward | Blocked | Complete the `0.12.2` 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.115` retains the explicit install instructions and generates projects with `@kudzujs/core@^0.12.2`.
|
|
70
70
|
|
|
71
71
|
## Release Boundary
|
|
72
72
|
|