Maintenance

ช่องทางการเผยแพร่รุ่น

OpenClaw มาพร้อมช่องทางอัปเดตสามช่องทาง:

  • stable: npm dist-tag latest แนะนำสำหรับผู้ใช้ส่วนใหญ่
  • beta: npm dist-tag beta เมื่อเป็นเวอร์ชันปัจจุบัน หากไม่มี beta หรือเก่ากว่า รุ่น stable ล่าสุด โฟลว์อัปเดตจะถอยกลับไปใช้ latest
  • dev: หัวล่าสุดที่เคลื่อนไหวของ main (git) npm dist-tag: dev (เมื่อเผยแพร่แล้ว) สาขา main มีไว้สำหรับการทดลองและการพัฒนาที่ดำเนินอยู่ อาจมี ฟีเจอร์ที่ยังไม่สมบูรณ์หรือการเปลี่ยนแปลงที่ทำให้ใช้งานร่วมกันไม่ได้ อย่าใช้กับ Gateway สำหรับโปรดักชัน

โดยปกติเราจะส่งบิลด์ stable ไปที่ beta ก่อน ทดสอบที่นั่น แล้วจึงเรียกใช้ ขั้นตอนโปรโมตอย่างชัดเจนที่ย้ายบิลด์ที่ผ่านการตรวจสอบแล้วไปยัง latest โดยไม่ เปลี่ยนหมายเลขเวอร์ชัน ผู้ดูแลยังสามารถเผยแพร่รุ่น stable ไปที่ latest โดยตรงเมื่อจำเป็นได้ Dist-tags คือแหล่งข้อมูลจริงสำหรับการติดตั้ง npm

สายการสนับสนุนรายเดือนที่วางแผนไว้

OpenClaw ยังไม่มีช่องทาง LTS หรือช่องทางสนับสนุนรายเดือน เรากำลังทำงาน ไปสู่สายการสนับสนุนรายเดือนที่เข้ากันได้กับ SemVer เพื่อให้ผู้ใช้สามารถอยู่บนสายที่นิ่งกว่า ขณะที่ latest ยังเคลื่อนไหวได้อย่างรวดเร็ว

รูปแบบเวอร์ชันที่วางแผนไว้คือ YYYY.M.PATCH:

  • YYYY คือปี
  • M คือสายรุ่นรายเดือน โดยไม่มีศูนย์นำหน้า
  • PATCH เพิ่มขึ้นภายในสายนั้นของเดือน และสามารถมากกว่า 100 ได้หากจำเป็น

ตัวอย่างแท็กในอนาคต:

  • v2026.6.0, v2026.6.1, v2026.6.2 สำหรับสายเดือนมิถุนายน
  • v2026.6.3-beta.1 สำหรับรุ่นก่อนเผยแพร่บนขบวน fast/latest
  • dist-tag ของสายสนับสนุนในอนาคต เช่น stable-2026-6 หรือ lts-2026-6 อาจ ชี้ไปยังสายรายเดือน แต่วันนี้ยังไม่มีช่องทางดังกล่าว

จนกว่าการย้ายนี้จะเกิดขึ้น ช่องทางอัปเดตสาธารณะยังคงเป็น stable, beta, และ dev

การสลับช่องทาง

openclaw update --channel stable
openclaw update --channel beta
openclaw update --channel dev

--channel จะบันทึกตัวเลือกของคุณไว้ใน config (update.channel) และจัดวิธี การติดตั้งให้สอดคล้องกัน:

  • stable (การติดตั้งแบบแพ็กเกจ): อัปเดตผ่าน npm dist-tag latest
  • beta (การติดตั้งแบบแพ็กเกจ): เลือกใช้ npm dist-tag beta ก่อน แต่ถอยกลับไปใช้ latest เมื่อไม่มี beta หรือเก่ากว่าแท็ก stable ปัจจุบัน
  • stable (การติดตั้งแบบ git): checkout แท็ก git stable ล่าสุด
  • beta (การติดตั้งแบบ git): เลือกใช้แท็ก git beta ล่าสุดก่อน แต่ถอยกลับไปใช้ แท็ก git stable ล่าสุดเมื่อไม่มี beta หรือเก่ากว่า
  • dev: ตรวจให้แน่ใจว่ามี git checkout (ค่าเริ่มต้น ~/openclaw, แทนที่ได้ด้วย OPENCLAW_GIT_DIR), สลับไปที่ main, rebase บน upstream, build และ ติดตั้ง CLI แบบ global จาก checkout นั้น

การเจาะจงเวอร์ชันหรือแท็กแบบครั้งเดียว

ใช้ --tag เพื่อเจาะจง dist-tag, เวอร์ชัน หรือ package spec สำหรับการอัปเดตครั้งเดียว โดยไม่ เปลี่ยนช่องทางที่คุณบันทึกไว้:

# Install a specific version
openclaw update --tag 2026.4.1-beta.1

# Install from the beta dist-tag (one-off, does not persist)
openclaw update --tag beta

# Install from GitHub main branch (npm tarball)
openclaw update --tag main

# Install a specific npm package spec
openclaw update --tag [email protected]

หมายเหตุ:

  • --tag ใช้กับ การติดตั้งแบบแพ็กเกจ (npm) เท่านั้น การติดตั้งแบบ git จะละเว้นค่านี้
  • แท็กจะไม่ถูกบันทึกไว้ การเรียก openclaw update ครั้งถัดไปจะใช้ช่องทางที่คุณกำหนดค่าไว้ ตามปกติ
  • การป้องกันการดาวน์เกรด: หากเวอร์ชันเป้าหมายเก่ากว่าเวอร์ชันปัจจุบันของคุณ OpenClaw จะถามเพื่อยืนยัน (ข้ามได้ด้วย --yes)
  • --channel beta แตกต่างจาก --tag beta: โฟลว์ช่องทางสามารถถอยกลับไปใช้ stable/latest เมื่อไม่มี beta หรือเก่ากว่า ขณะที่ --tag beta จะเจาะจง dist-tag beta ดิบสำหรับการเรียกใช้นั้นครั้งเดียว

Dry run

ดูตัวอย่างว่า openclaw update จะทำอะไรโดยไม่ทำการเปลี่ยนแปลง:

openclaw update --dry-run
openclaw update --channel beta --dry-run
openclaw update --tag 2026.4.1-beta.1 --dry-run
openclaw update --dry-run --json

dry run จะแสดงช่องทางที่มีผล เวอร์ชันเป้าหมาย การดำเนินการที่วางแผนไว้ และ การยืนยันการดาวน์เกรดว่าจะจำเป็นหรือไม่

Plugins และช่องทาง

เมื่อคุณสลับช่องทางด้วย openclaw update OpenClaw จะซิงค์แหล่งที่มาของ Plugin ด้วย:

  • dev เลือกใช้ Plugin ที่บันเดิลมาจาก git checkout ก่อน
  • stable และ beta กู้คืนแพ็กเกจ Plugin ที่ติดตั้งผ่าน npm
  • Plugin ที่ติดตั้งผ่าน npm จะถูกอัปเดตหลังจากการอัปเดต core เสร็จสมบูรณ์

การตรวจสอบสถานะปัจจุบัน

openclaw update status

แสดงช่องทางที่ใช้งานอยู่ ชนิดการติดตั้ง (git หรือ package) เวอร์ชันปัจจุบัน และ แหล่งที่มา (config, แท็ก git, สาขา git หรือค่าเริ่มต้น)

แนวปฏิบัติที่ดีในการติดแท็ก

  • ติดแท็กรุ่นที่คุณต้องการให้ git checkout ไปลงที่นั่น (vYYYY.M.D สำหรับรุ่น stable ปัจจุบัน, vYYYY.M.D-beta.N สำหรับรุ่น beta ปัจจุบัน)
  • vYYYY.M.D.beta.N ก็ยังถูกรองรับเพื่อความเข้ากันได้ แต่ควรใช้ -beta.N
  • แท็กเดิม vYYYY.M.D-<patch> ยังคงถูกรับรู้เป็น stable (ไม่ใช่ beta) แต่โมเดลการสนับสนุนรายเดือนที่วางแผนไว้จะใช้หมายเลข patch ปกติ (vYYYY.M.PATCH) แทน suffix แก้ไขด้วยยัติภังค์
  • รักษาแท็กให้แก้ไขไม่ได้: อย่าย้ายหรือใช้แท็กซ้ำ
  • npm dist-tags ยังคงเป็นแหล่งข้อมูลจริงสำหรับการติดตั้ง npm:
    • latest -> stable
    • beta -> บิลด์ตัวเลือกหรือบิลด์ stable ที่ส่งไป beta ก่อน
    • dev -> snapshot ของ main (ไม่บังคับ)

ความพร้อมใช้งานของแอป macOS

บิลด์ beta และ dev อาจ ไม่มี รุ่นแอป macOS ซึ่งไม่เป็นไร:

  • แท็ก git และ npm dist-tag ยังสามารถเผยแพร่ได้
  • ระบุว่า "ไม่มีบิลด์ macOS สำหรับ beta นี้" ใน release notes หรือ changelog

ที่เกี่ยวข้อง