Release and CI
Перевірка продуктивності релізу
Ця сторінка містить свідчення, на яких ґрунтується виконане в травні 2026 року очищення OpenClaw, пов’язане з продуктивністю, розміром пакета, залежностями та shrinkwrap. Вона є технічним доповненням до публічної статті в блозі.
Тут об’єднано два аудити:
- Перевірка продуктивності випусків: GitHub Releases від
v2026.5.28до стабільногоv2026.4.23включно з використанням робочого процесуOpenClaw Performance,profile=smokeі контуру з імітованим постачальником. Більшість рядків тегів містять один зразок; рядкиv2026.5.27іv2026.5.28використовують найновіші артефакти гілок випусків із трьома повтореннями. - Контекст початку квітня: опубліковані базові показники
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для опублікованих випусків із фіксацією розміру стисненого архіву tar, розпакованого пакета та кількості файлів.
Знімок стану
Охоплення продуктивності: 77 запитаних випусків, 74 точки на основі артефактів
і 3 недоступні запуски CI. Найновіша виміряна точка стабільного випуску: v2026.5.28.
Холодний цикл у 5,1 раза швидший
v2026.4.14: 9,8 сv2026.5.28: 1,9 с
Архів tar розміром 17,9 МБ
Найновіший стабільний пакет — менше за березневий максимум розміру пакета 43,3 МБ.
Чисте встановлення розміром 361,7 МіБ
Значно скорочує вкладене дерево залежностей OpenClaw порівняно з піковим значенням
під час запровадження shrinkwrap у 2026.5.22, хоча в локальному аудиті встановлення
все ще залишається менше вкладене дерево розміром 259,7 МіБ.
300 установлених пакетів
Виміряно як унікальні корені за назвою та версією пакета в чистому встановленні з вимкненими сценаріями; на 71 корінь менше, ніж у попередньому стабільному випуску.
Що змінилося у 5.28
Очищення між v2026.5.27 і v2026.5.28 скоротило граф стандартного встановлення,
а не видалило самі можливості.
Кількість унікальних коренів за назвою та версією пакета зменшилася з 371 до 300. Кількість екземплярів пакетів зменшилася з 372 до 301.
Розмір вкладеного openclaw/node_modules зменшився з 656,1 МіБ до 259,7 МіБ у
тому самому локальному аудиті встановлення.
Нативний конус пакетів @napi-rs/canvas для всіх платформ більше не потрапляє до
стандартного встановлення.
Менше стандартних пакетів означає менше архівів tar, супроводжувачів, нативних двійкових файлів, дій під час встановлення та транзитивних шляхів оновлення, яким потрібно довіряти за замовчуванням.
Основні показники
Не використовуйте несправні рядки кінця квітня як публічні базові показники продуктивності.
v2026.4.23 і v2026.4.29 є корисними свідченнями регресії, але великі
різниці на кшталт 14x переважно описують відновлення після невдалої лінійки випусків.
Для викладу в блозі використовуйте як масштаб опубліковану базу початку квітня.
Базовим є v2026.4.14 з опублікованого запуску clawgrit-reports
з імітованим постачальником (3 повторення; цей запуск завершився невдало лише тому, що не було
створено діагностичну часову шкалу, тому медіани холодного й теплого циклів і RSS усе ще корисні
як приблизний масштаб). Розглядайте це як контекст для викладу, а не як статистику
для блокування випуску.
| Метрика | База початку квітня | v2026.5.28 |
Різниця |
|---|---|---|---|
| Холодний цикл агента | 9 819 мс | 1 908 мс | на 80,6% менше, у 5,1 раза швидше |
| Теплий цикл агента | 7 458 мс | 1 870 мс | на 74,9% менше, у 4,0 раза швидше |
| Піковий RSS агента | 686,2 МБ | 581,0 МБ | на 15,3% менше |
У межах травневої перевірки найновіший рядок гілки випуску істотно змінився порівняно з
v2026.5.2:
| Метрика | v2026.5.2 |
v2026.5.28 |
Різниця |
|---|---|---|---|
| Холодний цикл агента | 3 897 мс | 1 908 мс | на 51,0% менше |
| Теплий цикл агента | 3 610 мс | 1 870 мс | на 48,2% менше |
| Піковий RSS агента | 613,7 МБ | 581,0 МБ | на 5,3% менше |
Порівняно з попереднім стабільним випуском:
| Метрика | v2026.5.27 |
v2026.5.28 |
Різниця |
|---|---|---|---|
| Холодний цикл агента | 2 231 мс | 1 908 мс | на 14,5% менше |
| Теплий цикл агента | 2 226 мс | 1 870 мс | на 16,0% менше |
| Піковий RSS агента | 649,0 МБ | 581,0 МБ | на 10,5% менше |
Розмір встановлення
| Метрика | Базове значення | v2026.5.28 |
Різниця |
|---|---|---|---|
Розмір встановлення від піку 2026.5.22 |
1 020,6 МБ | 361,7 МіБ | на 64,6% менше |
Розмір встановлення від останнього випуску 2026.5.27 |
767,1 МіБ | 361,7 МіБ | на 52,8% менше |
Залежності від місячного максимуму 2026.2.26 |
645 | 300 | на 53,5% менше |
Залежності від останнього випуску 2026.5.27 |
371 | 300 | на 19,1% менше |
Вкладений openclaw/node_modules від 2026.5.22 |
911,8 МБ | 259,7 МіБ | на 71,5% менше |
Вкладений openclaw/node_modules від 2026.5.27 |
656,1 МіБ | 259,7 МіБ | на 60,4% менше |
Розмір пакета npm
| Версія | Стиснений архів tar | Розпакований пакет | Файли | Примітки |
|---|---|---|---|---|
2026.1.30 |
12,8 МБ | 33,5 МБ | 4 607 | ранній пакет після ребрендингу |
2026.2.26 |
23,6 МБ | 82,9 МБ | 10 125 | розширення функціональності |
2026.3.31 |
43,3 МБ | 182,6 МБ | 21 037 | максимальний розмір пакета |
2026.4.29 |
22,9 МБ | 74,6 МБ | 9 309 | помітне скорочення пакета |
2026.5.12 |
23,4 МБ | 80,1 МБ | 12 035 | значне відокремлення зовнішніх плагінів |
2026.5.22 |
17,2 МБ | 76,9 МБ | 12 386 | документацію й ресурси виключено з пакета |
2026.5.27 |
17,8 МБ | 79,0 МБ | 12 509 | попередній стабільний пакет |
2026.5.28 |
17,9 МБ | 81,0 МБ | 9 082 | найновіший стабільний пакет |
2026.5.12 — це помітний у журналі змін етап виділення плагінів:
Amazon Bedrock, Bedrock Mantle, Slack, пісочницю OpenShell, Anthropic Vertex,
Matrix і WhatsApp було винесено з основного шляху залежностей, тому їхні конуси залежностей
встановлюються разом із відповідними плагінами, а не з кожним встановленням ядра.
Підсумок циклу агента Kova
Стабільна квітнева лінійка містить дві різні історії. Початок квітня був повільним,
але впізнаваним. Наприкінці квітня стався різкий обвал через регресію. У v2026.5.2
контур з імітованим постачальником уперше опускається до діапазону 3–5 с і починає
стабільно проходити надану перевірку.
Раніше опублікований контекст:
| Випуск | Kova | Холодний цикл | Теплий цикл | Піковий RSS агента |
|---|---|---|---|---|
v2026.4.10 |
НЕВДАЧА | 11 031 мс | 7 962 мс | 679,0 МБ |
v2026.4.12 |
НЕВДАЧА | 11 965 мс | 8 289 мс | 713,5 МБ |
v2026.4.14 |
НЕВДАЧА | 9 819 мс | 7 458 мс | 686,2 МБ |
v2026.4.20 |
НЕВДАЧА | 22 314 мс | 18 811 мс | 810,8 МБ |
v2026.4.22 |
НЕВДАЧА | 9 630 мс | 7 459 мс | 743,0 МБ |
Надана перевірка:
| Випуск | Kova | Холодний цикл | Теплий цикл | Піковий RSS агента |
|---|---|---|---|---|
v2026.4.23 |
НЕВДАЧА | 47 847 мс | 8 010 мс | 1 082,7 МБ |
v2026.4.24 |
НЕВДАЧА | 48 264 мс | 25 483 мс | 996,0 МБ |
v2026.4.25 |
НЕВДАЧА | 81 080 мс | 59 172 мс | 1 113,9 МБ |
v2026.4.26 |
НЕВДАЧА | 76 771 мс | 54 941 мс | 1 140,8 МБ |
v2026.4.27 |
НЕВДАЧА | 60 902 мс | 33 699 мс | 1 156,0 МБ |
v2026.4.29 |
НЕВДАЧА | 94 031 мс | 57 334 мс | 3 613,7 МБ |
v2026.5.2 |
УСПІХ | 3 897 мс | 3 610 мс | 613,7 МБ |
v2026.5.7 |
УСПІХ | 3 923 мс | 3 693 мс | 654,1 МБ |
v2026.5.12 |
УСПІХ | 7 248 мс | 6 629 мс | 834,8 МБ |
v2026.5.18 |
УСПІХ | 3 301 мс | 2 913 мс | 630,3 МБ |
v2026.5.20 |
УСПІХ | 3 413 мс | 2 952 мс | 643,2 МБ |
v2026.5.22 |
УСПІХ | 4 494 мс | 4 093 мс | 654,3 МБ |
v2026.5.26 |
УСПІХ | 2 626 мс | 2 282 мс | 660,4 МБ |
v2026.5.27-beta.1 |
УСПІХ | 2 575 мс | 2 217 мс | 635,3 МБ |
v2026.5.27 |
УСПІХ | 2 231 мс | 2 226 мс | 649,0 МБ |
v2026.5.28 |
УСПІХ | 1 908 мс | 1 870 мс | 581,0 МБ |
Перевірки вихідного коду
Перевірки вихідного коду було пропущено для 17 успішних старіших посилань, оскільки ті дерева вихідного коду ще не мали необхідних точок входу для перевірок. Метрики циклу агента для цих посилань усе одно доступні.
Репрезентативні точки перевірок вихідного коду:
| Випуск | Стандартний readyz p50 |
readyz p50 із 50 плагінами |
Стан CLI p50 | Макс. RSS Plugin |
|---|---|---|---|---|
v2026.4.29 |
2 819 мс | 2 618 мс | 1 679 мс | 389,0 МБ |
v2026.5.2 |
2 324 мс | 2 013 мс | 1 384 мс | 377,2 МБ |
v2026.5.7 |
1 649 мс | 1 540 мс | 1 175 мс | 387,6 МБ |
v2026.5.18 |
1 942 мс | 1 927 мс | 607 мс | 426,5 МБ |
v2026.5.20 |
1 966 мс | 1 987 мс | 621 мс | 455,0 МБ |
v2026.5.22 |
2 081 мс | 1 884 мс | 5 095 мс | 444,2 МБ |
v2026.5.26 |
1 546 мс | 1 634 мс | 656 мс | 400,4 МБ |
v2026.5.27-beta.1 |
1 462 мс | 1 548 мс | 548 мс | 394,0 МБ |
v2026.5.27 |
1 491 мс | 1 571 мс | 553 мс | 401,5 МБ |
v2026.5.28 |
1 457 мс | 1 474 мс | 623 мс | 386,1 МБ |
Сплеск показника стану CLI у v2026.5.22 видно в цій таблиці, хоча
контур циклу агента все одно пройшов перевірку. Зберігайте перевірки вихідного коду під час дослідження
цільових регресій 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, а у вкладений
openclaw/node_modules встановлювалося 911.8MB. 2026.5.28 зберігає shrinkwrap і
досі встановлює 259.7MiB у вкладений openclaw/node_modules, але під час локального
аудиту чистого встановлення більше не встановлює жодних пакетів @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
- уникати виправлення пакетним менеджером під час запуску Gateway
- зберігати детерміновані встановлення, не спричиняючи створення нативних пакетів для всіх платформ
- залишати сценарії встановлення вимкненими у шляхах приймання та вимірювання пакетів
- виявляти вкладені дерева залежностей і вибухове зростання необов’язкових нативних залежностей до публікації
Пов’язана документація: