> For the complete documentation index, see [llms.txt](https://getsquish.gitbook.io/squish/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://getsquish.gitbook.io/squish/th/resources/changelog.md).

# บันทึกการเปลี่ยนแปลง

การเปลี่ยนแปลงที่ผู้ใช้เห็นในแต่ละเวอร์ชันที่เผยแพร่ของ [`@getsquish/squish`](https://www.npmjs.com/package/@getsquish/squish), เรียงจากใหม่สุดก่อน วันที่คือวันที่เผยแพร่บน npm หมายเหตุการออกรุ่นก็อยู่บน [GitHub Releases](https://github.com/getsquish/squish/releases).

## 0.3.1 — 2026-07-18

กิจกรรมเสียงตอนนี้เก็บพลังงานความถี่สูงไว้ขณะสร้างไทม์ไลน์แบบอัตราต่ำ

* แก้ข้อผิดพลาดการสุ่มตัวอย่างใหม่ใน 0.3.0 ที่อาจทำให้โทนเสียงต่อเนื่องที่สูงกว่า 500 Hz ดูแทบไม่มีเสียง ตอนนี้ Squish จะสร้างซองกิจกรรมแบบเต็มย่านก่อนย่อให้เหลือรูปแบบ 1 kHz ขนาดกะทัดรัดที่ใช้กับชีตและ JSON
* ไม่มีการเปลี่ยนแปลงสัญญาใช้งานหรือคำสั่ง: `audio.samples[]`, `clip_peak`, CLI และ local MCP ยังใช้รูปแบบ 0.3.0 เหมือนเดิม วิดีโอที่ไม่มีเสียงและวิดีโอที่มีแทร็กเงียบยังคงให้ผลลัพธ์แยกกัน

{% hint style="success" %}
**ลอง 0.3.1 กับวิดีโอที่คุณรู้จัก:**

```bash
npx -y @getsquish/squish@0.3.1 clip.mov --json
```

ชีตภาพติดต่อแบบ JPEG มีเฟรม ไทม์โค้ดแบบสัมบูรณ์ และแถบกิจกรรมเสียง ลองให้ AI หาเหตุการณ์เฉพาะหนึ่งช่วง แล้วรัน Squish อีกครั้งด้วยช่วงนั้น—เช่น `--start 12 --end 18`—เพื่อตรวจดูใกล้ขึ้น CLI ต้องใช้ Node.js 20+ และ ffmpeg; การประมวลผลวิดีโอจะอยู่บนเครื่องของคุณ
{% endhint %}

## 0.3.0 — 2026-07-18

กิจกรรมเสียงกลายเป็นช่องทางการนำทางบนปากฝั่งโลคัล

* ชีตของ CLI/local-MCP ทุกแผ่นตอนนี้มีแถบบางๆ **แถบกิจกรรมเสียง** อยู่เหนือกริดภาพ โดยจัดแนวกับไทม์ไลน์ต้นฉบับแบบสัมบูรณ์เดียวกัน จุดพลังงานสูงจะถูกทำเครื่องหมายไว้ เพื่อให้เอเจนต์เลือกช่วงมาตรวจดูได้ แม้เฟรมข้างเคียงจะดูคล้ายกัน
* JSON เพิ่มอ็อบเจ็กต์ `เสียง`  โดยไม่ลบหรือเปลี่ยนชื่อฟิลด์ v0 ใดๆ: `มีอยู่`, `การทำให้อยู่ในมาตรฐานเดียวกัน`, สัมบูรณ์ `หน้าต่าง`, และ `samples[]` (`เวลา`, `ระดับ`). Local MCP ส่งกลับอ็อบเจ็กต์เดียวกันพร้อมกับ `timecodes[][]`.
* ระดับใช้ `การทำให้อยู่ในมาตรฐานเดียวกัน: clip_peak` ตลอดคลิปต้นฉบับทั้งหมด รวมถึงการเรียกแบบมีหน้าต่าง ดังนั้นการซูมที่เงียบก็ยังคงเงียบเมื่อเทียบกับภาพรวม แทนที่จะถูกปรับมาตรฐานแยกต่างหากจนทุกช่วงดูดัง
* ซองกิจกรรมจะเก็บทรานเชียนต์สั้นๆ ไว้ระหว่างการลดตัวอย่างในภาพรวม วิดีโอที่มีแทร็กเงียบจะคืนค่าระดับเป็นศูนย์; วิดีโอที่ไม่มีแทร็กเสียงยังคงสร้างชีตและรายงาน `มีอยู่: false`.
* ขอบเขตการใช้งาน: กิจกรรมตอบว่า *เมื่อพลังงานเสียงเปลี่ยนไป*, ไม่ใช่สิ่งที่พูดหรืออะไรที่ทำให้เกิดเสียง ไม่มีการถอดเสียง การแยกผู้พูด การจำแนกเหตุการณ์เสียง หรือการอนุมานอารมณ์ เว็บแอป API ที่โฮสต์ และ remote MCP ยังเป็นแบบเห็นภาพเท่านั้นจนกว่าจะมีการปล่อยแยกต่างหาก
* README และ `video-navigation` สกิลตอนนี้มีขั้นตอนทดสอบ 5 นาทีเพิ่มเข้ามา: นำวิดีโอที่คุณรู้คำตอบมา ขอให้หาเหตุการณ์เฉพาะหนึ่งจุด เดินผ่านภาพรวม → ซูม และตรวจสอบเวลาที่อ้างอิงกับต้นฉบับ

## 0.2.3 — 2026-07-14

รุ่นที่ค้นพบได้: ตอนนี้เอเจนต์สามารถหา Squish ได้ด้วยตัวเอง

* ถูกระบุไว้ใน **MCP Registry** เป็น [`io.github.getsquish/squish`](https://registry.modelcontextprotocol.io/v0/servers?search=io.github.getsquish/squish): `package.json` มี `mcpName` (ตัวระบุความเป็นเจ้าของบน npm ของรีจิสทรี), `server.json` อธิบายทั้งสองวิธีในการใช้งาน (แพ็กเกจ npm นี้ผ่าน stdio + จุดปลายที่โฮสต์ไว้) และเวิร์กโฟลว์ OIDC ที่ถูกเรียกด้วยแท็กจะเผยแพร่รายการนี้ทุกครั้งที่มีการปล่อยรุ่น
* **`video-navigation` สกิลของเอเจนต์** ใน `skills/` ไดเรกทอรี — `npx skills add getsquish/squish` สอนเอเจนต์ว่าเมื่อไรควรใช้ชีตภาพติดต่อ วนลูปซูม และรักษาวินัยในการอ้างอิง อยู่ในรายการที่ skills.sh
* ความตรงไปตรงมาของ stdio MCP: `serverInfo` ตอนนี้รายงานเวอร์ชันจริงของแพ็กเกจแล้ว (ก่อนหน้านี้ค้างอยู่ที่ค่าที่กำหนดตายตัว `0.2.0` มาสองรุ่น) และ `squish_video` มีคำอธิบายพฤติกรรม — เขียนชีตลงดิสก์ของคุณ ไม่มีอะไรออกจากเครื่อง (closed world) รันซ้ำจะเขียนทับเอาต์พุตเดิม (idempotent)
* เอกสารใหม่: [สำหรับเอเจนต์ AI](/squish/th/getting-started/for-ai-agents.md) (ตารางตัดสินใจเลือกพื้นผิว + กฎพฤติกรรม) และ [การสนับสนุน](/squish/th/resources/support.md).
* จุดปลายที่โฮสต์ไว้ (เครื่องยนต์เดียวกัน, **ไม่ได้อยู่ในแพ็กเกจนี้**): เมตาดาต้าการสแกนของ Apps SDK (`outputSchema` + `structuredContent`, ไฟล์แนบ `fileParams`), ช่องทางฟรีที่ระบุตามหัวข้อ และช่องโควตาแบบไม่เกี่ยวกับพาณิชย์สำหรับทราฟฟิกของ ChatGPT — แอป ChatGPT ถูกส่งเข้าตรวจทานเมื่อ 2026-07-12
* เครื่องยนต์ไม่เปลี่ยน: `squish-cli-v0` และ `squish-mcp-v0` สัญญาใช้งานเหมือนกับ 0.2.0 ทุกประการ

## 0.2.2 — 2026-07-10

README ของเลนส์ และปากฝั่งรีโมตเพิ่มการยืนยันตัวตน

* README สร้างใหม่โดยยึดตามคัมภีร์ของเลนส์ — *AI มองผ่านเลนส์ ไม่ได้มองหาคำตอบ: Squish ปรับเลนส์; โมเดลเป็นตัวตีความ* — พร้อมปกใหม่ ("เข้าถึงวิดีโอแบบสุ่ม") และเส้นทางแอปทางการ (เพิ่ม `https://api.getsquish.app/mcp` เป็นคอนเน็กเตอร์ ติดตั้งเป็นศูนย์)
* `squish_video` คำอธิบายเครื่องมือปรับจากหลักฐานภาคสนาม: แนวคิดประหยัดด้วยการเรียกครั้งเดียว ("หนึ่งการเรียกแทนทั้งท่อ ดาวน์โหลด → ffmpeg → แยก → ตัดต่อ") คำแนะนำเรื่องความหนาแน่นเทียบกับหน้าต่าง และ `timecodes[][]` หมายเหตุแบบกระจก — เอเจนต์เลือกเครื่องมือและขับลูปได้ดีขึ้นโดยไม่ต้องเปลี่ยนพรอมป์ต์
* จุดปลายที่โฮสต์ไว้ (เครื่องยนต์เดียวกัน, **ไม่ได้อยู่ในแพ็กเกจนี้**): `api.getsquish.app/mcp` เพิ่มตัวเลือก `Authorization: Bearer` คีย์ API (ใช้เครดิตเดียวกับ Hosted API หักก่อนดึงข้อมูลและคืนอัตโนมัติ) พร้อมช่องฟรีแบบไม่ระบุตัวตนขนาดเล็ก; เมื่อโควตาหมดจะตอบด้วยข้อผิดพลาดแบบมีโครงสร้างที่เอเจนต์สามารถส่งต่อได้ **CLI และ MCP server แบบโลคัลในแพ็กเกจนี้จะไม่มีการล็อกไว้ตลอดไป**
* เครื่องยนต์ไม่เปลี่ยน: `squish-cli-v0` และ `squish-mcp-v0` สัญญาใช้งานเหมือนกับ 0.2.0 ทุกประการ

## 0.2.1 — 2026-07-08

รุ่นโอเพนซอร์สครั้งแรก: เครื่องยนต์เบื้องหลัง `@getsquish/squish` เปิดสู่สาธารณะที่ [github.com/getsquish/squish](https://github.com/getsquish/squish) (Apache-2.0, สำเนากระจกที่คัดเลือกจาก monorepo ต้นกำเนิด — ประวัติเริ่มต้นที่นั่น).

* README สร้างใหม่โดยยึดตาม Primitive: วิดีโอในฐานะตัวแทนที่ระบุอ้างอิงได้, วนลูปการนำทาง (ภาพรวม → ซูม → อ้างอิง), และเมตาเดโม — วิดีโออธิบาย 76 วินาทีที่แสดงอยู่ข้างวิดีโอเดียวกันในรูปชีตภาพติดต่อหนึ่งแผ่น
* `package.json` `ที่เก็บโค้ด` ตอนนี้ชี้ไปที่รีโพสาธารณะแล้ว ดังนั้นลิงก์ "Repository" ของ npm จึงใช้งานได้
* เพิ่ม `SECURITY.md` (รายงานช่องโหว่แบบส่วนตัวผ่าน GitHub security advisories) และแบดจ์ npm / CI / ใบอนุญาต
* เครื่องยนต์ไม่เปลี่ยน: `squish-cli-v0` และ `squish-mcp-v0` สัญญาใช้งานเหมือนกับ 0.2.0 ทุกประการ

## 0.2.0 — 2026-07-07

ชีตแบบมีหน้าต่าง — รุ่นที่เปลี่ยนชีตให้เป็นพื้นที่ที่นำทางได้

* `--start` / `--end` บน CLI และ `เริ่ม` / `สิ้นสุด` บน `squish_video` หน้าต่างเครื่องมือ MCP ให้รันไปยังช่วงได้ ทั้งคู่รับหน่วยเป็นวินาที (`90`) หรือไทม์โค้ดตามที่ระบุไว้บนชีตเป๊ะๆ (`1:30`, `1:07.3`).
* ไทม์โค้ดยังคง **เป็นแบบสัมบูรณ์กับวิดีโอต้นฉบับในทุกระดับการซูม** — การรันแบบมีหน้าต่างจะไม่ตั้งฐานใหม่ให้ จึงเจาะลงไปซ้ำๆ ได้: ภาพรวม → ช่วง → ช่วงเวลา
* ความละเอียดของไทม์โค้ดแบบปรับตามความยาวหน้าต่าง: หน้าต่างสั้นจะประทับไทม์โค้ดย่อยวินาที (`1:07.3`) เพื่อให้เซลล์ที่ติดกันยังแยกกันได้
* ขีดจำกัดขั้นต่ำที่อ้างอิงได้: หน้าต่างที่แคบกว่า 2 มิลลิวินาทีต่อเซลล์จะถูกปฏิเสธพร้อมข้อผิดพลาดเชิงสอน (ซูมออกหรือลดความหนาแน่น) แทนที่จะสร้างเซลล์ที่แยกไม่ออก
* การรันแบบมีหน้าต่าง `--json` จะสะท้อนขอบเขตที่แก้ค่าแล้วเป็น `"window": { "start": …, "end": … }`.

## 0.1.1 — 2026-07-06

เขียน README ใหม่สำหรับหน้าแพ็กเกจ npm ไม่มีการเปลี่ยนแปลงเครื่องยนต์หรือสัญญาใช้งาน

## 0.1.0 — 2026-07-06

การเผยแพร่ครั้งแรกของ `@getsquish/squish`: CLI และ MCP server ในแพ็กเกจเดียว

* CLI: `squish <video>` → ชีตภาพติดต่อที่มีเวลาประทับอยู่ข้างอินพุต (`<basename>.sheet-N.jpg`), `--density 3x3|4x4|5x5|6x6`, `--out <dir>`, และ `--json` พร้อม `squish-cli-v0` สัญญา stdout ที่ตรึงไว้
* MCP server: `squish mcp` (stdio) เปิดให้ใช้เครื่องมือหนึ่งตัว, `squish_video`, ส่งกลับสัญญา CLI พร้อม `timecodes[][]`, ที่ประทับเวลา `squish-mcp-v0`.
* การตรวจล่วงหน้า ffmpeg/ffprobe ที่ล้มเหลวอย่างรวดเร็วพร้อมคำแนะนำการติดตั้งแยกตามระบบปฏิบัติการ แทนที่จะเกิดข้อผิดพลาดกลางทาง
* สัญญาอนุญาต Apache-2.0 + NOTICE.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://getsquish.gitbook.io/squish/th/resources/changelog.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
