# PushNotification

ส่งการแจ้งเตือนบนเดสก์ท็อปจากเซสชัน Claude Code ที่กำลังใช้งานอยู่ หาก Remote Control เชื่อมต่ออยู่ การแจ้งเตือนจะถูกส่งไปยังโทรศัพท์ของผู้ใช้ด้วย เพื่อดึงความสนใจของพวกเขากลับมายังเซสชันไม่ว่าจะทำอะไรอยู่ก็ตาม

## เมื่อใดควรใช้

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

## เมื่อใดไม่ควรใช้

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

## พารามิเตอร์

- `message` (สตริง, จำเป็น): เนื้อหาการแจ้งเตือน เก็บไว้ต่ำกว่า 200 ตัวอักษร ระบบปฏิบัติการมือถือจะตัดสตริงที่ยาวกว่านั้น เริ่มต้นด้วยสิ่งที่ผู้ใช้จะดำเนินการ: "build failed: 2 auth tests" มีประโยชน์กว่า "task complete"
- `status` (สตริง, จำเป็น): ตั้งเป็น `"proactive"` เสมอ นี่คือตัวระบุที่ตายตัวและไม่เปลี่ยนแปลง

## ตัวอย่าง

### ตัวอย่างที่ 1: แจ้งเตือนเมื่อการวิเคราะห์ที่ใช้เวลานานเสร็จสิ้น

มีการร้องขอการตรวจสอบ dependency ทั้งรีโพสิทอรีซึ่งใช้เวลาหลายนาที ผู้ใช้ออกไปจากที่ทำงาน เมื่อรายงานพร้อมแล้ว:

```
message: "ตรวจสอบ dependency เสร็จ: พบ CVE ความเสี่ยงสูง 3 รายการใน lodash, axios, jsonwebtoken รายงาน: audit-report.txt"
status: "proactive"
```

### ตัวอย่างที่ 2: ระบุจุดตัดสินใจระหว่างการทำงานอัตโนมัติ

ระหว่างการ refactor หลายขั้นตอน พบว่าสองโมดูลมี interface ที่ขัดแย้งกันและไม่สามารถรวมกันได้โดยไม่มีการตัดสินใจด้านการออกแบบ:

```
message: "หยุด refactor แล้ว: AuthService และ UserService มี token interface ที่ขัดแย้งกัน ต้องการการตัดสินใจก่อนดำเนินการต่อ"
status: "proactive"
```

## หมายเหตุ

- เอนเอียงอย่างหนักไปทาง **ไม่** ส่ง การแจ้งเตือนขัดจังหวะผู้ใช้ไม่ว่าพวกเขากำลังทำอะไร ถือว่ามันเป็นต้นทุนที่ต้องได้รับการพิสูจน์ด้วยคุณค่าของข้อมูล
- เริ่มต้นด้วยเนื้อหาที่ดำเนินการได้ คำแรกๆ ควรบอกผู้ใช้ว่าเกิดอะไรขึ้นและสิ่งที่ต้องทำหากมี ไม่ใช่ป้ายกำกับสถานะทั่วไป
- เก็บ `message` ไว้ต่ำกว่า 200 ตัวอักษร ระบบปฏิบัติการมือถือจะตัดสตริงที่ยาวกว่า ซึ่งอาจตัดส่วนที่สำคัญที่สุดออกหากอยู่ท้าย
- หากผลลัพธ์ระบุว่าไม่ได้ส่ง push เพราะ Remote Control ไม่ได้เชื่อมต่อ นั่นเป็นพฤติกรรมที่คาดหวัง ไม่จำเป็นต้องลองใหม่หรือดำเนินการเพิ่มเติม การแจ้งเตือนบนเดสก์ท็อปในเครื่องยังคงทำงานอยู่
- หลีกเลี่ยงการส่งการแจ้งเตือนมากเกินไป หากส่งการแจ้งเตือนบ่อยๆ สำหรับเหตุการณ์เล็กน้อย ผู้ใช้จะเริ่มเพิกเฉยต่อมัน สงวนเครื่องมือนี้ไว้สำหรับช่วงเวลาที่มีโอกาสสูงที่ผู้ใช้ออกไปและต้องการทราบผลลัพธ์ตอนนี้
