4.1 KiB
4.1 KiB
Session 9 — 2026-05-27 (Context-Aware Prompt Templates & Database Typo CC Cleanup)
Summary
ดำเนินการอิมพลีเมนต์ ADR-030 (Context-Aware Prompt Templates สำหรับการสกัดข้อมูลเอกสาร) และทำการแก้ไขบัคช่องว่างประเภทผู้รับ 'CC ' ในฐานข้อมูล
Backend Changes (B1-B6)
- AiPrompt Entity: เพิ่มการแมปคอลัมน์
contextConfigไปยัง JSON ฟิลด์context_configในฐานข้อมูลเพื่อควบคุม master data resolution - CreateAiPromptDto / Response DTO: ปรับแต่งให้รองรับการรับและส่งออกคอลัมน์
contextConfig - AiPromptsService:
- อิมพลีเมนต์เมธอด
resolveContext()สำหรับการดึงข้อมูล Master Data ดำเนินการคัดกรองข้อมูลอ้างอิงโครงการ (Projects, Organizations, Disciplines, CorrespondenceTypes, Tags) สอดคล้องกับ dynamic config filter - ติดตั้ง Gatekeeper Rule (ตัวกรองความปลอดภัย) โยน
ForbiddenExceptionทันทีเมื่อมีการร้องขอ override project UUID ข้ามอาณาเขตโครงการที่กำหนดใน template เพื่อป้องกัน Cross-project data leak
- อิมพลีเมนต์เมธอด
- AiBatchProcessor:
- ปรับปรุงโครงสร้าง
MigrateDocumentMetadatainterface, sandbox extraction, และ migration process ให้ดึงข้อมูลและแมป master data context-aware - สกัดและจำแนกผู้รับเอกสาร (recipients) ภายใต้โครงสร้าง JSON แบบใหม่ในรูป Object Array:
recipients: Array<{ organizationPublicId: string, recipientType: 'TO' | 'CC' }>เพื่อความเสถียรและทนทานของข้อมูล
- ปรับปรุงโครงสร้าง
- Unit Tests:
- เพิ่มชุดการทดสอบ
resolveContextในai-prompts.service.spec.tsครอบคลุมการจำลอง master data resolution, การโยนNotFoundExceptionและการล็อคสิทธิ์ความปลอดภัยด้วยForbiddenExceptionเมื่อ override โครงการข้าม boundary - แก้ไข mock dependencies ของ
AiPromptsServiceในai-batch.processor.spec.tsป้องกันปัญหาTypeError: getActive is not a functionทำให้ผ่าน unit tests 100%
- เพิ่มชุดการทดสอบ
Database & Schema Changes (ADR-009)
- schema-02-tables.sql: แก้ไข line 338 ปรับปรุง
ENUM('TO', 'CC ')เป็นENUM('TO', 'CC') - SQL Delta: สร้าง
2026-05-27-add-context-aware-prompts-and-cleanup.sqlดำเนินการUPDATEข้อมูลเก่าที่เป็น'CC 'ให้เป็น'CC'เพื่อล้างช่องว่าง จากนั้นสั่งALTER TABLEปรับปรุงฟิลด์ enum และ Seed template ภาษาไทยเวอร์ชัน 2 - Rollback SQL: สร้างไฟล์ย้อนกลับ
2026-05-27-add-context-aware-prompts-and-cleanup.rollback.sqlเรียบร้อย
Frontend Changes
- detail.tsx: ตรวจสอบการใช้งาน
normalizeRecipientTypeซึ่งครอบคลุมการล้างช่องว่างและการกรองผู้รับ TO/CC ได้อย่างทนทาน
Verification
pnpm --filter backend build— ✅ Compile ผ่านแบบ Strict Mode- unit tests AI module & backend suites — ✅ ผ่านทั้งหมด 60 suites / 521 tests