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

ทำงานกับคดี#
เปิด Investigation → Case Board ในโหมด Standard หรือ Expert ภาษาจะตามแผงควบคุม ใช้ปุ่ม To board ข้างบันทึกในสมุดบันทึกหรือข้อความแชทที่บันทึกไว้ หรือเลือกการ์ดนั้นแล้วกด B บุ๊กมาร์กจะถูกเพิ่มไปยัง Inbox ด้วยการคลิกเพียงครั้งเดียว แก้ไขชื่อ ป้ายกำกับ และหมายเหตุ หรือย้ายไปยัง คอลเลกชัน การ์ดที่แก้ไขแล้วจะเพิ่มเวอร์ชันที่มีลายเซ็น; การลบการ์ดจะรักษาประวัติไว้
สำหรับกรณีแรก ให้เลือกการเก็บรวบรวมข้อมูลและเพิ่มบันทึกที่ตอบคำถามหนึ่งข้อ ใช้ส่วนความคิดเห็น เพื่อตรวจสอบการตีความ จากนั้นใช้ส่วน Presentation เพื่อดูผ่านบัตรและบริบทของแหล่งข้อมูล เลือกเนื้อหา Case Board แยกต่างหากใน Report Studio เมื่อเตรียม เอกสารส่งมอบ การบันทึกส่วนหนึ่งจะไม่ตั้งค่าตัวกรองข้อมูลของรายงานโดยอัตโนมัติ
เลือกข้อความภายในข้อความแชทที่บันทึกไว้เพื่อแสดงเมนู 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 ซึ่งถูกสร้างขึ้นจากโมเดล 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 ที่จำลองขึ้นเพื่อ ตรวจสอบการเก็บรักษา การเข้าถึง การแสดงผล และการส่งออก ดูส่วน "ขอบเขตการตรวจสอบ" เพื่อทราบขอบเขตของการตรวจสอบหลักฐาน