3 คะแนน โดย flamehaven01 2025-12-05 | 2 ความคิดเห็น | แชร์ทาง WhatsApp

สวัสดีครับ/ค่ะ เมื่อประมาณสามเดือนก่อนผม/ฉันเคยแนะนำ Dir2md เป็นครั้งแรก
หลังจากนำไปใช้กับหลายโปรเจกต์ ก็พบข้อจำกัดเชิงโครงสร้าง และด้วยเหตุนี้จึงได้ยกเครื่องอัลกอริทึม ความปลอดภัย และไปป์ไลน์การแสดงผลทั้งหมดใหม่


❔Dir2md คืออะไร

Dir2md คือ เครื่องมือที่แปลงโครงสร้างไดเรกทอรีที่ซับซ้อนให้เป็นคอนเท็กซ์ Markdown·JSONL ที่เป็นมิตรกับ AI พร้อม smart sampling, security masking และการควบคุมงบประมาณโทเค็น เครื่องมือนี้จะจัดระเบียบรีโพให้อัตโนมัติในรูปแบบที่เหมาะที่สุดสำหรับการพัฒนาแบบ AI-assisted development


🔧 มีอะไรเปลี่ยนไปบ้าง — ผลลัพธ์จากการยกเครื่องทั้งหมดตลอด 3 เดือน

1) ออกแบบเอนจินสำหรับ AI ใหม่

  • เพิ่ม head/tail smart sampling ระดับไฟล์
  • ปรับตรรกะ การจัดสรรงบประมาณโทเค็นอัตโนมัติ ให้ละเอียดขึ้น
  • ปรับโครงสร้าง การเลือกไฟล์สำคัญก่อน
  • จัดทำ ไปป์ไลน์การแสดงผลหลายรูปแบบ ได้แก่ Markdown, JSON, JSONL, manifest

2) เพิ่ม Spicy (ตัววิเคราะห์ความปลอดภัยและความเสี่ยง)

  • มี risk scanner ในตัว ที่เปิดใช้งานเป็นค่าเริ่มต้นเมื่อรัน
  • ใช้ระบบ ระดับความรุนแรง 5 ขั้น ตั้งแต่ ok → critical
  • คำนวณ คะแนนความเสี่ยง 0~100 ในระดับรีโพ
  • แสดง Actionable Risk Table ที่มีไฟล์/บรรทัด/หมวดหมู่/แนวทางรับมือ

3) เสริมเอนจิน security masking

  • มาสก์อัตโนมัติ สำหรับแพตเทิร์นสำคัญ เช่น API key, JWT, OAuth, DB URL, PEM
  • เพิ่ม regex แบบกำหนดเองโดยผู้ใช้และ ความสามารถในการโหลดไฟล์แพตเทิร์น

4) เพิ่มการกำจัดข้อมูลซ้ำด้วย SimHash

  • ลบไฟล์ที่คล้ายกันและผลลัพธ์จากการ build
  • ลดการสิ้นเปลืองโทเค็นซ้ำซ้อน ในคอนเท็กซ์อินพุตของ LLM

5) ขยายระบบ Preset

  • มี 4 โหมดคือ raw, pro, ai, fast
  • โหมด ai มี งบประมาณ 6000 โทเค็น + การจัดอันดับไฟล์ตามคิวรี

🌶️ Spicy คืออะไร?

พูดสั้น ๆ Spicy คือ “ผู้รีวิวอัตโนมัติที่ไม่เคยใจอ่อนเรื่องความปลอดภัย เหมือนซีเนียร์ดีเวลลอปเปอร์สายตาเฉียบคม”

Dir2md ไม่ใช่แค่เครื่องมือสำหรับ “ทำเอกสารของไดเรกทอรี” เท่านั้น แต่ยังตรวจสอบความปลอดภัยและคุณภาพที่จำเป็นต้องทำก่อนนำรีโพใส่ให้ AI ได้ในครั้งเดียว

1) ตรวจจับข้อมูลอ่อนไหว

  • ตรวจจับแพตเทิร์นที่อาจนำไปสู่อุบัติเหตุจริง เช่น API Key, OAuth Client Secret, JWT, DB URL, PEM key

2) วิเคราะห์การใช้การเข้ารหัสที่อ่อนแอและความปลอดภัยที่เปราะบาง

  • ตรวจจับโค้ดที่มีปัญหาด้านความปลอดภัย เช่น อัลกอริทึมที่เปราะบาง การจัดการคีย์ที่ไม่ปลอดภัย

3) วินิจฉัยความเป็นไปได้ของการเกิด injection

  • ตรวจจับแพตเทิร์นที่คล้ายกับ SQL/Command/Code Injection

4) การเปิดเผยข้อมูลผ่าน log และ debug

  • ตรวจจับโค้ด/การตั้งค่าที่มีการแสดงผลข้อมูลอ่อนไหว

5) ปัญหาการควบคุมการเข้าถึง

  • วิเคราะห์แพตเทิร์นที่มีช่องโหว่เกี่ยวกับ authentication และ authorization
  • ตรวจจับสัญญาณความเสี่ยงด้านการตั้งค่าที่ถูกกล่าวถึงใน README ด้วย

📊 ผลการวัดจริงจากรีโพ production ภายใน 9 รีโพ

หลังการออกแบบ Dir2md + Spicy ใหม่ ตัวเลขที่วัดได้จริง ณ เมื่อวานมีดังนี้:

  • ตรวจพบข้อมูลอ่อนไหวระดับ high·critical เฉลี่ย 2.4 รายการต่อรีโพ
    • เช่น API key, PEM private key, DB URL, bearer token
  • ขนาดคอนเท็กซ์ลดลงเฉลี่ย 68%
    • 128k → ~41k tokens (ยังคงเก็บทุกไฟล์ที่มีความหมายไว้)
  • เวลาทำ security review: เดิม 3.5 ชั่วโมง → 11 วินาที
  • จำนวนข้อมูลลับที่รั่วออกไปผ่าน LLM prompt หลังนำไปใช้: 0 กรณี

ผลลัพธ์นี้คือประสิทธิภาพในสภาพแวดล้อมการใช้งานจริงที่เกิดขึ้นเมื่อ smart sampling · การกำจัดข้อมูลซ้ำด้วย SimHash · การวิเคราะห์ความเสี่ยงของ Spicy · เอนจิน masking ทำงานร่วมกัน


⭐ หากโปรเจกต์นี้มีประโยชน์กับคุณ

Dir2md + Spicy เป็นโอเพนซอร์ส
ฟีเจอร์ส่วนใหญ่ที่คุณเห็นอยู่ตอนนี้สามารถพัฒนามาได้ ด้วยฟีดแบ็กจากผู้ใช้และดาว (⭐) ขอขอบคุณอีกครั้ง

  • 👉 GitHub Star ของคุณหนึ่งครั้งช่วยได้มาก!
  • 👉 ยินดีรับทั้งบั๊กและไอเดียใหม่ ๆ เสมอ

2 ความคิดเห็น

 
flamehaven01 2025-12-19

📌 สรุปอัปเดตสำคัญหลัง dir2md v1.1.2

  • v1.2.1 (แพตช์ด้านความปลอดภัย/ความน่าเชื่อถือ)

    • แก้ช่องโหว่ Markdown ``` injection → escape fence อัตโนมัติ
    • ลบ subprocess ของเครื่องมือภายนอก (vulture) → ปิดกั้นเวกเตอร์ RCE
    • ลบ silent exception และเพิ่มความเข้มของ warning log
    • ทำการประมวลผล glob ให้ง่ายขึ้น (เป็นไปตามกฎของ gitignore)
    • แยก default exclude ไปไว้ที่ defaults.json + เพิ่มระบบลำดับความสำคัญ
  • v1.2.0 (การเพิ่มประสิทธิภาพอัตโนมัติอัจฉริยะ)

    • pipeline ลดโทเค็น 60~70% ที่ทำงานได้โดยไม่ต้องตั้งค่า

      • การบีบอัด Gravitas (การแทนที่สัญลักษณ์)
      • semantic sampling บนพื้นฐาน Python AST
    • เมื่อใช้ --query จะมีการแก้คำสะกดผิดอัตโนมัติ + ขยายผลการค้นหา

    • ออกแบบโดยยึด preset เป็นศูนย์กลาง ทำให้ลดจำนวนแฟลกลงอย่างมาก (raw/fast/pro/ai)

    • พัฒนาโดยไม่พึ่งพา external NLP/LLM dependency

  • v1.1.3

    • การตรวจจับ Phantom code: ตรวจหาเครื่องมือวิเคราะห์ dead code บน PATH โดยอัตโนมัติ

👉 สรุปคือ ตั้งแต่ 1.2.x เป็นต้นไป เป็นรีลีสที่เน้น “ลดการตั้งค่า เสริมความปลอดภัย/ความเป็นเชิงกำหนด/ความเป็นมิตรต่อ AI”
(คงความเข้ากันได้ย้อนหลังไว้, ไม่มี CLI breaking)

ที่มา: CHANGELOG

 
flamehaven01 2025-12-09

🚂 dir2md 1.1.2 ปล่อยแล้ว!
อัปเดตครั้งนี้ภายนอกอาจดูเล็ก แต่รวมเฉพาะการเปลี่ยนแปลงที่ส่งผลโดยตรงต่อความเสถียรในการใช้งานจริงเท่านั้น

🛡 Security

🔸พรีคอมไพล์ regex สำหรับการมาสก์แบบพื้นฐาน/ขั้นสูงล่วงหน้า → ลดความเสี่ยง ReDoS
🔸ไฟล์ขนาดเกิน 1MB จะถูกข้ามก่อนอ่าน และบันทึกไว้แค่ใน manifest

⚙️ Performance
🔸ใช้ LRU cache (2048) กับการประเมินจำนวนโทเค็น → เพิ่มความเร็วในรีโปขนาดใหญ่
🔸แม้เป็นสตริงว่างก็จะนับเป็นอย่างน้อย 1 โทเค็น → ขจัดความกำกวมของ “0 โทเค็น”

🧩 UX / Behavior
🔸ไฟล์ที่ถูกข้ามจะทิ้งแฮช/สรุปแบบ placeholder ไว้ เพื่อเพิ่มความโปร่งใส
🔸แพตเทิร์นการมาสก์แบบกำหนดเอง หากคอมไพล์ไม่สำเร็จจะเตือนแล้วเมินข้าม (ป้องกันการล้มเหลวแบบเงียบ ๆ)

✅ Tests
🔸ผ่าน 22, ข้าม 2

แม้จะเป็นรีลีสเล็ก ๆ แต่ก็รันการทดสอบครบทั้งหมดแล้ว

เป้าหมายของเวอร์ชันนี้มีเพียงข้อเดียว:
“มันรันทุกวันบน CI และโค้ดโปรดักชันจริงได้หรือไม่?”
ตอนนี้เราเข้าใกล้คำนั้นไปอีกหนึ่งก้าวแล้ว

https://github.com/flamehaven01/Dir2md/releases/tag/v1.1.2