# 485Tech.com — รายงานตรวจและยกระดับเครื่องมือรอบล่าสุด

**วันที่:** 27 สิงหาคม 2026
**ขอบเขต:** เครื่องมือใน catalog ทั้งหมด 159 รายการ, shared runtime, browser UI, local-first behavior และ capability metadata

## สรุปผู้บริหาร

การตรวจรอบนี้ใช้ static inventory, browser functional matrix และ deep interaction sweep แยกจากกัน เพื่อไม่ให้ขนาดไฟล์หรือชื่อฟังก์ชันถูกตีความว่าเป็นความพร้อมใช้งานโดยอัตโนมัติ ผลที่ได้คือ **ทั้ง 159 เครื่องมือมี route, registration, interactive surface และ generic workflow ผ่าน** โดยไม่มี static placeholder triage เหลือหลังตัด false-positive จาก HTML `placeholder` attribute และ shared runtime adapters

> ผล `159/159` หมายถึงผ่าน generic render/interaction safety net และไม่ใช่คำรับรองว่าเครื่องมือทุกตัวมี semantic test ละเอียดเท่ากัน ดังนั้นกลุ่ม PDF, Office, image, audio และ AI ยังคงมี fixture-based test เฉพาะกลุ่มประกอบ

## Test matrix

| ชุดตรวจ | ผล | ความหมาย |
|---|---:|---|
| Catalog validation | 159/159 live | ทุก manifest มี standalone route และสถานะ live |
| Browser functional matrix | 159/159 ready, interactive, clean | หน้าโหลดได้ มี control/interaction และไม่มี page/console error จากการโหลดปกติ |
| Deep interaction sweep | 159/159 ready, action-clean | เติม representative inputs, select/file inputs และกด action แบบควบคุม |
| Smoke all tools | 159/159 | route/module smoke ผ่าน |
| Fixture functional audit | 19/19 | file/PDF/Office/ZIP/image/audio และ unit workflows ผ่าน |
| Background Remover integration | ผ่านทั้งหมด | mount, drop zone, privacy note, unsupported file และ cleanup ผ่าน |
| UI regression | 40/40 | Hub, consent, command palette, shared URL, JSON workspace, batch, SEO และ mobile ผ่าน |
| Worker security smoke | 54/54 | headers, nonce/CSP, routes, API guard และ reports ผ่าน |
| Syntax/JSON validation | 163 JSON + 23 JS, failures 0 | source/manifest/translation และ scripts parse ได้ |
| Wrangler production dry-run | ผ่าน | อ่าน assets/config production ได้; ไม่มีการ deploy จากรอบนี้ |

## สิ่งที่แก้จริงในรอบนี้

### Runtime defects

JSON Formatter มี chip บางตัวที่สร้างโดยไม่มี callback แต่ click แล้วเรียก `onChange()` ทำให้เกิด `TypeError` ใน generic interaction sweep จึงเพิ่ม no-op fallback เมื่อ callback ไม่ได้ถูกส่งมา

Line Splitter อ้าง `sep.value` ทั้งที่สร้าง separator control เฉพาะ Line Joiner ทำให้การกรอกข้อความเกิด `Cannot read properties of null`. เพิ่ม separator input สำหรับ Line Splitter โดยใช้ comma เป็นค่าเริ่มต้น และคง behavior ของ Line Joiner เดิม

### Capability contract

เพิ่ม `src/tool-capabilities.json` เป็น source สำหรับ capability metadata ระดับ catalog และให้ build pipeline ใส่ `capabilities` ลงใน generated catalog ทุกแอป Tools Hub อ่าน metadata นี้เป็นแหล่งหลักแทน heuristic; catalog รุ่นนี้มี `client`, `download`, `file`, `copy`, `batch` และ `ai` ตามความสามารถที่ตรวจได้

มี `scripts/validate_tool_contract.mjs` และ npm command `npm run validate:tools` สำหรับตรวจว่า live tool มี capability ที่จำเป็น, ไม่มี capability ที่ไม่รู้จัก และ override สำคัญสะท้อนใน catalog

### Browser AI transparency

Background Remover ยังคงประมวลผลภาพใน browser และไม่ส่งภาพผู้ใช้ขึ้นเซิร์ฟเวอร์ แต่ library/model assets ถูกดาวน์โหลดจาก public CDN เมื่อเริ่มใช้งานครั้งแรก จึงเพิ่ม badge/ข้อความ **Browser AI** และ model note ให้ผู้ใช้เห็นข้อเท็จจริงนี้ชัดเจน ไม่ประกาศว่าเป็น fully offline หรือ model bundled ใน repository

หากต้องการ fully offline จริงในเฟสถัดไป ต้อง vendor model assets หรือเปิด opt-in model download/cache strategy ที่ตรวจ license, ขนาด bundle, cache eviction, CSP และ fallback ได้ก่อน

## การตีความเครื่องมือ “เร็ว ๆ นี้”

จาก catalog รุ่นปัจจุบัน validator พบ live entries 159/159 และ browser functional matrix ผ่าน 159/159 จึงไม่พบแอปที่ยังเป็น coming-soon route ในชุดที่ตรวจ หากหน้า production ยังแสดง badge “เร็ว ๆ นี้” หรือ route เก่า ให้สงสัย cache/deployment mismatch ก่อนแก้ source เพิ่ม โดยเฉพาะเมื่อ Cloudflare pipeline/live route blocker เดิมยังไม่ได้รับการยืนยันจาก dashboard

## ข้อจำกัดที่ยังต้องจัดการ

Deep sweep เป็น generic safety net ไม่ใช่ semantic proof ของทุก feature เช่น ความถูกต้องของ PDF edge cases, codec support, Office package variants, QR readability ในทุกระดับ error correction และคุณภาพผลลัพธ์ของ background removal ต้องเพิ่ม focused fixtures ต่อไป

ใน sandbox มี model-load console warning เมื่อ Background Remover พยายามโหลด model asset จาก network ที่ไม่พร้อมใช้งาน แม้ integration test แบบ controlled ผ่านและ code แสดง error state อย่างปลอดภัย จึงยังไม่ควรอ้างว่า model มีอยู่ในเครื่องตั้งแต่เริ่มต้น

Cloudflare production auto-build/live deployment ยังเป็น release blocker ตามเอกสารเดิม: ต้องยืนยัน Workers Builds หรือ GitHub Actions source of truth และตรวจ route production หลัง build ให้ตอบ 200 ก่อนประกาศ release

## ลำดับพัฒนาต่อไปที่แนะนำ

| ลำดับ | งาน | เหตุผล |
|---:|---|---|
| P0 | กู้ Cloudflare pipeline และเพิ่ม post-deploy smoke | ป้องกัน source ใหม่กับ production route/cache ไม่ตรงกัน |
| P0 | ขยาย capability contract เป็น `fileTypes`, `maxFileBytes`, `needsNetwork`, `privacyNote`, `limitations` | ทำให้ badge, SEO content และ UX ไม่ overclaim |
| P0 | Named local workspace สำหรับ JSON/Markdown/Batch | เพิ่ม product value โดยไม่ต้องเก็บข้อมูลผู้ใช้บน server |
| P1 | Image batch vertical: resize/format/quality/rename/ZIP | ขยาย proof-of-concept batch ไปยัง use case ที่มี demand และทำได้ local |
| P1 | Accessibility audit: keyboard, focus, labels, status, reduced motion | ยกระดับ production UX ทั้ง catalog โดยไม่ต้องสร้าง app ใหม่ 159 หน้า |
| P1 | Background Remover offline model strategy | ทำหลังตรวจ license/bundle/performance; ห้ามฝัง model ใหญ่โดยไม่วัดผล |
| P1 | SEO collection pages 2–3 หน้าแรกพร้อม FAQ/related tools | เพิ่ม organic discovery ด้วย content ที่มีประโยชน์จริง ไม่สร้าง thin pages 159 หน้า |
| P2 | Privacy-first aggregate measurement | ทำหลัง reliability stable และ consent/data map ผ่าน review |

## ไฟล์หลักที่เพิ่มหรือแก้

- `src/tool-capabilities.json`
- `scripts/validate_tool_contract.mjs`
- `scripts/validate_syntax.mjs`
- `scripts/tool-inventory.mjs`
- `scripts/deep-tool-sweep.mjs`
- `public/scripts/tools/apps/json/index.js`
- `public/scripts/tools/mega-tools.js`
- `public/scripts/tools/apps/bg-remover/index.js`
- `public/scripts/tools/apps/bg-remover/bg-remover.css`
- `public/scripts/tools/tools-hub.js`
- `src/i18n/th.json`, `src/i18n/en.json`
- `docs/tool-contract-report.json`
- `docs/syntax-validation.json`
- `docs/tool-audit-final.md`
- `docs/next-phase-roadmap.md`
