Release and CI
Перевірка продуктивності релізу
Ця сторінка фіксує докази, що стоять за очищенням продуктивності, розміру пакета, залежностей і shrinkwrap OpenClaw у травні 2026 року. Це технічний супровід до публічної публікації в блозі.
Тут об’єднано два аудити:
- Перевірка продуктивності релізів: GitHub Releases від
v2026.5.28назад до стабільногоv2026.4.23, з використанням workflowOpenClaw Performance,profile=smoke, lane mock-провайдера. Більшість рядків тегів мають один зразок; рядкиv2026.5.27іv2026.5.28використовують найновіші repeat-3 артефакти гілки релізу. - Попередній квітневий контекст: опубліковані базові значення mock-провайдера
clawgrit-reportsвідv2026.4.1доv2026.5.2, використані лише щоб не вважати зламані релізи кінця квітня публічною базою продуктивності. - Перевірка розміру встановлення: свіжі встановлення
npm install --ignore-scriptsу тимчасові пакети, зdu -sk node_modulesдля розміру та обходомnode_modulesдля підрахунку екземплярів пакетів. - Перевірка розміру npm-пакета:
npm pack openclaw@<version> --dry-run --jsonдля опублікованих релізів, із записом розміру стисненого tarball, розпакованого розміру та кількості файлів.
Знімок
Покриття продуктивності: 77 запитаних релізів, 74 точки з артефактами,
і 3 недоступні CI-запуски. Найновіша виміряна стабільна точка: v2026.5.28.
У 5,1 раза швидший холодний turn
v2026.4.14: 9,8 сv2026.5.28: 1,9 с
Tarball 17,9MB
Найновіший стабільний пакет, менше за березневий пік розміру пакета 43,3MB.
Свіже встановлення 361,7MiB
v2026.5.28 різко скорочує вкладене дерево залежностей OpenClaw, але
менше вкладене дерево 259,7MiB усе ще залишається в локальному аудиті встановлення.
300 встановлених пакетів
Найновіший стабільний реліз, виміряний як унікальні корені імені/версії пакета у свіжому встановленні з вимкненими скриптами.
Хронологія розміру встановлення
645 залежностей
2026.2.26 був місячним максимумом кількості залежностей у цьому зразку.
Встановлення 1 020,6MB
2026.5.22 додав кореневий shrinkwrap і виявив проблему форми пакета:
911,8MB потрапили у вкладений openclaw/node_modules.
Встановлення 361,7MiB
2026.5.28 скорочує розмір свіжого встановлення на 52,8% порівняно з 2026.5.27, але все ще
встановлює вкладене дерево OpenClaw розміром 259,7MiB.
300 коренів пакетів
2026.5.28 встановлює на 71 менше унікальних коренів імені/версії пакета, ніж
2026.5.27.
Що змінилося у 5.28
Очищення між v2026.5.27 і v2026.5.28 зменшило граф встановлення за замовчуванням
замість того, щоб прибрати самі можливості.
Кількість унікальних коренів імен/версій пакетів зменшилася з 371 до 300. Кількість екземплярів пакетів зменшилася з 372 до 301.
Вкладений openclaw/node_modules зменшився з 656.1MiB до 259.7MiB у
тому самому локальному аудиті встановлення.
Загальноплатформний конус нативних пакетів @napi-rs/canvas перестав потрапляти до
встановлення за замовчуванням.
Менше пакетів за замовчуванням означає менше tarball-файлів, супровідників, нативних бінарних файлів, поведінки під час встановлення та транзитивних шляхів оновлення, яким за замовчуванням треба довіряти.
Головні числа
Не використовуйте зламані рядки кінця квітня як публічні базові показники продуктивності.
v2026.4.23 і v2026.4.29 корисні як докази регресії, але великі
дельти у стилі 14x здебільшого описують відновлення після невдалої лінійки релізів.
Для наративу в блозі використовуйте ранішу квітневу опубліковану базову лінію як масштаб:
| Метрика | Раніша квітнева базова лінія | v2026.5.28 |
Дельта |
|---|---|---|---|
| Холодний хід агента | 9,819ms | 1,908ms | на 80.6% нижче, у 5.1x швидше |
| Теплий хід агента | 7,458ms | 1,870ms | на 74.9% нижче, у 4.0x швидше |
| Піковий RSS агента | 686.2MB | 581.0MB | на 15.3% нижче |
Раніша квітнева базова лінія — це v2026.4.14 з опублікованого
запуску mock-provider clawgrit-reports. У цьому запуску використовувався repeat 3, і він зазнав невдачі лише
тому, що діагностичну часову шкалу не було виведено; медіани холодного, теплого та RSS
усе ще корисні як приблизний масштаб. Розглядайте це як наративний контекст, а не як
статистику для релізного шлюзу.
У межах травневого проходу останній рядок релізної гілки суттєво зрушився від
v2026.5.2:
| Метрика | v2026.5.2 |
v2026.5.28 |
Дельта |
|---|---|---|---|
| Холодний хід агента | 3,897ms | 1,908ms | на 51.0% нижче |
| Теплий хід агента | 3,610ms | 1,870ms | на 48.2% нижче |
| Піковий RSS агента | 613.7MB | 581.0MB | на 5.3% нижче |
Порівняно з попереднім стабільним релізом:
| Метрика | v2026.5.27 |
v2026.5.28 |
Дельта |
|---|---|---|---|
| Холодний хід агента | 2,231ms | 1,908ms | на 14.5% нижче |
| Теплий хід агента | 2,226ms | 1,870ms | на 16.0% нижче |
| Піковий RSS агента | 649.0MB | 581.0MB | на 10.5% нижче |
Обсяг встановлення
| Метрика | Базова лінія | v2026.5.28 |
Дельта |
|---|---|---|---|
Розмір встановлення від піку 2026.5.22 |
1,020.6MB | 361.7MiB | на 64.6% нижче |
Розмір встановлення від останнього релізу 2026.5.27 |
767.1MiB | 361.7MiB | на 52.8% нижче |
Залежності від місячного максимуму 2026.2.26 |
645 | 300 | на 53.5% нижче |
Залежності від останнього релізу 2026.5.27 |
371 | 300 | на 19.1% нижче |
Вкладений openclaw/node_modules від 2026.5.22 |
911.8MB | 259.7MiB | на 71.5% нижче |
Вкладений openclaw/node_modules від 2026.5.27 |
656.1MiB | 259.7MiB | на 60.4% нижче |
Розмір пакета npm
| Версія | Стиснений tarball | Розпакований пакет | Файли | Примітки |
|---|---|---|---|---|
2026.1.30 |
12.8MB | 33.5MB | 4,607 | ранній ребрендований пакет |
2026.2.26 |
23.6MB | 82.9MB | 10,125 | зростання функцій |
2026.3.31 |
43.3MB | 182.6MB | 21,037 | найвища точка розміру пакета |
2026.4.29 |
22.9MB | 74.6MB | 9,309 | помітне обрізання пакета |
2026.5.12 |
23.4MB | 80.1MB | 12,035 | великий поділ зовнішніх plugin |
2026.5.22 |
17.2MB | 76.9MB | 12,386 | docs/assets виключено з пакета |
2026.5.27 |
17.8MB | 79.0MB | 12,509 | попередній стабільний пакет |
2026.5.28 |
17.9MB | 81.0MB | 9,082 | останній стабільний пакет |
2026.5.12 — це помітна віха винесення plugin у changelog:
Amazon Bedrock, Bedrock Mantle, Slack, OpenShell sandbox, Anthropic Vertex,
Matrix і WhatsApp вийшли з шляху залежностей ядра, тож їхні конуси залежностей
встановлюються разом із цими plugins, а не з кожним встановленням ядра.
Підсумок ходу агента Kova
Квітнева стабільна лінійка містить дві різні історії. Ранній квітень був повільним,
але впізнаваним. Кінець квітня перетворився на регресійний обрив. v2026.5.2 — це місце,
де лінія mock-provider уперше опускається в діапазон 3-5s і починає
послідовно проходити у наданому проході.
Раніший опублікований контекст:
| Реліз | Kova | Холодний хід | Теплий хід | Піковий RSS агента |
|---|---|---|---|---|
v2026.4.10 |
ЗБІЙ | 11,031ms | 7,962ms | 679.0MB |
v2026.4.12 |
ЗБІЙ | 11,965ms | 8,289ms | 713.5MB |
v2026.4.14 |
ЗБІЙ | 9,819ms | 7,458ms | 686.2MB |
v2026.4.20 |
ЗБІЙ | 22,314ms | 18,811ms | 810.8MB |
v2026.4.22 |
ЗБІЙ | 9,630ms | 7,459ms | 743.0MB |
Наданий прохід:
| Реліз | Kova | Холодний хід | Теплий хід | Піковий RSS агента |
|---|---|---|---|---|
v2026.4.23 |
ЗБІЙ | 47,847ms | 8,010ms | 1,082.7MB |
v2026.4.24 |
ЗБІЙ | 48,264ms | 25,483ms | 996.0MB |
v2026.4.25 |
ЗБІЙ | 81,080ms | 59,172ms | 1,113.9MB |
v2026.4.26 |
ЗБІЙ | 76,771ms | 54,941ms | 1,140.8MB |
v2026.4.27 |
ЗБІЙ | 60,902ms | 33,699ms | 1,156.0MB |
v2026.4.29 |
ЗБІЙ | 94,031ms | 57,334ms | 3,613.7MB |
v2026.5.2 |
УСПІХ | 3,897ms | 3,610ms | 613.7MB |
v2026.5.7 |
УСПІХ | 3,923ms | 3,693ms | 654.1MB |
v2026.5.12 |
УСПІХ | 7,248ms | 6,629ms | 834.8MB |
v2026.5.18 |
УСПІХ | 3,301ms | 2,913ms | 630.3MB |
v2026.5.20 |
УСПІХ | 3,413ms | 2,952ms | 643.2MB |
v2026.5.22 |
УСПІХ | 4,494ms | 4,093ms | 654.3MB |
v2026.5.26 |
УСПІХ | 2,626ms | 2,282ms | 660.4MB |
v2026.5.27-beta.1 |
УСПІХ | 2,575ms | 2,217ms | 635.3MB |
v2026.5.27 |
УСПІХ | 2,231ms | 2,226ms | 649.0MB |
v2026.5.28 |
УСПІХ | 1,908ms | 1,870ms | 581.0MB |
Вихідні зонди
Вихідні зонди було пропущено для 17 успішних старіших refs, оскільки ті дерева вихідного коду ще не мали потрібних точок входу зондів. Метрики ходів агента для цих refs усе ще існують.
Репрезентативні точки вихідних зондів:
| Реліз | readyz p50 за замовчуванням |
50 plugins readyz p50 |
CLI health p50 | Максимальний RSS Plugin |
|---|---|---|---|---|
v2026.4.29 |
2,819ms | 2,618ms | 1,679ms | 389.0MB |
v2026.5.2 |
2,324ms | 2,013ms | 1,384ms | 377.2MB |
v2026.5.7 |
1,649ms | 1,540ms | 1,175ms | 387.6MB |
v2026.5.18 |
1,942ms | 1,927ms | 607ms | 426.5MB |
v2026.5.20 |
1,966ms | 1,987ms | 621ms | 455.0MB |
v2026.5.22 |
2,081ms | 1,884ms | 5,095ms | 444.2MB |
v2026.5.26 |
1,546ms | 1,634ms | 656ms | 400.4MB |
v2026.5.27-beta.1 |
1,462ms | 1,548ms | 548ms | 394.0MB |
v2026.5.27 |
1,491ms | 1,571ms | 553ms | 401.5MB |
v2026.5.28 |
1,457ms | 1,474ms | 623ms | 386.1MB |
Сплеск справності CLI у v2026.5.22 видно в цій таблиці, хоча лінія
agent-turn усе ще пройшла. Зберігайте вихідні зонди під час розслідування
цільових регресій CLI або Gateway.
Аудит інсталяційного відбитка
Вибірки залежностей використовують по одному стабільному випуску на місяць,
а також подію запровадження shrinkwrap у 2026.5.22 і найновіший випуск
2026.5.28.
| Точка | Встановлені залежності | Свіже встановлення | Пакет OpenClaw | Вкладений openclaw/node_modules |
Кореневий shrinkwrap | Поведінка встановлення Canvas |
|---|---|---|---|---|---|---|
Січ. 2026.1.30 |
605 | 438.4MB | 45.8MB | 2.4MB | ні | обгортка верхнього рівня + darwin-arm64 |
Лют. 2026.2.26 |
645 | 575.7MB | 110.1MB | 3.5MB | ні | обгортка верхнього рівня + darwin-arm64 |
Бер. 2026.3.31 |
438 | 584.1MB | 234.8MB | 0MB | ні | обгортка верхнього рівня + darwin-arm64 |
Квіт. 2026.4.29 |
392 | 335.0MB | 97.4MB | 0MB | ні | нічого не встановлено |
2026.5.22 |
401 | 1,020.6MB | 1,020.4MB | 911.8MB | так | вкладено: усі 12 пакетів @napi-rs/canvas |
Трав. 2026.5.26 |
371 | 767.5MB | 767.4MB | 656.4MB | так | вкладено: усі 12 пакетів @napi-rs/canvas |
2026.5.27 |
371 | 767.1MiB | 766.9MiB | 656.1MiB | так | вкладено: усі 12 пакетів @napi-rs/canvas |
Найновіший 2026.5.28 |
300 | 361.7MiB | 361.6MiB | 259.7MiB | так | нічого не встановлено |
Межа shrinkwrap
2026.5.20 не має кореневого shrinkwrap і великого вкладеного дерева
залежностей OpenClaw.
2026.5.22 додає кореневий shrinkwrap і встановлює 911.8MB у вкладений
openclaw/node_modules.
2026.5.28 зберігає shrinkwrap і все ще встановлює 259.7MiB у вкладений
openclaw/node_modules.
2026.5.28 більше не встановлює жодних пакетів @napi-rs/canvas у
локальному аудиті свіжого встановлення.
Перевірка опублікованого tarball підтверджує межу:
| Версія | Опубліковано як стабільну? | Кореневий npm-shrinkwrap.json |
Примітки |
|---|---|---|---|
2026.5.20 |
так | ні | останній стабільний випуск до shrinkwrap |
2026.5.21 |
ні | н/д | немає стабільного npm-випуску |
2026.5.22 |
так | так | shrinkwrap запроваджено |
2026.5.23 |
ні | н/д | немає стабільного npm-випуску |
2026.5.24 |
ні | н/д | немає стабільного npm-випуску |
2026.5.25 |
ні | н/д | немає стабільного npm-випуску |
2026.5.26 |
так | так | вкладене дерево залежностей усе ще наявне |
2026.5.27 |
так | так | вкладене дерево залежностей усе ще наявне |
2026.5.28 |
так | так | вкладене дерево залежностей значно менше |
Важлива відмінність: сам shrinkwrap не є проблемою.
v2026.5.28 усе ще постачається з кореневим shrinkwrap. Проблемою була форма
пакета, через яку npm матеріалізував велике вкладене дерево залежностей
OpenClaw і всі 12 платформних пакетів @napi-rs/canvas. У v2026.5.28
вкладене дерево менше, а розгортання платформ Canvas більше не потрапляє в
локальний аудит.
Просте пояснення shrinkwrap і перевірок пакетів на рівні супровідників див. у npm shrinkwrap.
Інтерпретація ланцюга постачання
Кількість залежностей є метрикою операційної безпеки, а не лише метрикою розміру встановлення. Кожен пакет розширює набір супровідників, tarball, транзитивних оновлень, необов’язкових нативних бінарних файлів і поведінки під час встановлення, яким оператори мають довіряти.
Напрям очищення такий:
- тримати важкі й необов’язкові можливості поза стандартним встановленням ядра
- зробити так, щоб пакети Plugin володіли своїм графом runtime-залежностей
- уникати runtime-відновлення через менеджер пакетів під час запуску Gateway
- зберегти детерміновані встановлення без матеріалізації нативних пакетів для всіх платформ
- тримати скрипти встановлення вимкненими в шляхах приймання та вимірювання пакетів
- виявляти вкладені дерева залежностей і вибухове зростання нативних необов’язкових залежностей до публікації
Пов’язані документи: