Problem solving

ปัญหาที่เจอระหว่างทำงานและวิธีแก้ ใช้อ้างอิงเมื่อเจอปัญหาแบบเดิมอีก ยังเปิดอยู่ 0 เรื่อง

P-014 Sitemap จำนวนมากกว้างเป็นแถบเดียวเมื่อ navigation มีวงจร

แก้แล้ว 31 ต.ค. 2569 Milestone 0 › E0.4 เครื่องมือของทีม

อาการ
ภาพ overview ของ 170 หน้ากว้างมากและ fit เหลือประมาณ 2% แม้ source direction เป็น TB
สาเหตุ
การ collapse strongly connected components ทำให้หน้าจอจำนวนมากอยู่ rank เดียว แล้ว layout วางทุก node ในแถวเดียว
วิธีแก้
แบ่งแถว TB ไม่เกิน 6 cards ต่อแถวและคงความสูงตามข้อความจริง เพิ่ม Module/Channel scope กับ Focus โดยซ่อนเฉพาะมุมมองและไม่ลบ hidden nodes ตอน Save; browser ตรวจ bounded width/แนวตั้งและการคง 170 nodes หลังบันทึก

P-013 ข้อทดสอบลาก diagram ส่งเมาส์นอก viewport หลังเพิ่มกล่องข้อสังเกต

แก้แล้ว 31 ต.ค. 2569 Milestone 0 › E0.4 เครื่องมือของทีม

อาการ
grid drag assertion ไม่ผ่าน แต่ shape และเส้นแสดงปกติ
สาเหตุ
พิกัดกึ่งกลาง start shape อยู่ y≈1019 เมื่อ viewport สูง 1000 และ elementFromPoint ไม่พบ node; กล่อง review เพิ่มความสูงก่อน canvas แต่ test ใช้ mouse coordinates โดยไม่เลื่อนหน้า
วิธีแก้
ให้ Playwright scroll canvas เข้ามาใน viewport ก่อนทดสอบ wheel/drag แล้วตรวจพิกัดและ grid จริง ชุดเดิมผ่านครบ 70 ข้ออีกครั้ง ไม่แก้ product drag โดยเดาสาเหตุ

P-012 Tracker ช้าเมื่อเปิดหลาย tab

แก้แล้ว 30 ต.ค. 2569 Milestone 0 › E0.4 เครื่องมือของทีม

อาการ
กดเมนูแล้วหน้าโหลดช้า ทั้งที่ server ตอบเร็ว
สาเหตุ
ทุก tab เปิดการเชื่อมต่อ live update (SSE) ค้างไว้ 1 ช่อง browser ให้ประมาณ 6 ช่องต่อเว็บบน HTTP/1.1 เปิดหลาย tab แล้ว request ใหม่ต้องรอ และ CSS/JS ถูกโหลดใหม่ทุกหน้า
วิธีแก้
tab ที่ซ่อนอยู่ปิดการเชื่อมต่อแล้วต่อใหม่เมื่อกลับมา, CSS/JS ใส่ ?v=<hash> และให้ browser cache ได้

P-011 ย่อ/ขยายใน Timeline กดแล้วแถวไม่หาย

แก้แล้ว 30 ต.ค. 2569 Milestone 0 › E0.4 เครื่องมือของทีม

อาการ
กดปุ่ม ▾ ที่ Milestone / Epic หรือย่อทั้งหมด แล้วแถวข้างในยังแสดงอยู่
สาเหตุ
JS ใส่ attribute hidden ให้แถวถูกแล้ว แต่ CSS .tl-row { display: flex } มีผลเหนือ [hidden] ของ browser แถวจึงไม่หาย E2E เดิมเช็กแค่ attribute ไม่ได้เช็กว่าหายจากจอจริง
วิธีแก้
เพิ่ม .tl-row[hidden] { display: none } และ E2E เช็กจากความสูงของแถวที่เห็นจริง

P-010 ช่องรายละเอียดของ Timeline มีสีซ้อนตอนชี้เมาส์ (theme มืด)

แก้แล้ว 30 ต.ค. 2569 Milestone 0 › E0.4 เครื่องมือของทีม

อาการ
เลื่อน chart ไปทางขวาแล้วชี้เมาส์ที่แถว ส่วนที่ช่องรายละเอียดทับ chart เห็นสีแถบทะลุขึ้นมา
สาเหตุ
สี hover ของ theme มืดเป็นสีโปร่งแสง (rgba) และไปแทนพื้นทึบของช่องรายละเอียดที่ลอยทับ chart
วิธีแก้
วางสี hover เป็นชั้นบนพื้นทึบ (linear-gradient + --surface / --thead) ช่องรายละเอียดจึงทึบเสมอ

P-009 ผลตรวจจาก curl ผิดเพราะ rtk ตัด output

แก้แล้ว 30 ต.ค. 2569 Milestone 0 › E0.4 เครื่องมือของทีม

อาการ
ตรวจหน้า Wait for review ด้วย curl | grep แล้วได้ 0 ฟอร์ม ทั้งที่หน้าเว็บมีฟอร์มครบ
สาเหตุ
เครื่องนี้ใช้ rtk ซึ่ง rewrite คำสั่ง curl ให้ย่อ output (เหลือ ~600 ตัวอักษรจาก 34 KB) grep จึงไม่เจอสิ่งที่อยู่ท้ายหน้า
วิธีแก้
ใช้ rtk proxy curl เมื่อต้องการ output เต็มสำหรับ grep หรือนับผล ตรวจซ้ำแล้วเจอฟอร์มครบ 6 อัน

P-008 เปิด tracker ผ่าน Tailscale แล้วได้ 404 และ 500

แก้แล้ว 30 ต.ค. 2569 Milestone 0 › E0.4 เครื่องมือของทีม

อาการ
tailscale serve --http ตอบ 404 page not found เมื่อเข้าด้วย IP และตอบ 500 เมื่อเข้าด้วยชื่อเครื่อง
สาเหตุ
(1) HTTP serve เลือกปลายทางตามชื่อ host และ MagicDNS ปิดอยู่ เครื่องอื่นจึงต้องใช้ IP ซึ่งไม่ตรงกับชื่อที่ลงทะเบียน (2) WSL ส่งต่อพอร์ตให้ Windows ทาง ::1 เท่านั้น ปลายทาง 127.0.0.1 จึงต่อไม่ได้ และ http://[::1]:8099 ถูกบันทึกเป็น http://::1:8099 ซึ่งไม่ใช่ URL ที่ถูกต้อง
วิธีแก้
ใช้ tailscale serve --tcp=8099 tcp://localhost:8099 ซึ่งส่งต่อแบบ TCP ไม่สนชื่อ host และให้ localhost เลือก ::1 เอง ทดสอบทุกหน้าและ SSE ผ่าน IP Tailscale แล้วผ่าน รวมไว้ใน scripts/tailscale.sh

P-007 Watcher อ่านไฟล์ข้อมูลระหว่างที่กำลังบันทึก

แก้แล้ว 30 ต.ค. 2569 Milestone 0 › E0.4 เครื่องมือของทีม

อาการ
TestWatchBroadcastsOnDataChange ผ่านบ้างไม่ผ่านบ้าง และหน้าเว็บอาจขึ้นข้อความ JSON ผิดแวบหนึ่งตอนบันทึกไฟล์
สาเหตุ
การบันทึกไฟล์จะล้างไฟล์ก่อนแล้วค่อยเขียน watcher ที่ตรวจทุก 1 วินาทีบางครั้งอ่านไฟล์ตอนที่ยังเขียนไม่เสร็จ
วิธีแก้
เมื่อเห็นไฟล์เปลี่ยน ให้รอจนขนาดและเวลาแก้ไขของไฟล์คงที่ (ตรวจห่างกัน 100 ms) ก่อนโหลดใหม่ แล้วรันทดสอบซ้ำ 30 รอบผ่านครบ

P-001 Proposal มีเนื้อหาจากเอกสารโครงการอื่นค้างอยู่

แก้แล้ว 30 ต.ค. 2569 Milestone 0 › E0.1 Discovery และฐานความรู้โครงการ

อาการ
§5 (Architecture, การเชื่อมต่อ, NFR) และ §7 (งบประมาณ) พูดถึงระบบที่ไม่เกี่ยวกับ TNSU
สาเหตุ
ทีมใช้เอกสารของโครงการอื่นขึ้นโครง แล้วลืมลบเนื้อหาเดิมออก
วิธีแก้
เอาเนื้อหานั้นออกจากฐานความรู้ทั้งหมด และระบุว่า §5 กับ §7 ยังไม่ได้เขียนสำหรับ TNSU ให้ Agent ข้ามไป

P-002 รหัส SCH ซ้ำกันระหว่าง BA กับ use case

แก้แล้ว 30 ต.ค. 2569 Milestone 0 › E0.1 Discovery และฐานความรู้โครงการ

อาการ
เอกสารใช้ SCH-xx เป็นโรงเรียนกีฬา แต่ use case ของทีมใช้ SCH เป็น module ทุนและ กยศ.
สาเหตุ
ตั้งรหัสฝั่ง BA เองก่อนได้ use case
วิธีแก้
เปลี่ยนรหัสฝั่ง BA เป็น SS-xx ทุกไฟล์ และเขียนคำเตือนไว้ใน AGENTS.md

P-003 ภาพโครงสร้าง module ของ BA ความละเอียดต่ำ

แก้แล้ว 29 ต.ค. 2569 Milestone 0 › E0.1 Discovery และฐานความรู้โครงการ

อาการ
ภาพขนาด 2000×486 ตัวอักษรเล็กจนอ่านตรง ๆ ไม่ได้ และมีเลขข้อซ้ำ (8.3, 14.3, 15.3)
สาเหตุ
ได้มาเป็นภาพ export ไม่ใช่ไฟล์ต้นฉบับ
วิธีแก้
ตอนแรกตัดภาพเป็นส่วนแล้วขยาย 4–5 เท่าเพื่อถอดข้อความ ต่อมา BA ส่งไฟล์ต้นฉบับ TNSU_EDU 191069.drawio มา (30 ต.ค. 2569) จึงอ่านจากไฟล์โดยตรงด้วย gen_ba_drawio.py ข้อความตรงกับที่ถอดจากภาพทุกข้อ เลขข้อซ้ำมีอยู่จริงในต้นฉบับ

P-004 ข้อมูล use case ฝังอยู่ในไฟล์ HTML ที่ export มา

แก้แล้ว 30 ต.ค. 2569 Milestone 0 › E0.1 Discovery และฐานความรู้โครงการ

อาการ
Agent อ่านไฟล์ UC1-Explorer.dc.html ขนาด 300 KB ได้ยาก และค้นหา use case รายตัวไม่ได้
สาเหตุ
ข้อมูลทั้งหมดอยู่ในตัวแปร JavaScript บรรทัดเดียว
วิธีแก้
เขียนสคริปต์ gen_use_cases.py ดึง object ออกมาแล้วสร้าง Markdown ทีละ module รันใหม่ได้ทุกครั้งที่ทีม export

P-005 หาผู้อนุมัติด้วยการค้นคำให้ผลผิด

แก้แล้ว 30 ต.ค. 2569 Milestone 0 › E0.2 บทบาท สิทธิ์ และความปลอดภัย

อาการ
การค้นคำว่า อนุมัติ หรือ รับรอง ทำให้นักศึกษาถูกนับเป็นผู้อนุมัติในหลาย module
สาเหตุ
คำเหล่านี้ปรากฏในขั้นตอนของผู้ยื่นคำขอด้วย เช่น ยื่นใบลาที่ไม่ต้องอนุมัติ
วิธีแก้
ใช้ตารางนับแค่การมีส่วนร่วม แล้วอ่านขั้นตอนอนุมัติ 158 รายการเพื่อทำตารางอำนาจอนุมัติด้วยมือ

P-006 เครื่องไม่มีโปรแกรมแปลง .docx

แก้แล้ว 29 ต.ค. 2569 Milestone 0 › E0.1 Discovery และฐานความรู้โครงการ

อาการ
ไม่มี pandoc และ libreoffice ให้แปลง Proposal เป็นข้อความ
สาเหตุ
เครื่อง WSL ไม่ได้ติดตั้งไว้
วิธีแก้
แตกไฟล์ .docx แล้วอ่าน word/document.xml ด้วย Python ตรง ๆ รวมตารางและตำแหน่งภาพ

P-007 Browser test ผ่าน CDP โดยตรงค้างตอน navigation

แก้แล้ว 30 ต.ค. 2569 Milestone 0 › E0.4 เครื่องมือของทีม

อาการ
ชุด browser test แรกค้างที่ Page.navigate แม้ HTTP server ตอบ 200
สาเหตุ
การเรียก Chromium ด้วยชุด flag และ CDP แบบง่ายในสภาพแวดล้อมนี้ไม่สามารถเปิดหน้าได้ สาเหตุระดับ Chromium ยังไม่ได้ยืนยัน ไม่พบปัญหา HTTP server
วิธีแก้
ใช้ Playwright ที่ติดตั้งอยู่แล้วเปิด headless shell ด้วย launch configuration มาตรฐาน ทดสอบจริงผ่าน 23 ข้อ รวมการเขียนและสองผู้ใช้ ไม่มีการติดตั้ง dependency เพิ่ม