




















11---
2-summary: "Release performance, install footprint, dependency count, and shrinkwrap audit for the April to May 2026 cleanup sweep"
2+summary: "Visual summary and technical evidence for the May 2026 performance, package-size, dependency, and shrinkwrap cleanup"
33read_when:
44 - You are validating the May 2026 performance and package-size cleanup
55 - You need the numbers behind the OpenClaw performance and dependency blog post
66 - You are changing release gates, package shrinkwrap, or plugin dependency boundaries
77title: "Release performance sweep"
88---
9910-This page captures the technical evidence behind the May 2026 OpenClaw
11-performance and dependency cleanup.
10+This page captures the evidence behind the May 2026 OpenClaw performance,
11+package-size, dependency, and shrinkwrap cleanup. It is the technical companion
12+to the public blog post.
12131314Two audits are combined here:
1415@@ -27,40 +28,109 @@ Two audits are combined here:
27282829<Warning>
2930The main performance sweep uses one smoke sample per tag. Earlier April context
30-uses published repeat-3 medians from `clawgrit-reports`. Use both as trend
31-evidence and regression-hunting signal, not as statistically significant
32-release-gate data.
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.
3333</Warning>
343435-## Quick read
35+## Snapshot
363637-Performance sweep:
37+Performance coverage: **76 requested releases**, **73 artifact-backed points**,
38+and **3 unavailable CI runs**. Latest stable measured point: `v2026.5.27`.
383939-- Requested releases: **76**
40-- Artifact-backed points: **73**
41-- CI unavailable: **3**
42-- Best cold agent turn: `v2026.5.27-beta.1` at **2,575ms**
43-- Best warm agent turn: `v2026.5.27-beta.1` at **2,217ms**
44-- Best source gateway default `readyz` p50: `v2026.5.27-beta.1` at **1,462ms**
45-- Latest stable measured point: `v2026.5.27`
46-- Earlier April narrative baseline: `v2026.4.14` published median at
47-**9,819ms cold**, **7,458ms warm**, and **686.2MB peak RSS**.
40+<CardGroup cols={2}>
41+ <Card title="Stable agent turn" icon="gauge">
42+**2.9x faster cold turn**
484349-Install footprint sweep:
44+- `v2026.4.14`: 9.8s
45+- `v2026.5.27`: 3.4s
504651-- Root `npm-shrinkwrap.json` is absent in `2026.5.20` and present in
52-`2026.5.22`.
53-- `2026.5.22` installed a **911.8 MB** nested `openclaw/node_modules` tree.
54-- `2026.5.27` still installed a **675.9 MB** nested tree.
55-- Current `main` keeps shrinkwrap but installs **0 MB** nested
56-`openclaw/node_modules`.
57-- Current `main` installs at **407.4 MB** and **314 installed dependencies**.
58-- Published npm package size peaked at `2026.3.31`: **43.3 MB** compressed,
59-**182.6 MB** unpacked, and **21,037 files**.
60-- Latest stable `2026.5.27` npm package size is **17.8 MB** compressed,
61-**79.0 MB** unpacked, and **12,509 files**.
47+ </Card>
48+ <Card title="Published package" icon="package">
49+**17.8MB tarball**
625063-## Headline interpretation
51+Latest stable package, down from the 43.3MB March package-size peak.
52+53+ </Card>
54+ <Card title="Latest stable install" icon="hard-drive">
55+**786.9MB fresh install**
56+57+`v2026.5.27` still contains the nested OpenClaw dependency tree. The
58+next-release state on `main` is 407.4MB.
59+60+ </Card>
61+ <Card title="Dependency graph" icon="boxes">
62+**371 installed packages**
63+64+Latest stable release. Current `main` is down to 314 after the follow-up
65+dependency cleanup.
66+67+ </Card>
68+</CardGroup>
69+70+## Install Footprint Timeline
71+72+<CardGroup cols={2}>
73+ <Card title="Monthly high" icon="triangle-alert">
74+**645 dependencies**
75+76+`2026.2.26` was the monthly dependency-count high in this sample.
77+78+ </Card>
79+ <Card title="Shrinkwrap introduced" icon="lock">
80+**1,020.6MB install**
81+82+`2026.5.22` added root shrinkwrap and exposed a package-shape problem:
83+911.8MB landed under nested `openclaw/node_modules`.
84+85+ </Card>
86+ <Card title="Latest stable" icon="tag">
87+**786.9MB install**
88+89+`2026.5.27` reduced the peak but still installed a 675.9MB nested
90+OpenClaw tree.
91+92+ </Card>
93+ <Card title="Next-release state" icon="scissors">
94+**407.4MB install**
95+96+Current `main` keeps shrinkwrap, removes the nested tree, and installs
97+314 packages.
98+99+ </Card>
100+</CardGroup>
101+102+<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.
106+</Tip>
107+108+## What Changed After 5.27
109+110+The cleanup between `v2026.5.27` and current `main` removed the duplicate
111+default-install graph instead of removing the capabilities themselves.
112+113+<CardGroup cols={2}>
114+ <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**.
117+ </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>
123+ <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.
126+ </Card>
127+ <Card title="Supply-chain surface" icon="shield">
128+Fewer default packages means fewer tarballs, maintainers, native binaries,
129+install-time behaviors, and transitive update paths to trust by default.
130+ </Card>
131+</CardGroup>
132+133+## Headline Numbers
6413465135Do not use the late-April broken rows as public performance baselines.
66136`v2026.4.23` and `v2026.4.29` are useful regression evidence, but the large
@@ -96,7 +166,7 @@ Best prerelease point in the single-sample sweep:
96166| Warm agent turn | 2,973ms | 2,217ms | 25.4% lower |
97167| Agent peak RSS | 635.5MB | 635.3MB | flat |
9816899-Install footprint:
169+### Install footprint
100170101171| Metric | Baseline | Current main | Delta |
102172| ----------------------------------------------- | --------: | -----------: | ----------: |
@@ -107,7 +177,7 @@ Install footprint:
107177| Nested `openclaw/node_modules` from `2026.5.22` | 911.8MB | 0MB | removed |
108178| Nested `openclaw/node_modules` from `2026.5.27` | 675.9MB | 0MB | removed |
109179110-npm package size:
180+### npm package size
111181112182| Version | Compressed tarball | Unpacked package | Files | Notes |
113183| ----------- | -----------------: | ---------------: | -----: | --------------------------------- |
@@ -204,6 +274,24 @@ Dependency samples use one stable release per month, plus the
204274205275### Shrinkwrap boundary
206276277+<CardGroup cols={2}>
278+ <Card title="Before shrinkwrap" icon="unlock">
279+`2026.5.20` has no root shrinkwrap and no large nested OpenClaw dependency
280+tree.
281+ </Card>
282+ <Card title="Introduced" icon="lock">
283+`2026.5.22` adds root shrinkwrap and installs 911.8MB under nested
284+`openclaw/node_modules`.
285+ </Card>
286+ <Card title="Latest stable" icon="tag">
287+`2026.5.27` keeps shrinkwrap and still installs 675.9MB under nested
288+`openclaw/node_modules`.
289+ </Card>
290+ <Card title="Current main" icon="check">
291+`main` keeps shrinkwrap and removes the nested OpenClaw dependency tree.
292+ </Card>
293+</CardGroup>
294+207295Published tarball inspection verifies the boundary:
208296209297| Version | Published stable? | Root `npm-shrinkwrap.json` | Notes |
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。