# Telegram · อ้างอิง Case Board

Canonical page: https://phishdestroy.github.io/TgWitness/th/docs/reference/case-board/

บุ๊กมาร์ก, การเน้นข้อความที่แม่นยำ, ส่วนการดำเนินการ, การสนทนา, การเข้าถึงตามขอบเขต และประวัติคำอธิบายประกอบที่ลงนาม ซึ่งใช้โดย Case Board.

[Project context and measured scale](https://phishdestroy.github.io/TgWitness/docs/reference/overview/)

[Documentation index](https://phishdestroy.github.io/TgWitness/th/llms.txt)

บุ๊กมาร์ก, การเน้นข้อความที่แม่นยำ, ส่วนการดำเนินการ, การสนทนา, การเข้าถึงตามขอบเขต และประวัติคำอธิบายประกอบที่ลงนาม ซึ่งใช้โดย Case Board.

[TgWitness](https://github.com/phishdestroy/TgWitness/blob/main/README.md) / [เอกสารประกอบ](https://github.com/phishdestroy/TgWitness/blob/main/docs/README.md) · [การสอบสวน](https://phishdestroy.github.io/TgWitness/th/docs/reference/investigation/)

![การสอบสวน](https://phishdestroy.github.io/TgWitness/assets/chapter-investigate.svg)

Case Board ให้ทีมสอบสวนมีมุมมองการทำงานร่วมกันของข้อมูลที่บันทึกไว้ สามารถทำเครื่องหมาย การสังเกตการณ์, ไฮไลต์ข้อความเฉพาะ, บันทึกชุดการดำเนินการ และหารือกับเพื่อนร่วมงาน บัตรข้อมูลจะเก็บรักษาการอ้างอิงแหล่งที่มาและประวัติการแก้ไขที่ลงนามไว้ หมายเหตุของทีมจะอยู่ใน พื้นที่ทำงาน และสามารถแยกแยะได้ชัดเจนจากบันทึกการสังเกตการณ์ Telegram ต้นฉบับ

[แบบจำลองหลักฐาน](https://phishdestroy.github.io/TgWitness/th/docs/reference/evidence/) · [เข้าถึง](https://phishdestroy.github.io/TgWitness/th/docs/reference/access/) · [รายงาน](https://phishdestroy.github.io/TgWitness/th/docs/reference/case-reports/)

![ข้อมูลการสืบสวนที่สร้างขึ้น](https://phishdestroy.github.io/TgWitness/assets/case-board.png)

**บนหน้านี้**

- [ทำงานกับกรณีหนึ่ง](https://phishdestroy.github.io/TgWitness/th/docs/reference/case-board/#work-with-a-case)
- [สิทธิ์](https://phishdestroy.github.io/TgWitness/th/docs/reference/case-board/#permissions)
- [สัญญาที่เก็บไว้](https://phishdestroy.github.io/TgWitness/th/docs/reference/case-board/#stored-contracts)
- [API และการส่งออก](https://phishdestroy.github.io/TgWitness/th/docs/reference/case-board/#api-and-exports)
- [ขีดจำกัดการทำงาน](https://phishdestroy.github.io/TgWitness/th/docs/reference/case-board/#operating-limits)

## ทำงานกับคดี

เปิด **Investigation → Case Board** ในโหมด Standard หรือ Expert ภาษาจะตามแผงควบคุม ใช้**ปุ่ม** **To board** ข้างบันทึกในสมุดบันทึกหรือข้อความแชทที่บันทึกไว้ หรือเลือกการ์ดนั้นแล้วกด **B** บุ๊กมาร์กจะถูกเพิ่มไปยัง Inbox ด้วยการคลิกเพียงครั้งเดียว แก้ไขชื่อ ป้ายกำกับ และหมายเหตุ หรือย้ายไปยัง คอลเลกชัน การ์ดที่แก้ไขแล้วจะเพิ่มเวอร์ชันที่มีลายเซ็น; การลบการ์ดจะรักษาประวัติไว้

สำหรับกรณีแรก ให้เลือกการเก็บรวบรวมข้อมูลและเพิ่มบันทึกที่ตอบคำถามหนึ่งข้อ ใช้ส่วนความคิดเห็น เพื่อตรวจสอบการตีความ จากนั้นใช้ส่วน **Presentation** เพื่อดูผ่านบัตรและบริบทของแหล่งข้อมูล เลือกเนื้อหา Case Board แยกต่างหากใน [Report Studio](https://phishdestroy.github.io/TgWitness/th/docs/reference/case-reports/) เมื่อเตรียม เอกสารส่งมอบ การบันทึกส่วนหนึ่งจะไม่ตั้งค่าตัวกรองข้อมูลของรายงานโดยอัตโนมัติ

เลือกข้อความภายในข้อความแชทที่บันทึกไว้เพื่อแสดง**เมนู** **Highlight → board** เลือกสีและ เพิ่มหมายเหตุ เซิร์ฟเวอร์จะตรวจสอบคำอ้างอิงที่แม่นยำและเวอร์ชันที่บันทึกไว้ รวมถึงอีโมจิ ข้อความ RTL และ เครื่องหมายรวม ข้อความที่เลือกจะไม่ถูกแมปผ่านข้อความที่ถูกปิดบังหรือแปลงรูปแบบ

กด Shift พร้อมคลิกที่บันทึกสองรายการในแชทเดียวเพื่อใช้ **Slice between**, ใช้ **Slice by time** หรือบันทึก ตัวกรองแชทปัจจุบัน, ช่วงระยะเวลา และประเภทเหตุการณ์ของ Journal ส่วน Slice ที่บันทึกไว้จะมี ตัวกำหนดที่เชื่อถือได้ของตัวเอง: การเปิดมันใน Journal จะใช้ตัวกรองแชทหลายรายการ, ข้อจำกัดจำนวนข้อความ และตัวกรอง ผู้กระทำด้วย **การแสดงบันทึกที่เพิ่มเข้ามาตั้งแต่การตั้งบุ๊กมาร์ก**จะแยกส่วนที่เพิ่มเข้ามาภายหลัง การเปลี่ยนตัวกรองของ Journal จะทำให้ออกจาก Slice จาก People, **Slice this person’s actions** ใช้ ID ผู้กระทำที่บันทึกไว้; มันไม่สมมติว่าผู้เขียนข้อความได้แก้ไข ลบ หรือตอบสนองต่อข้อความนั้น

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

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

**โหมดการนำเสนอจะ**เปิดบัตรทั้งหมดในคอลเลกชันที่เลือก พร้อมด้วยมุมมองบัตร (Card), บริบทแหล่งข้อมูล (Source context) และความคิดเห็นของทีม (Team comments) รวมถึงปุ่มควบคุม Previous/Next บนคีย์บอร์ด โหมดนี้ไม่มีปุ่มควบคุมสำหรับการแก้ไข ฟีดปกติ ถูกแบ่งเป็นหน้า; โหมดการนำเสนอจะโหลดรายการเป็นหน้าๆ และแสดงรายละเอียดบัตรหนึ่งใบต่อครั้ง

## สิทธิ์

ทุกการดำเนินการต้องการสิทธิ์`view`, ขอบเขตพื้นที่ทำงาน/แชท และสิทธิ์`board.read` สำหรับบอร์ด. สิทธิ์`board.write` ใช้เพื่อเพิ่มการ์ด, ความคิดเห็น, การย้าย และการตั้งค่าสถานะเปิด/ตรวจสอบ. สิทธิ์`board.manage` อนุญาตให้จัดการคอลเลกชัน, สถานะยืนยัน/ปฏิเสธ, การแก้ไข/ลบการ์ดของผู้อื่น. สถานะเป็นการตัดสินใจของทีม ไม่ใช่ผลการตรวจสอบทางเข้ารหัส

ตั้งค่าสิทธิ์การเข้าถึงล่วงหน้า: ผู้ตรวจสอบ = อ่าน; ผู้วิเคราะห์ = อ่าน/เขียน; ผู้ดำเนินการ = อ่าน/เขียน/จัดการ, นอกเหนือจากสิทธิ์ที่มีอยู่เดิม สิทธิ์ที่มีอยู่เดิมจะไม่ได้รับสิทธิ์ใหม่โดยอัตโนมัติ ผู้ดูแลระบบหลักมีสิทธิ์ทั้งหมด และโพสต์ใน**นามผู้ดูแลระบบหลัก** ใช้สิทธิ์ที่กำหนดชื่อ เพื่อระบุผู้รับผิดชอบ รายชื่อการกล่าวถึงจะแสดงเฉพาะสิทธิ์การเข้าถึงปัจจุบันที่สามารถอ่านบัตรหลักได้ครบถ้วน

การอนุญาตสำหรับแชท A ไม่สามารถรับการ์ดหรือสไลซ์สำหรับ A+B ได้ แม้จะเดา ID ของมันหรือระบุ `target.chat_id` ที่ผิดพลาดก็ตาม ข้อมูลเมตาของเป้าหมายจะถูกกำหนดจากแฮชเหตุการณ์ที่ลงนามบนเซิร์ฟเวอร์ การรวบรวมข้อมูล จำนวนการสนทนา การ์ดที่เกี่ยวข้อง และการแจ้งเตือนแบบเรียลไทม์จะถูกกรองก่อนส่งคำตอบ การexport จำเป็นต้องใช้ทั้ง `export` และ `board.read`; ผู้ส่งออกที่มีอยู่แต่ไม่มีสิทธิ์เข้าถึงบอร์ดจะได้รับ คลังหลักฐานทั่วไปโดยไม่มีบันทึกของทีม SSE จะตรวจสอบสิทธิ์ปัจจุบันอีกครั้งก่อนแต่ละชุด

## สัญญาที่เก็บไว้

เช่นเดียวกับข้อมูลการสังเกต การหมายเหตุถูกเขียนแบบธุรกรรมลงในตาราง SQLite แบบ append-only ใน พื้นที่ทำงาน ไฟล์ `annotations.jsonl` เป็นไฟล์ส่งออกมาตรฐานที่ตรงกันจากสแนปช็อตการอ่านเดียวกันกับ `events.jsonl` ไม่มีที่เก็บหมายเหตุอื่นที่แข่งขันกัน และไม่มีเหตุการณ์ในบันทึก `board.activity`

แต่ละบรรทัดมีเนื้อหาดังต่อไปนี้:

```
{
  "seq": 1,
  "at": "2026-11-02T14:00:00.000+00:00",
  "access_id": "admin",
  "access_label": "Main administrator",
  "kind": "board.bookmark",
  "payload": {"id": "32 lowercase hex digits", "target": {"event_hash": "64 lowercase hex digits"}},
  "previous_hash": "64 zeroes for the first record",
  "hash": "SHA-256 described below",
  "signature": "base64 Ed25519 signature"
}
```

ตัวอย่างที่ตัดทอนข้างต้นแสดงโครงสร้างของ envelope; ข้อมูล payload ที่จริงรวมถึงค่าเริ่มต้นของโมเดล และฟิลด์เป้าหมายที่เซิร์ฟเวอร์กำหนด สคีมาคำขอ API อยู่ใน [`tgwitness/schemas`](https://github.com/phishdestroy/TgWitness/blob/main/tgwitness/schemas/board-bookmark.json) ซึ่งถูกสร้างขึ้นจากโมเดล Pydantic ใน runtime โดย `python tools/build_board_schemas.py` ฟิลด์คำขอเพิ่มเติมจะถูกปฏิเสธ ID จะ ถูกสร้างขึ้นด้านเซิร์ฟเวอร์เมื่อไม่ระบุ ผู้เรียกไม่สามารถระบุ ผู้สร้าง เวลา สแนปช็อต และลายเซ็นได้ ID การอนุญาตที่มีชื่อใช้รูปแบบ 16-hex ที่มีอยู่ของ Access; ID บัตรมีขนาด 32 hex.

JSON แบบมาตรฐานใช้ UTF-8, คีย์อ็อบเจ็กต์เรียงลำดับ, ไม่มีช่องว่างระหว่างโทเคน, Unicode ที่ไม่ถูกหลบหลีก, และไม่มี NaN/ค่าอนันต์. ค่าแฮชของคำอธิบายประกอบคือ SHA-256 ของอ็อบเจ็กต์มาตรฐานที่มีformat: "tgwitness-annotations-v1" และฟิลด์ซองทั้งเจ็ดตั้งแต่ `format: "tgwitness-annotations-v1"` ถึง`previous_hash` แท็กฟอร์แมตนี้แยกโดเมนแฮชออกจากข้อมูลการสังเกตการณ์ ลายเซ็นเป็น Ed25519 บน 32 ไบต์แฮชดิบ ลำดับเริ่มต้นที่ 1 การแก้ไขจะเก็บรักษา ID การ์ดและระบุชื่อ แฮชคำอธิบายประกอบก่อนหน้าในช่อง "`supersedes`"; ไม่สามารถเปลี่ยนขอบเขตการสนทนาได้ การย้าย สถานะ และการลบเป็น บันทึกแยกต่างหาก ตาราง SQLite ปฏิเสธคำสั่ง UPDATE และ DELETE

`case-board.json` ประกอบด้วย `{statement, signature}` คำแถลงมาตรฐานถูกลงนามโดย กุญแจพื้นที่ทำงาน (workspace key) และประกอบด้วย `format: "tgwitness-case-board-v1"`, `public_key`, `created_at`, `journal_head`, `meaning` และ `state` State เป็นการรีเพลย์แบบกำหนดค่าได้: `annotations_head` ซึ่งเป็น อาร์เรย์ของ `items` ที่เรียงลำดับ (collections, cards, comments รวมถึง tombstones) และ `status_history` รายการจะเก็บรักษาแฮชการหมายเหตุครั้งสุดท้าย ลำดับ ผู้สร้าง และเวลา รวมถึง ผู้สร้างเดิมและเวลาสร้างไว้ตลอดการแก้ไข การเล่นซ้ำจะตรวจสอบการแก้ไข รายการแม่ การอ้างอิงคอลเลกชัน และ ID การกระทำที่ซ้ำกัน ไฟล์ `manifest.json` และจุดตรวจสอบใหม่ ยังผูกกับ `annotations_head` ด้วย เก็บจุดตรวจสอบไว้อย่างอิสระเพื่อตรวจจับการตัดทอนหรือการเขียนทับ ด้วยกุญแจลงนามที่คัดลอกมา

### เวอร์ชันข้อความ

`range.start` เป็นค่าออฟเซ็ตจุดรหัส Unicode ที่เริ่มจากศูนย์, `length` เป็นจำนวนจุดรหัสที่เป็นค่าบวก, และ `quote` ต้องเท่ากับสตริงย่อยที่ตรงกันทุกประการของ `payload.text` หรือ `payload.caption` ที่เหตุการณ์เป้าหมาย ไม่มีการใช้ NFC/NFKC, การปรับรูปแบบตัวอักษร หรือการปรับรูปแบบกราฟีม การตัดส่วนสตริงใน Python และ `Array.from(text)` ใน JavaScript ใช้การกำหนดดัชนีแบบเดียวกัน การรวมเครื่องหมายและอีโมจิ ZWJ อาจ ใช้หลายจุดรหัส `range.version` คือแฮชของเหตุการณ์เป้าหมาย ไม่ใช่เวอร์ชันข้อความปัจจุบัน หรือออฟเซ็ตเอนทิตี UTF-16 ของ Telegram การแก้ไขในภายหลังจะไม่ย้ายตำแหน่งการเน้นโดยอัตโนมัติ

### แบ่งตามตัวตนและเวลา

`query` รับได้เพียง `chat_id` เดียวหรือ `chat_ids` ที่ไม่ว่างเปล่า, ช่วง `from`/`to` ที่รวมทั้งสองจุดเริ่มต้นและจุดสิ้นสุด (เป็นตัวเลือก), ขอบเขต message-ID ที่รวมทั้งสองจุดเริ่มต้นและจุดสิ้นสุด (สำหรับแชทเดียวเท่านั้น), `kinds: "all"` หรือชนิด wildcard แบบ exact/prefix, `actors` ที่ระบุชัดเจน, `search`, `hide_system` และ `include_unscoped`. กลุ่มชนิด Journal จะขยายเป็น เงื่อนไขที่ตรงกันทุกประการ การค้นหาใช้การค้นหา payload ของ journal ที่ปรับรูปแบบ NFC/case-folded โดยไม่เปลี่ยนแปลง ข้อความต้นฉบับที่มีลายเซ็น วันที่ต้องระบุเขตเวลาและปรับให้เป็น UTC วันที่กรอง **observed_at**. Telegram's `source_at` แสดงแยกต่างหาก การลบที่ไม่มี เวลาประทับของแหล่งที่มา จะไม่มีเวลาลบที่ถูกสร้างขึ้น บันทึกที่สังเกตเห็นนอกช่วงเวลา จะไม่ถูกนำเข้าสู่ช่วงเวลานั้น; ส่วนของ message-ID อาจรวมถึงการลบที่เกิดขึ้นภายหลังสำหรับ message-ID เหล่านั้น

`snapshot` กำหนดเวลาการสร้าง, ขอบเขตลำดับ/แฮชของ journal, จำนวนการจับคู่, ลำดับแรก/สุดท้าย และ `result_hash` ส่วนหลังคือ SHA-256 ของอาร์เรย์ JSON แบบมาตรฐาน UTF-8 ที่ประกอบด้วยแฮชของเหตุการณ์ที่ตรงกัน ซึ่งจัดเรียงตามลำดับอักษร รวมถึง `[]` สำหรับ slice ที่ว่างเปล่า นอกจากนี้ยังเก็บ จำนวนประเภทที่แม่นยำและภาพย่อของเวลาสังเกตการณ์แบบ 24 บิน สไลซ์เก็บการค้นหา ไม่ใช่บันทึกแหล่งข้อมูล ที่ซ้ำกัน เมื่อส่งออก `board/slices/<id>.json` จะแสดงรายการแฮชปัจจุบันและลำดับที่เพิ่ม/ลบออก ตัวตรวจสอบจะสร้างผลลัพธ์เดิมขึ้นใหม่ที่จุดเริ่มต้นการสร้าง จากนั้นจึงสร้างผลลัพธ์ปัจจุบัน บันทึกที่เพิ่มเข้ามาจะถูกรายงานเป็นข้อเท็จจริงการเปลี่ยนแปลง การลบเหตุการณ์เดิมจะทำลาย ห่วงโซ่หลักฐานที่ไม่สามารถเปลี่ยนแปลงได้; การลบนี้จะไม่ถูกรับยอมรับอย่างเงียบๆ เหมือนการลบปกติจาก slice

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

## API และการส่งออกข้อมูล

`GET /api/board` รับพารามิเตอร์ collection/chat/author/label/state/from/to/q/kind/comments, offset/limit และลำดับ newest/oldest. `GET /api/board/card/{id}` คืนค่าการ์ด, ตัวอย่างแหล่งที่มา, กระทู้, ประวัติสถานะ และการ์ดที่เกี่ยวข้อง. เส้นทางย่อยผู้เข้าร่วมคืนค่าตัวเลือกการกล่าวถึงที่ตรงตามเงื่อนไข. `POST /api/board/{bookmark|highlight|slice|collection|comment|status|move|remove}` เพิ่มบันทึกใหม่ `POST /api/board/slice-preview` คำนวณคำสั่งค้นหา บันทึก Slice ถูกแบ่งเป็นหน้าตาม `GET /api/board/slice/{id}/records`; การคำนวณใหม่จะใช้ snapshot การอ่านที่เสถียรในปัจจุบันเสมอ Live `/api/stream` ส่งการแจ้งเตือน `board` ที่ไม่มี payload แยกจากตัวชี้ตำแหน่งใน journal

`GET /api/board/export` ส่งคืนเอกสารที่ลงนามแล้ว การเข้าถึงที่จำกัดเฉพาะแชทจะได้รับเอกสาร**เปิดเผยข้อมูล**ที่ลงนามแล้ว และติดป้ายกำกับอย่างชัดเจน ไม่เคยมีคำอธิบายประกอบจากแชทอื่นหรือห่วงโซ่การสนทนาทั้งหมด ไฟล์ ZIP ของหลักฐานเต็มรูปแบบ มีไฟล์ `annotations.jsonl` ที่ลงนามแล้ว `case-board.json` และภาคผนวก JSON ของส่วนตัด การตั้งค่า รายงาน HTML/PDF/JSON สามารถเลือกไม่ใช้ Case Board, บุ๊กมาร์ก/สไลซ์โดยไม่มีการอภิปราย หรือการ์ดที่มีคำอธิบายประกอบ ส่วน นี้แยกความเห็นของทีมออกจากข้อสังเกตอย่างชัดเจน ตัวกรองข้อมูลรายงานยังจำกัด บันทึกที่อ่านได้ด้วย; ไฟล์แหล่งข้อมูลที่ลงนามครบถ้วนใน ZIP ของหลักฐานยังคงสมบูรณ์

`GET /api/board/slice/{id}/export` สร้างส่วนตัดของ JSON ที่ลงนามแล้วชื่อ `tgwitness-board-selection-v1`; `?format=csv` สร้างตารางที่ใช้งานสะดวกโดยไม่มีลายเซ็นแยกต่างหาก ให้รักษา JSON และ ZIP ไว้:

```
python -m tgwitness.verify evidence.zip --fingerprint TRUSTED_KEY_SHA256 --board
python -m tgwitness.verify board-slice.json --evidence evidence.zip --fingerprint TRUSTED_KEY_SHA256
python -m tgwitness.verify case-board.json --evidence evidence.zip --fingerprint TRUSTED_KEY_SHA256
```

การตรวจสอบการเลือกจะยืนยันความถูกต้องของคำชี้แจงที่ลงนาม บันทึกแหล่งที่มาที่ตรงกันทุกประการ และความครบถ้วน ของคำขอที่ขอบเขตที่ระบุไว้ ไฟล์ ZIP ของหลักฐานอาจมีวันที่ใหม่กว่า แต่ต้องประกอบด้วย คำนำหน้านั้น เป้าหมายที่หลุดลอยจะถูกรายงานอย่างชัดเจน ส่วนภาพสแนปช็อตของสไลซ์ต้นฉบับที่แตกต่างกัน การเปลี่ยนแปลง คำอธิบายประกอบ สถานะการเล่นซ้ำที่ไม่ตรงกัน หรือแหล่งที่มาที่เปลี่ยนแปลง จะไม่ผ่านการตรวจสอบ ไฟล์เก็บถาวรเก่าที่ไม่มีคำอธิบาย จะยังคงรักษาพฤติกรรมการตรวจสอบที่มีอยู่เดิม

การส่งต่อถูกตั้งค่าเริ่มต้นเป็น **“ไม่รวม**” การรวมข้อมูลอย่างชัดเจนจะแสดงบัตรโครงการผ่าน บันทึกที่ถูกลดขนาดแล้ว, ละเว้นเป้าหมายที่เข้าถึงไม่ได้/ถูกละเว้น, ไม่แสดงส่วนที่เน้นซึ่งข้อความต้นฉบับ ถูกลดขนาด, ทำความสะอาดข้อความทีมด้วยกฎการกล่าวถึง/ติดต่อเดียวกัน, และสามารถเลือกแทนที่ ป้ายชื่อผู้สอบสวนด้วย R01, R02… ในเมตาดาต้าและกรณีที่ทราบในหมายเหตุ ไม่เปิดเผยไฟล์ `annotations.jsonl`ต้นฉบับ ไฟล์ sidecar ที่ลงนามแล้ว `tgwitness-case-board-handover-v1` และรายงาน มีเนื้อหาที่ถูกย่อขนาดเท่ากัน จำนวน Slice อธิบายเฉพาะบันทึกที่เปิดเผยเท่านั้น โดยรายละเอียด ผู้ดำเนินการ snapshot/query ต้นฉบับถูกระงับไว้ ชื่อในข้อความอิสระที่ระบบลดขนาดไม่รู้จักยังคงต้อง ได้รับการตรวจสอบ เช่นเดียวกับการส่งต่อข้อมูลทั่วไป เวอร์ชันที่สร้างขึ้นนี้ไม่อ้างว่าสามารถรักษา ลายเซ็นของคำอธิบายต้นฉบับไว้ได้หลังการลบข้อมูลส่วนที่ไม่จำเป็น

## ข้อจำกัดในการใช้งาน

พารามิเตอร์รวมถึงขีดจำกัดแบบนุ่ม (soft limits) ที่ 10,000 บัตร และ 50,000 ความคิดเห็น หน้าสไลซ์ (slice page) ที่มีได้สูงสุด 5,000 บันทึก และการควบคุมการดูตัวอย่างสื่อ ขีดจำกัดแบบนุ่มจะแจ้งเตือนโดยไม่ลบประวัติ หน้าฟีดมี สูงสุด 200 บัตร ส่วนข้อความตัดตอน JSON แบบสแตนด์อโลนถูกจำกัดไว้ที่ 64 MiB; ให้จำกัดการค้นหาหรือใช้ ไฟล์ ZIP ที่ลงนามแล้วสำหรับข้อมูลที่มีขนาดใหญ่กว่า เครื่องมือตรวจสอบแบบสแตนด์อโลนจำกัดการเล่นซ้ำคำอธิบายประกอบไว้ที่ 256 MiB Case Board ไม่เปิดใช้งานหรือนำระบบแจ้งเตือนความคิดเห็นจากภายนอกมาใช้

กระบวนการรับมอบอัตโนมัติของฟีเจอร์นี้ใช้ข้อมูลสมมติและระบบส่งข้อมูล Telegram ที่จำลองขึ้นเพื่อ ตรวจสอบการเก็บรักษา การเข้าถึง การแสดงผล และการส่งออก ดู[ส่วน "ขอบเขตการตรวจสอบ"](https://phishdestroy.github.io/TgWitness/th/docs/reference/evidence/#verification-scope) เพื่อทราบขอบเขตของการตรวจสอบหลักฐาน
