ตรวจและปรับแอป Sales Deal Platform ที่ https://sale-deal-platform.rome.agency/ ตาม R2-11 — แยก error ออกจากไม่มีรายการ ขอบเขต: repository ของแอปที่ผูกกับ deployment นี้ ไม่ใช่เว็บไซต์รายงาน UAT หน้า: งานขาย · กรณีโหลดผิดพลาด หลักฐานรอบ 2 วันที่ 12 กันยายน 2569: ตรวจเส้นทาง error ใน frontend; ยังไม่ได้จำลอง API ล่ม สิ่งที่พบ: getAdminSales ถูกเรียกใน useEffect; catch เขียน console.error แล้ว finally ปิด loading โดยไม่มี error state จึงมีเส้นทางที่แสดงตารางว่างเมื่อเรียกข้อมูลไม่สำเร็จ แนวทาง: เพิ่ม error state พร้อมลองใหม่ เก็บข้อมูลล่าสุดถ้ามี และแยก no data / no match / no permission / session expired ออกจากกัน เกณฑ์รับงาน: ทดสอบ 500, timeout, 401/403 และ empty response ในสภาพแวดล้อมทดสอบ; error ต้องไม่แสดงเป็นไม่มีงานขาย และ retry กลับมาทำงานได้ อ้างอิงภายใน: source-notes · R2-E03 สำหรับ empty state (ขอเข้าถึงชุดภายในที่ได้รับอนุญาตหากจำเป็น) หลักการ: https://www.w3.org/WAI/WCAG22/Understanding/status-messages.html อ่านแนวทาง repository และยืนยันบน revision ปัจจุบันก่อนแก้ แยก UI observation ออกจากข้อสรุป backend ที่ยังไม่ได้ตรวจ ใช้ fixture สังเคราะห์บน local/test environment และทำส่วนที่ไม่ขึ้นกับนิยามที่ขาดต่อได้ ใช้ design tokens และ component ที่มีอยู่ รองรับภาษาไทย keyboard และ mobile อย่าเพิ่ม library หรือ cache layer โดยไม่มีความจำเป็น วัดก่อน/หลังหากเป็น performance ส่งมอบ code ที่แก้, สาเหตุ, ผลทดสอบตามเกณฑ์, ข้อจำกัด และวิธีย้อนกลับเมื่อเกี่ยวข้อง ห้ามเปลี่ยนผล UAT เป็น PASS โดยไม่มี retest และอย่าทำธุรกรรมจริง เปลี่ยนสิทธิ์ หรือตั้งค่า production เพื่อทดสอบ