---
read_when:
    - คุณกำลังตรวจสอบการล้างประสิทธิภาพและขนาดแพ็กเกจประจำเดือนพฤษภาคม 2026
    - คุณต้องมีตัวเลขเบื้องหลังโพสต์บล็อกด้านประสิทธิภาพและ dependency ของ OpenClaw
    - คุณกำลังเปลี่ยนเกณฑ์ผ่านการรีลีส การล็อกเวอร์ชันของแพ็กเกจ หรือขอบเขตการพึ่งพาของ Plugin
summary: สรุปเชิงภาพและหลักฐานทางเทคนิคสำหรับการจัดระเบียบประสิทธิภาพ ขนาดแพ็กเกจ การพึ่งพา และ shrinkwrap ในเดือนพฤษภาคม 2026
title: การกวาดตรวจประสิทธิภาพของรีลีส
x-i18n:
    generated_at: "2026-06-27T18:20:05Z"
    model: gpt-5.5
    postprocess_version: locale-links-v1
    provider: openai
    source_hash: 93438b8037a40ed9e5590854926badfe943d440e4c585e6290d29b54764e861b
    source_path: reference/release-performance-sweep.md
    workflow: 16
---

หน้านี้บันทึกหลักฐานเบื้องหลังการล้างข้อมูลด้านประสิทธิภาพของ OpenClaw เดือนพฤษภาคม 2026,
ขนาดแพ็กเกจ, dependency และ shrinkwrap เป็นคู่มือเชิงเทคนิคประกอบ
บทความบล็อกสาธารณะ

มีการรวมการตรวจสอบสองชุดไว้ที่นี่:

- **การกวาดตรวจประสิทธิภาพของรีลีส:** GitHub Releases ตั้งแต่ `v2026.5.28` ย้อนกลับไปถึง
  stable `v2026.4.23` โดยใช้เวิร์กโฟลว์ `OpenClaw Performance`,
  `profile=smoke`, เลน mock-provider แถวของแท็กส่วนใหญ่เป็นตัวอย่างหนึ่งชุด; แถว
  `v2026.5.27` และ `v2026.5.28` ใช้อาร์ติแฟกต์ release-branch แบบ repeat-3
  ล่าสุด
- **บริบทช่วงต้นเดือนเมษายน:** baseline mock-provider จาก `clawgrit-reports`
  ที่เผยแพร่แล้วตั้งแต่ `v2026.4.1` ถึง `v2026.5.2` ใช้เฉพาะเพื่อหลีกเลี่ยงการถือว่า
  รีลีสปลายเดือนเมษายนที่เสียเป็น baseline ประสิทธิภาพสาธารณะ
- **การกวาดตรวจพื้นที่ติดตั้ง:** การติดตั้งใหม่ด้วย `npm install --ignore-scripts`
  ลงในแพ็กเกจชั่วคราว โดยใช้ `du -sk node_modules` สำหรับขนาด และเดินสำรวจ
  `node_modules` เพื่อนับจำนวนอินสแตนซ์แพ็กเกจ
- **การกวาดตรวจขนาดแพ็กเกจ npm:** `npm pack openclaw@<version> --dry-run --json`
  สำหรับรีลีสที่เผยแพร่แล้ว โดยบันทึกขนาด tarball ที่บีบอัดแล้ว, ขนาดเมื่อแตกไฟล์ และ
  จำนวนไฟล์

<Warning>
การกวาดตรวจประสิทธิภาพหลักใช้ตัวอย่าง smoke หนึ่งชุดต่อแท็ก ยกเว้นแถว
`v2026.5.27` และ `v2026.5.28` ซึ่งใช้อาร์ติแฟกต์ release-branch แบบ repeat-3
ล่าสุด บริบทช่วงต้นเดือนเมษายนใช้มัธยฐาน repeat-3 ที่เผยแพร่แล้วจาก
`clawgrit-reports` ให้ถือว่าตัวเลขเหล่านี้เป็นหลักฐานแนวโน้มและสัญญาณสำหรับไล่หา
regression ไม่ใช่สถิติสำหรับเกตของรีลีส
</Warning>

## ภาพรวม

ความครอบคลุมด้านประสิทธิภาพ: **77 รีลีสที่ขอ**, **74 จุดที่มีอาร์ติแฟกต์รองรับ**,
และ **3 งาน CI ที่ไม่พร้อมใช้งาน** จุดวัด stable ล่าสุด: `v2026.5.28`

<CardGroup cols={2}>
  <Card title="Stable agent turn" icon="gauge">
    **cold turn เร็วขึ้น 5.1 เท่า**

    - `v2026.4.14`: 9.8 วินาที
    - `v2026.5.28`: 1.9 วินาที

  </Card>
  <Card title="Published package" icon="package">
    **tarball 17.9MB**

    แพ็กเกจ stable ล่าสุด ลดลงจากจุดสูงสุดของขนาดแพ็กเกจเดือนมีนาคมที่ 43.3MB

  </Card>
  <Card title="Latest stable install" icon="hard-drive">
    **การติดตั้งใหม่ 361.7MiB**

    `v2026.5.28` ลด dependency tree ของ OpenClaw ที่ซ้อนอยู่ลงอย่างมาก แต่ยังมี
    tree ที่ซ้อนอยู่ขนาดเล็กกว่า 259.7MiB เหลืออยู่ในการตรวจสอบการติดตั้งภายในเครื่อง

  </Card>
  <Card title="Dependency graph" icon="boxes">
    **แพ็กเกจที่ติดตั้ง 300 รายการ**

    รีลีส stable ล่าสุด วัดเป็น root ของชื่อ/เวอร์ชันแพ็กเกจที่ไม่ซ้ำกันในการติดตั้งใหม่
    โดยปิดใช้งานสคริปต์

  </Card>
</CardGroup>

## ไทม์ไลน์พื้นที่ติดตั้ง

<CardGroup cols={2}>
  <Card title="Monthly high" icon="triangle-alert">
    **dependency 645 รายการ**

    `2026.2.26` เป็นจุดสูงสุดของจำนวน dependency รายเดือนในตัวอย่างนี้

  </Card>
  <Card title="Shrinkwrap introduced" icon="lock">
    **การติดตั้ง 1,020.6MB**

    `2026.5.22` เพิ่ม shrinkwrap ที่ root และเผยให้เห็นปัญหารูปร่างแพ็กเกจ:
    มี 911.8MB ไปอยู่ใต้ `openclaw/node_modules` ที่ซ้อนอยู่

  </Card>
  <Card title="Latest stable" icon="tag">
    **การติดตั้ง 361.7MiB**

    `2026.5.28` ลดขนาดการติดตั้งใหม่ลง 52.8% จาก `2026.5.27` แต่ยังคง
    ติดตั้ง tree ของ OpenClaw ที่ซ้อนอยู่ขนาด 259.7MiB

  </Card>
  <Card title="Dependency graph" icon="scissors">
    **root แพ็กเกจ 300 รายการ**

    `2026.5.28` ติดตั้ง root ของชื่อ/เวอร์ชันแพ็กเกจที่ไม่ซ้ำกันน้อยกว่า
    `2026.5.27` อยู่ 71 รายการ

  </Card>
</CardGroup>

<Tip>
Shrinkwrap ไม่ใช่ปัญหาโดยตัวมันเอง รูปร่างแพ็กเกจที่ไม่ดีต่างหากคือปัญหา
`v2026.5.28` ยังจัดส่ง shrinkwrap อยู่ แต่ dependency tree ที่ซ้อนอยู่มีขนาด
เล็กลงมาก และการกระจาย canvas ครบทุกแพลตฟอร์มหายไปในการตรวจสอบภายในเครื่อง
</Tip>

## สิ่งที่เปลี่ยนใน 5.28

การเก็บกวาดระหว่าง `v2026.5.27` และ `v2026.5.28` ลดกราฟการติดตั้งค่าเริ่มต้น
แทนที่จะลบความสามารถต่างๆ ออกไปเอง

<CardGroup cols={2}>
  <Card title="กราฟค่าเริ่มต้นระดับราก" icon="git-branch">
    รากชื่อแพ็กเกจ/เวอร์ชันที่ไม่ซ้ำลดจาก **371** เหลือ **300** อินสแตนซ์ของแพ็กเกจ
    ลดจาก **372** เหลือ **301**
  </Card>
  <Card title="ทรีที่ซ้อนอยู่" icon="unplug">
    `openclaw/node_modules` ที่ซ้อนอยู่ลดจาก **656.1MiB** เหลือ **259.7MiB** ใน
    การตรวจสอบการติดตั้งภายในเครื่องเดียวกัน
  </Card>
  <Card title="กรวย native แบบ optional" icon="cpu">
    กรวยแพ็กเกจ native สำหรับทุกแพลตฟอร์มของ `@napi-rs/canvas` หยุดถูกติดตั้งใน
    การติดตั้งค่าเริ่มต้น
  </Card>
  <Card title="พื้นที่ผิวของห่วงโซ่อุปทาน" icon="shield">
    แพ็กเกจค่าเริ่มต้นที่น้อยลงหมายถึง tarball, ผู้ดูแล, ไบนารี native,
    พฤติกรรมระหว่างติดตั้ง และเส้นทางอัปเดตแบบ transitive ที่ต้องเชื่อถือโดยค่าเริ่มต้นน้อยลง
  </Card>
</CardGroup>

## ตัวเลขสำคัญ

อย่าใช้แถวที่เสียในช่วงปลายเดือนเมษายนเป็น baseline ประสิทธิภาพสาธารณะ
`v2026.4.23` และ `v2026.4.29` เป็นหลักฐาน regression ที่มีประโยชน์ แต่ส่วนต่างขนาดใหญ่แบบ
`14x` ส่วนใหญ่อธิบายการฟื้นตัวจากสาย release ที่ไม่ดี

สำหรับ narrative ในบล็อก ให้ใช้ baseline ที่เผยแพร่ก่อนหน้าในเดือนเมษายนเป็นสเกล:

| เมตริก          | baseline ต้นเดือนเมษายน | `v2026.5.28` |                    ส่วนต่าง |
| --------------- | ---------------------: | -----------: | -----------------------: |
| เทิร์นเอเจนต์แบบ cold |                9,819ms |      1,908ms | ต่ำลง 80.6%, เร็วขึ้น 5.1x |
| เทิร์นเอเจนต์แบบ warm |                7,458ms |      1,870ms | ต่ำลง 74.9%, เร็วขึ้น 4.0x |
| RSS สูงสุดของเอเจนต์  |                686.2MB |      581.0MB |              ต่ำลง 15.3% |

baseline ต้นเดือนเมษายนคือ `v2026.4.14` จากการรัน mock-provider ของ
`clawgrit-reports` ที่เผยแพร่แล้ว การรันนั้นใช้ repeat 3 และล้มเหลวเฉพาะเพราะ
ไม่ได้ปล่อย diagnostic timeline ออกมา ค่ามัธยฐานของ cold, warm และ RSS
ยังมีประโยชน์ในฐานะสเกลคร่าวๆ ให้ถือสิ่งนี้เป็นบริบท narrative ไม่ใช่
สถิติสำหรับ release gate

ภายใน sweep เดือนพฤษภาคม แถว release branch ล่าสุดขยับอย่างมีนัยสำคัญจาก
`v2026.5.2`:

| เมตริก          | `v2026.5.2` | `v2026.5.28` |       ส่วนต่าง |
| --------------- | ----------: | -----------: | ----------: |
| เทิร์นเอเจนต์แบบ cold |     3,897ms |      1,908ms | ต่ำลง 51.0% |
| เทิร์นเอเจนต์แบบ warm |     3,610ms |      1,870ms | ต่ำลง 48.2% |
| RSS สูงสุดของเอเจนต์  |     613.7MB |      581.0MB |  ต่ำลง 5.3% |

เทียบกับ stable release ก่อนหน้า:

| เมตริก          | `v2026.5.27` | `v2026.5.28` |       ส่วนต่าง |
| --------------- | -----------: | -----------: | ----------: |
| เทิร์นเอเจนต์แบบ cold |      2,231ms |      1,908ms | ต่ำลง 14.5% |
| เทิร์นเอเจนต์แบบ warm |      2,226ms |      1,870ms | ต่ำลง 16.0% |
| RSS สูงสุดของเอเจนต์  |      649.0MB |      581.0MB | ต่ำลง 10.5% |

### ขนาดพื้นที่ติดตั้ง

| เมตริก                                          |  Baseline | `v2026.5.28` |       ส่วนต่าง |
| ----------------------------------------------- | --------: | -----------: | ----------: |
| ขนาดติดตั้งจากจุดสูงสุด `2026.5.22`              | 1,020.6MB |     361.7MiB | ต่ำลง 64.6% |
| ขนาดติดตั้งจาก release ล่าสุด `2026.5.27`    |  767.1MiB |     361.7MiB | ต่ำลง 52.8% |
| dependencies จากค่าสูงสุดรายเดือน `2026.2.26`      |       645 |          300 | ต่ำลง 53.5% |
| dependencies จาก release ล่าสุด `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 | แพ็กเกจ stable ก่อนหน้า           |
| `2026.5.28` |             17.9MB |           81.0MB |  9,082 | แพ็กเกจ stable ล่าสุด             |

`2026.5.12` คือหมุดหมายการแยก Plugin ที่เห็นได้ใน changelog:
Amazon Bedrock, Bedrock Mantle, Slack, OpenShell sandbox, Anthropic Vertex,
Matrix และ WhatsApp ถูกย้ายออกจากเส้นทาง dependency หลัก เพื่อให้กรวย dependency
ของสิ่งเหล่านั้นติดตั้งพร้อมกับ Plugin เหล่านั้น แทนที่จะติดตั้งกับทุกการติดตั้ง core

## สรุปเทิร์นเอเจนต์ Kova

สาย stable เดือนเมษายนมีเรื่องราวสองแบบที่ต่างกัน ช่วงต้นเมษายนช้าแต่ยังพอจำแนกได้
ช่วงปลายเมษายนกลายเป็นหน้าผา regression `v2026.5.2` คือจุดที่ lane ของ
mock-provider ลดลงเข้าสู่ช่วง 3-5 วินาทีเป็นครั้งแรก และเริ่มผ่านอย่างสม่ำเสมอ
ใน sweep ที่ให้มา

บริบทที่เผยแพร่ก่อนหน้า:

| Release      | Kova | เทิร์น cold | เทิร์น warm | 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 |

sweep ที่ให้มา:

| Release             | Kova | เทิร์น cold | เทิร์น warm | 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 |

## source probe

source probe ถูกข้ามสำหรับ ref เก่าที่สำเร็จ 17 รายการ เพราะ source tree เหล่านั้น
ยังไม่มี entry point ของ probe ที่จำเป็น เมตริกเทิร์นเอเจนต์ยังคงมีอยู่สำหรับ ref เหล่านั้น

จุด source-probe ที่เป็นตัวแทน:

| Release             | Default `readyz` p50 | 50 Plugin `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 |

ค่า spike ด้านสุขภาพของ CLI ใน `v2026.5.22` มองเห็นได้ในตารางนี้ แม้ว่า lane
agent-turn จะยังผ่านอยู่ก็ตาม ให้เก็บ source probes ไว้เมื่อสืบสวน
regression เฉพาะจุดของ CLI หรือ gateway

## การตรวจสอบ install footprint

ตัวอย่าง dependency ใช้ stable release หนึ่งรายการต่อเดือน รวมถึงเหตุการณ์
เริ่มนำ shrinkwrap มาใช้ใน `2026.5.22` และ release ล่าสุด `2026.5.28`

| จุด                | dependency ที่ติดตั้ง | fresh install | แพ็กเกจ OpenClaw | `openclaw/node_modules` แบบซ้อน | shrinkwrap ระดับรูท | พฤติกรรมการติดตั้ง Canvas                 |
| ------------------ | -------------------: | ------------: | ----------------: | -------------------------------: | ------------------- | ------------------------------------------ |
| ม.ค. `2026.1.30`   |                  605 |       438.4MB |            45.8MB |                            2.4MB | ไม่ใช่              | wrapper ระดับบนสุด + `darwin-arm64`        |
| ก.พ. `2026.2.26`   |                  645 |       575.7MB |           110.1MB |                            3.5MB | ไม่ใช่              | wrapper ระดับบนสุด + `darwin-arm64`        |
| มี.ค. `2026.3.31`  |                  438 |       584.1MB |           234.8MB |                              0MB | ไม่ใช่              | wrapper ระดับบนสุด + `darwin-arm64`        |
| เม.ย. `2026.4.29`  |                  392 |       335.0MB |            97.4MB |                              0MB | ไม่ใช่              | ไม่ได้ติดตั้งอะไร                          |
| `2026.5.22`        |                  401 |     1,020.6MB |         1,020.4MB |                          911.8MB | ใช่                 | แบบซ้อน: แพ็กเกจ `@napi-rs/canvas` ทั้ง 12 รายการ |
| พ.ค. `2026.5.26`   |                  371 |       767.5MB |           767.4MB |                          656.4MB | ใช่                 | แบบซ้อน: แพ็กเกจ `@napi-rs/canvas` ทั้ง 12 รายการ |
| `2026.5.27`        |                  371 |      767.1MiB |          766.9MiB |                         656.1MiB | ใช่                 | แบบซ้อน: แพ็กเกจ `@napi-rs/canvas` ทั้ง 12 รายการ |
| ล่าสุด `2026.5.28` |                  300 |      361.7MiB |          361.6MiB |                         259.7MiB | ใช่                 | ไม่ได้ติดตั้งอะไร                          |

### ขอบเขตของ shrinkwrap

<CardGroup cols={2}>
  <Card title="ก่อนมี shrinkwrap" icon="unlock">
    `2026.5.20` ไม่มี shrinkwrap ระดับรูท และไม่มี dependency tree ของ OpenClaw
    แบบซ้อนขนาดใหญ่
  </Card>
  <Card title="เริ่มนำมาใช้" icon="lock">
    `2026.5.22` เพิ่ม shrinkwrap ระดับรูท และติดตั้ง 911.8MB ภายใต้
    `openclaw/node_modules` แบบซ้อน
  </Card>
  <Card title="stable ล่าสุด" icon="tag">
    `2026.5.28` ยังคงมี shrinkwrap และยังติดตั้ง 259.7MiB ภายใต้
    `openclaw/node_modules` แบบซ้อน
  </Card>
  <Card title="แก้ไข fanout ของ Canvas แล้ว" icon="check">
    `2026.5.28` ไม่ติดตั้งแพ็กเกจ `@napi-rs/canvas` ใด ๆ อีกแล้วในการตรวจสอบ
    fresh install ในเครื่อง
  </Card>
</CardGroup>

การตรวจสอบ tarball ที่เผยแพร่ยืนยันขอบเขตดังกล่าว:

| เวอร์ชัน    | เผยแพร่เป็น stable? | `npm-shrinkwrap.json` ระดับรูท | หมายเหตุ                                  |
| ----------- | ------------------- | ------------------------------- | ------------------------------------------ |
| `2026.5.20` | ใช่                 | ไม่ใช่                          | stable release สุดท้ายก่อนมี shrinkwrap    |
| `2026.5.21` | ไม่ใช่              | n/a                             | ไม่มี stable npm release                   |
| `2026.5.22` | ใช่                 | ใช่                             | เริ่มนำ shrinkwrap มาใช้                   |
| `2026.5.23` | ไม่ใช่              | n/a                             | ไม่มี stable npm release                   |
| `2026.5.24` | ไม่ใช่              | n/a                             | ไม่มี stable npm release                   |
| `2026.5.25` | ไม่ใช่              | n/a                             | ไม่มี stable npm release                   |
| `2026.5.26` | ใช่                 | ใช่                             | dependency tree แบบซ้อนยังคงมีอยู่         |
| `2026.5.27` | ใช่                 | ใช่                             | dependency tree แบบซ้อนยังคงมีอยู่         |
| `2026.5.28` | ใช่                 | ใช่                             | dependency tree แบบซ้อนเล็กลงมาก           |

ความแตกต่างสำคัญคือ: **ตัว shrinkwrap เองไม่ใช่ปัญหา**
`v2026.5.28` ยังคงส่งมาพร้อม shrinkwrap ระดับรูท ปัญหาคือรูปทรงของแพ็กเกจ
ที่ทำให้ npm materialize dependency tree ของ OpenClaw แบบซ้อนขนาดใหญ่ และแพ็กเกจ
แพลตฟอร์ม `@napi-rs/canvas` ทั้ง 12 รายการ tree แบบซ้อนเล็กลงใน `v2026.5.28`
และ fanout ของแพลตฟอร์ม canvas ไม่ปรากฏในการตรวจสอบในเครื่องอีกต่อไป

สำหรับคำอธิบาย shrinkwrap แบบภาษาทั่วไปและการตรวจสอบแพ็กเกจระดับ maintainer
ดู [npm shrinkwrap](/th/gateway/security/shrinkwrap)

## การตีความด้าน supply-chain

จำนวน dependency เป็น metric ด้านความปลอดภัยเชิงปฏิบัติการ ไม่ใช่แค่ metric
ด้านขนาดการติดตั้งเท่านั้น ทุกแพ็กเกจขยายชุดของ maintainer, tarball,
transitive update, optional native binary และพฤติกรรมระหว่างการติดตั้งที่ operator
ต้องไว้วางใจ

ทิศทางการ cleanup คือ:

- เก็บ capability ที่หนักและเป็น optional ไว้นอกการติดตั้ง core เริ่มต้น
- ให้แพ็กเกจ Plugin เป็นเจ้าของ runtime dependency graph ของตัวเอง
- หลีกเลี่ยงการซ่อมแซม package-manager ระหว่างการเริ่มต้น Gateway
- รักษาการติดตั้งแบบ deterministic โดยไม่ทำให้เกิดการ materialize แพ็กเกจ native
  ทุกแพลตฟอร์ม
- ปิดใช้งาน install script ในเส้นทาง package acceptance และ measurement
- ตรวจจับ dependency tree แบบซ้อนและการเพิ่มขึ้นอย่างมากของ native optional dependency ก่อนเผยแพร่

เอกสารที่เกี่ยวข้อง:

- [การ resolve dependency ของ Plugin](/th/plugins/dependency-resolution)
- [inventory ของ Plugin](/th/plugins/plugin-inventory)
- [การตรวจสอบ release แบบเต็ม](/th/reference/full-release-validation)
