





















@@ -13,9 +13,11 @@ to the public blog post.
13131414Two audits are combined here:
151516-- **Release performance sweep:** GitHub Releases from `v2026.5.27` back through
16+- **Release performance sweep:** GitHub Releases from `v2026.5.28` back through
1717 stable `v2026.4.23`, using the `OpenClaw Performance` workflow,
18-`profile=smoke`, `repeat=1`, mock-provider lane.
18+`profile=smoke`, mock-provider lane. Most tag rows are one sample; the
19+`v2026.5.27` and `v2026.5.28` rows use the latest repeat-3 release-branch
20+ artifacts.
1921- **Earlier April context:** published `clawgrit-reports` mock-provider
2022 baselines from `v2026.4.1` through `v2026.5.2`, used only to avoid treating
2123 the broken late-April releases as the public performance baseline.
@@ -27,42 +29,44 @@ Two audits are combined here:
2729 file count.
28302931<Warning>
30-The main performance sweep uses one smoke sample per tag. Earlier April context
31-uses published repeat-3 medians from `clawgrit-reports`. Treat the numbers as
32-trend evidence and regression-hunting signal, not as release-gate statistics.
32+The main performance sweep uses one smoke sample per tag, except the
33+`v2026.5.27` and `v2026.5.28` rows, which use the latest repeat-3
34+release-branch artifacts. Earlier April context uses published repeat-3
35+medians from `clawgrit-reports`. Treat the numbers as trend evidence and
36+regression-hunting signal, not as release-gate statistics.
3337</Warning>
34383539## Snapshot
364037-Performance coverage: **76 requested releases**, **73 artifact-backed points**,
38-and **3 unavailable CI runs**. Latest stable measured point: `v2026.5.27`.
41+Performance coverage: **77 requested releases**, **74 artifact-backed points**,
42+and **3 unavailable CI runs**. Latest stable measured point: `v2026.5.28`.
39434044<CardGroup cols={2}>
4145 <Card title="Stable agent turn" icon="gauge">
42-**2.9x faster cold turn**
46+**5.1x faster cold turn**
43474448- `v2026.4.14`: 9.8s
45-- `v2026.5.27`: 3.4s
49+- `v2026.5.28`: 1.9s
46504751 </Card>
4852 <Card title="Published package" icon="package">
49-**17.8MB tarball**
53+**17.9MB tarball**
50545155Latest stable package, down from the 43.3MB March package-size peak.
52565357 </Card>
5458 <Card title="Latest stable install" icon="hard-drive">
55-**786.9MB fresh install**
59+**361.7MiB fresh install**
566057-`v2026.5.27` still contains the nested OpenClaw dependency tree. The
58-next-release state on `main` is 407.4MB.
61+`v2026.5.28` cuts the nested OpenClaw dependency tree sharply, but a
62+smaller 259.7MiB nested tree still remains in the local install audit.
59636064 </Card>
6165 <Card title="Dependency graph" icon="boxes">
62-**371 installed packages**
66+**300 installed packages**
636764-Latest stable release. Current `main` is down to 314 after the follow-up
65-dependency cleanup.
68+Latest stable release, measured as unique package name/version roots in a
69+fresh install with scripts disabled.
66706771 </Card>
6872</CardGroup>
@@ -84,45 +88,44 @@ and **3 unavailable CI runs**. Latest stable measured point: `v2026.5.27`.
84888589 </Card>
8690 <Card title="Latest stable" icon="tag">
87-**786.9MB install**
91+**361.7MiB install**
889289-`2026.5.27` reduced the peak but still installed a 675.9MB nested
90-OpenClaw tree.
93+`2026.5.28` cuts fresh install size by 52.8% from `2026.5.27`, but still
94+installs a 259.7MiB nested OpenClaw tree.
91959296 </Card>
93- <Card title="Next-release state" icon="scissors">
94-**407.4MB install**
97+ <Card title="Dependency graph" icon="scissors">
98+**300 package roots**
959996-Current `main` keeps shrinkwrap, removes the nested tree, and installs
97-314 packages.
100+`2026.5.28` installs 71 fewer unique package name/version roots than
101+`2026.5.27`.
9810299103 </Card>
100104</CardGroup>
101105102106<Tip>
103-Shrinkwrap was not the problem by itself. The bad package shape was. Current
104-`main` still ships shrinkwrap, but npm no longer materializes a second
105-OpenClaw dependency tree during install.
107+Shrinkwrap was not the problem by itself. The bad package shape was.
108+`v2026.5.28` still ships shrinkwrap, but the nested dependency tree is much
109+smaller and the all-platform canvas fanout is gone in the local audit.
106110</Tip>
107111108-## What Changed After 5.27
112+## What Changed In 5.28
109113110-The cleanup between `v2026.5.27` and current `main` removed the duplicate
111-default-install graph instead of removing the capabilities themselves.
114+The cleanup between `v2026.5.27` and `v2026.5.28` reduced the default-install
115+graph instead of removing the capabilities themselves.
112116113117<CardGroup cols={2}>
114118 <Card title="Root default graph" icon="git-branch">
115-Root shrinkwrap package paths fell from **372** to **331**. Unique package
116-names fell from **357** to **318**.
119+Unique package name/version roots fell from **371** to **300**. Package
120+instances fell from **372** to **301**.
117121 </Card>
118- <Card title="Direct root dependencies" icon="unplug">
119-`@earendil-works/pi-agent-core`, `@earendil-works/pi-ai`,
120-`@earendil-works/pi-coding-agent`, and `pdfjs-dist` left the default root
121-dependency path.
122+ <Card title="Nested tree" icon="unplug">
123+Nested `openclaw/node_modules` fell from **656.1MiB** to **259.7MiB** in
124+the same local install audit.
122125 </Card>
123126 <Card title="Native optional cones" icon="cpu">
124-The all-platform `@napi-rs/canvas` and `@mariozechner/clipboard` native
125-package cones stopped landing in the default install.
127+The all-platform `@napi-rs/canvas` native package cone stopped landing in
128+the default install.
126129 </Card>
127130 <Card title="Supply-chain surface" icon="shield">
128131Fewer default packages means fewer tarballs, maintainers, native binaries,
@@ -138,44 +141,45 @@ Do not use the late-April broken rows as public performance baselines.
138141139142For the blog narrative, use the earlier April published baseline as scale:
140143141-| Metric | Earlier April baseline | `v2026.5.27` | Delta |
144+| Metric | Earlier April baseline | `v2026.5.28` | Delta |
142145| --------------- | ---------------------: | -----------: | -----------------------: |
143-| Cold agent turn | 9,819ms | 3,378ms | 65.6% lower, 2.9x faster |
144-| Warm agent turn | 7,458ms | 2,973ms | 60.1% lower, 2.5x faster |
145-| Agent peak RSS | 686.2MB | 635.5MB | 7.4% lower |
146+| Cold agent turn | 9,819ms | 1,908ms | 80.6% lower, 5.1x faster |
147+| Warm agent turn | 7,458ms | 1,870ms | 74.9% lower, 4.0x faster |
148+| Agent peak RSS | 686.2MB | 581.0MB | 15.3% lower |
146149147150The earlier April baseline is `v2026.4.14` from the published
148151`clawgrit-reports` mock-provider run. That run used repeat 3 and failed only
149152because the diagnostic timeline was not emitted; the cold, warm, and RSS
150153medians are still useful as rough scale. Treat this as narrative context, not a
151154release-gate statistic.
152155153-Within the single-sample stable May sweep, the line moved more modestly:
156+Within the May sweep, the latest release-branch row moved materially from
157+`v2026.5.2`:
154158155-| Metric | `v2026.5.2` | `v2026.5.27` | Delta |
159+| Metric | `v2026.5.2` | `v2026.5.28` | Delta |
156160| --------------- | ----------: | -----------: | ----------: |
157-| Cold agent turn | 3,897ms | 3,378ms | 13.3% lower |
158-| Warm agent turn | 3,610ms | 2,973ms | 17.6% lower |
159-| Agent peak RSS | 613.7MB | 635.5MB | 3.6% higher |
161+| Cold agent turn | 3,897ms | 1,908ms | 51.0% lower |
162+| Warm agent turn | 3,610ms | 1,870ms | 48.2% lower |
163+| Agent peak RSS | 613.7MB | 581.0MB | 5.3% lower |
160164161-Best prerelease point in the single-sample sweep:
165+Compared with the previous stable release:
162166163-| Metric | `v2026.5.27` | `v2026.5.27-beta.1` | Delta |
164-| --------------- | -----------: | ------------------: | ----------: |
165-| Cold agent turn | 3,378ms | 2,575ms | 23.8% lower |
166-| Warm agent turn | 2,973ms | 2,217ms | 25.4% lower |
167-| Agent peak RSS | 635.5MB | 635.3MB | flat |
167+| Metric | `v2026.5.27` | `v2026.5.28` | Delta |
168+| --------------- | -----------: | -----------: | ----------: |
169+| Cold agent turn | 2,231ms | 1,908ms | 14.5% lower |
170+| Warm agent turn | 2,226ms | 1,870ms | 16.0% lower |
171+| Agent peak RSS | 649.0MB | 581.0MB | 10.5% lower |
168172169173### Install footprint
170174171-| Metric | Baseline | Current main | Delta |
175+| Metric | Baseline | `v2026.5.28` | Delta |
172176| ----------------------------------------------- | --------: | -----------: | ----------: |
173-| Install size from `2026.5.22` peak | 1,020.6MB | 407.4MB | 60.1% lower |
174-| Install size from latest release `2026.5.27` | 786.9MB | 407.4MB | 48.2% lower |
175-| Dependencies from monthly high `2026.2.26` | 645 | 314 | 51.3% lower |
176-| Dependencies from latest release `2026.5.27` | 371 | 314 | 15.4% lower |
177-| Nested `openclaw/node_modules` from `2026.5.22` | 911.8MB | 0MB | removed |
178-| Nested `openclaw/node_modules` from `2026.5.27` | 675.9MB | 0MB | removed |
177+| Install size from `2026.5.22` peak | 1,020.6MB | 361.7MiB | 64.6% lower |
178+| Install size from latest release `2026.5.27` | 767.1MiB | 361.7MiB | 52.8% lower |
179+| Dependencies from monthly high `2026.2.26` | 645 | 300 | 53.5% lower |
180+| Dependencies from latest release `2026.5.27` | 371 | 300 | 19.1% lower |
181+| Nested `openclaw/node_modules` from `2026.5.22` | 911.8MB | 259.7MiB | 71.5% lower |
182+| Nested `openclaw/node_modules` from `2026.5.27` | 656.1MiB | 259.7MiB | 60.4% lower |
179183180184### npm package size
181185@@ -187,7 +191,8 @@ Best prerelease point in the single-sample sweep:
187191| `2026.4.29` | 22.9MB | 74.6MB | 9,309 | package pruning visible |
188192| `2026.5.12` | 23.4MB | 80.1MB | 12,035 | major external-plugin split |
189193| `2026.5.22` | 17.2MB | 76.9MB | 12,386 | docs/assets excluded from package |
190-| `2026.5.27` | 17.8MB | 79.0MB | 12,509 | latest stable package |
194+| `2026.5.27` | 17.8MB | 79.0MB | 12,509 | previous stable package |
195+| `2026.5.28` | 17.9MB | 81.0MB | 9,082 | latest stable package |
191196192197`2026.5.12` is the visible plugin-extraction milestone in the changelog:
193198Amazon Bedrock, Bedrock Mantle, Slack, OpenShell sandbox, Anthropic Vertex,
@@ -211,7 +216,7 @@ Earlier published context:
211216| `v2026.4.20` | FAIL | 22,314ms | 18,811ms | 810.8MB |
212217| `v2026.4.22` | FAIL | 9,630ms | 7,459ms | 743.0MB |
213218214-Supplied single-sample sweep:
219+Supplied sweep:
215220216221| Release | Kova | Cold turn | Warm turn | Agent peak RSS |
217222| ------------------- | ---- | --------: | --------: | -------------: |
@@ -229,7 +234,8 @@ Supplied single-sample sweep:
229234| `v2026.5.22` | PASS | 4,494ms | 4,093ms | 654.3MB |
230235| `v2026.5.26` | PASS | 2,626ms | 2,282ms | 660.4MB |
231236| `v2026.5.27-beta.1` | PASS | 2,575ms | 2,217ms | 635.3MB |
232-| `v2026.5.27` | PASS | 3,378ms | 2,973ms | 635.5MB |
237+| `v2026.5.27` | PASS | 2,231ms | 2,226ms | 649.0MB |
238+| `v2026.5.28` | PASS | 1,908ms | 1,870ms | 581.0MB |
233239234240## Source probes
235241@@ -249,7 +255,8 @@ Representative source-probe points:
249255| `v2026.5.22` | 2,081ms | 1,884ms | 5,095ms | 444.2MB |
250256| `v2026.5.26` | 1,546ms | 1,634ms | 656ms | 400.4MB |
251257| `v2026.5.27-beta.1` | 1,462ms | 1,548ms | 548ms | 394.0MB |
252-| `v2026.5.27` | 1,874ms | 1,925ms | 660ms | 398.0MB |
258+| `v2026.5.27` | 1,491ms | 1,571ms | 553ms | 401.5MB |
259+| `v2026.5.28` | 1,457ms | 1,474ms | 623ms | 386.1MB |
253260254261The `v2026.5.22` CLI health spike is visible in this table even though the
255262agent-turn lane still passed. Keep the source probes when investigating
@@ -258,8 +265,7 @@ targeted CLI or gateway regressions.
258265## Install footprint audit
259266260267Dependency samples use one stable release per month, plus the
261-`2026.5.22` shrinkwrap-introduction event, latest `2026.5.27`, and current
262-`main`.
268+`2026.5.22` shrinkwrap-introduction event and the latest `2026.5.28` release.
263269264270| Point | Installed deps | Fresh install | OpenClaw package | Nested `openclaw/node_modules` | Root shrinkwrap | Canvas install behavior |
265271| ------------------ | -------------: | ------------: | ---------------: | -----------------------------: | --------------- | ----------------------------------------- |
@@ -269,8 +275,8 @@ Dependency samples use one stable release per month, plus the
269275| Apr `2026.4.29` | 392 | 335.0MB | 97.4MB | 0MB | no | none installed |
270276| `2026.5.22` | 401 | 1,020.6MB | 1,020.4MB | 911.8MB | yes | nested: all 12 `@napi-rs/canvas` packages |
271277| May `2026.5.26` | 371 | 767.5MB | 767.4MB | 656.4MB | yes | nested: all 12 `@napi-rs/canvas` packages |
272-| Latest `2026.5.27` | 371 | 786.9MB | 786.7MB | 675.9MB | yes | nested: all 12 `@napi-rs/canvas` packages |
273-| Current `main` | 314 | 407.4MB | 101.0MB | 0MB | yes | top-level wrapper + `darwin-arm64` |
278+| `2026.5.27` | 371 | 767.1MiB | 766.9MiB | 656.1MiB | yes | nested: all 12 `@napi-rs/canvas` packages |
279+| Latest `2026.5.28` | 300 | 361.7MiB | 361.6MiB | 259.7MiB | yes | none installed |
274280275281### Shrinkwrap boundary
276282@@ -284,11 +290,12 @@ Dependency samples use one stable release per month, plus the
284290`openclaw/node_modules`.
285291 </Card>
286292 <Card title="Latest stable" icon="tag">
287-`2026.5.27` keeps shrinkwrap and still installs 675.9MB under nested
293+`2026.5.28` keeps shrinkwrap and still installs 259.7MiB under nested
288294`openclaw/node_modules`.
289295 </Card>
290- <Card title="Current main" icon="check">
291-`main` keeps shrinkwrap and removes the nested OpenClaw dependency tree.
296+ <Card title="Canvas fanout fixed" icon="check">
297+`2026.5.28` no longer installs any `@napi-rs/canvas` packages in the local
298+fresh install audit.
292299 </Card>
293300</CardGroup>
294301@@ -304,12 +311,13 @@ Published tarball inspection verifies the boundary:
304311| `2026.5.25` | no | n/a | no stable npm release |
305312| `2026.5.26` | yes | yes | nested dependency tree still present |
306313| `2026.5.27` | yes | yes | nested dependency tree still present |
307-| `main` | n/a | yes | nested dependency tree removed |
314+| `2026.5.28` | yes | yes | nested dependency tree much smaller |
308315309-The important distinction: **shrinkwrap itself is not the problem**. Current
310-`main` still ships root shrinkwrap. The problem was the package shape that made
311-npm materialize a large nested OpenClaw dependency tree and all 12
312-`@napi-rs/canvas` platform packages.
316+The important distinction: **shrinkwrap itself is not the problem**.
317+`v2026.5.28` still ships root shrinkwrap. The problem was the package shape
318+that made npm materialize a large nested OpenClaw dependency tree and all 12
319+`@napi-rs/canvas` platform packages. The nested tree is smaller in `v2026.5.28`,
320+and the canvas platform fanout no longer lands in the local audit.
313321314322For a plain-English explanation of shrinkwrap and the maintainer-level package
315323checks, see [npm shrinkwrap](/gateway/security/shrinkwrap).
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。