# Telegram · কেস বোর্ড রেফারেন্স

Canonical page: https://phishdestroy.github.io/TgWitness/bn/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/bn/llms.txt)

বুকমার্ক, সঠিক হাইলাইট, অ্যাকশন স্লাইস, আলোচনা, স্কোপড অ্যাক্সেস এবং Case Board-এ ব্যবহৃত স্বাক্ষরিত অ্যানোটেশন ইতিহাস।

[টিজিউইটনেস](https://github.com/phishdestroy/TgWitness/blob/main/README.md) / [ডকুমেন্টেশন](https://github.com/phishdestroy/TgWitness/blob/main/docs/README.md) · [তদন্ত](https://phishdestroy.github.io/TgWitness/bn/docs/reference/investigation/)

![তদন্ত](https://phishdestroy.github.io/TgWitness/assets/chapter-investigate.svg)

Case Board তদন্তকারী দলকে সংরক্ষিত উপাদানের একটি যৌথ কর্মদৃশ্য প্রদান করে। একটি পর্যবেক্ষণ বুকমার্ক করুন, সঠিক অংশ হাইলাইট করুন, বিভিন্ন কর্মের একটি পরিসর সংরক্ষণ করুন, এবং সহকর্মীদের সাথে আলোচনা করুন। কার্ডগুলো তাদের উৎস রেফারেন্স এবং স্বাক্ষরিত সংশোধন ইতিহাস ধরে রাখে। দলের মন্তব্যগুলো কর্মস্থলে থাকে, মূল টেলিগ্রাম পর্যবেক্ষণ থেকে পৃথকভাবে শনাক্তযোগ্য।

[প্রমাণ মডেল](https://phishdestroy.github.io/TgWitness/bn/docs/reference/evidence/) · [অ্যাক্সেস](https://phishdestroy.github.io/TgWitness/bn/docs/reference/access/) · [প্রতিবেদনসমূহ](https://phishdestroy.github.io/TgWitness/bn/docs/reference/case-reports/)

![কৃত্রিম তদন্ত ফিড](https://phishdestroy.github.io/TgWitness/assets/case-board.png)

**এই পৃষ্ঠায়**

- [একটি মামলার সাথে কাজ করুন](https://phishdestroy.github.io/TgWitness/bn/docs/reference/case-board/#work-with-a-case)
- [অনুমতিসমূহ](https://phishdestroy.github.io/TgWitness/bn/docs/reference/case-board/#permissions)
- [সংরক্ষিত চুক্তি](https://phishdestroy.github.io/TgWitness/bn/docs/reference/case-board/#stored-contracts)
- [API এবং এক্সপোর্ট](https://phishdestroy.github.io/TgWitness/bn/docs/reference/case-board/#api-and-exports)
- [অপারেশনাল সীমা](https://phishdestroy.github.io/TgWitness/bn/docs/reference/case-board/#operating-limits)

## একটি মামলার সাথে কাজ করুন

**ইনভেস্টিগেশন → কেস বোর্ড** স্ট্যান্ডার্ড বা এক্সপার্ট মোডে খুলুন। ভাষা প্যানেলের অনুসরণ করে। জার্নাল রেকর্ড বা সংরক্ষিত চ্যাট মেসেজের পাশে **To বোর্ড** ব্যবহার করুন, অথবা এতে ফোকাস করে **B** চাপুন। বুকমার্কটি এক ক্লিকে ইনবক্সে যোগ হয়। এর শিরোনাম, লেবেল এবং নোট সম্পাদনা করুন, অথবা এটিকে একটি সংগ্রহে সরান। একটি পরিবর্তিত কার্ড স্বাক্ষরিত সংস্করণ সংযুক্ত করে; এটি মুছে ফেললে ইতিহাস সংরক্ষিত থাকে।

প্রথম কেসের জন্য, একটি সংগ্রহ নির্বাচন করুন এবং একটি প্রশ্নের উত্তর দেয় এমন রেকর্ডগুলো যোগ করুন। ব্যাখ্যা পর্যালোচনা করতে মন্তব্য ব্যবহার করুন, তারপর কার্ডগুলো এবং উৎস প্রসঙ্গ দেখতে **প্রেজেন্টেশন** ব্যবহার করুন। ডেলিভারবল প্রস্তুত করার সময় [রিপোর্ট](https://phishdestroy.github.io/TgWitness/bn/docs/reference/case-reports/)স্টুডিওতে আলাদাভাবে কেস বোর্ডের উপাদান নির্বাচন করুন। একটি স্লাইস সংরক্ষণ করলে স্বয়ংক্রিয়ভাবে রিপোর্টের ডেটা ফিল্টার কনফিগার হয় না।

সংরক্ষিত চ্যাট বার্তার ভিতরে টেক্সট নির্বাচন করুন **হাইলাইট → বোর্ড** দেখানোর জন্য। এর রঙ নির্বাচন করুন এবং একটি নোট যোগ করুন। সার্ভার সঠিক উদ্ধৃতি এবং সংরক্ষিত সংস্করণ যাচাই করে, ইমোজি, RTL টেক্সট এবং কম্বাইনিং মার্কস সহ। ইন্টারফেস মাস্ক করা বা রূপান্তরিত টেক্সটের মাধ্যমে নির্বাচন ম্যাপ করে না।

একই চ্যাটের দুইটি রেকর্ডে Shift-ক্লিক করে **Slice between** করুন, অথবা **Slice by time** ব্যবহার করুন, অথবা জার্নালের বর্তমান চ্যাট, সময়কাল এবং ইভেন্ট-ধরনের ফিল্টার সংরক্ষণ করুন। একটি সংরক্ষিত স্লাইসের নিজস্ব অথরিটিভ প্রেডिकेट রয়েছে: এটি জার্নালে খুললে একাধিক চ্যাট, বার্তা-সংখ্যার সীমা এবং অ্যাক্টর ফিল্টারও প্রয়োগ করে। **বুকমার্ক যোগ করার পর থেকে যোগ করা রেকর্ড দেখানো** পরবর্তী সংযোজনগুলিকে আলাদা করে। জার্নাল ফিল্টার পরিবর্তন করলে স্লাইস থেকে বেরিয়ে আসে। People থেকে, **'এই ব্যক্তির কর্মকাণ্ড স্লাইস করুন'** রেকর্ডকৃত অ্যাক্টর আইডি ব্যবহার করে; এটি ধরে নেয় না যে বার্তার লেখক কোনো বার্তা সম্পাদনা, মুছে ফেলা বা তাতে প্রতিক্রিয়া দেখিয়েছেন।

স্লাইস ডায়ালগ তৈরি করার আগে গণনাগুলো পূর্বরূপ দেখায়। `all`-এ প্রতিটি রেকর্ডকৃত ধরণ অন্তর্ভুক্ত, যার মধ্যে রয়েছে স্ন্যাপশট, সম্পাদনা, মুছে ফেলা, প্রতিক্রিয়া, সদস্যতা/সেবা আপডেট, নিজস্ব ক্রিয়া, বোতাম, মিডিয়া ফলাফল, পুনরুদ্ধারকৃত বার্তা এবং ভবিষ্যতের ইভেন্ট ধরণ। নির্বাচন সংরক্ষিত পর্যবেক্ষণগুলো বর্ণনা করে। অজানা-চ্যাট মুছে ফেলার বিজ্ঞপ্তিগুলো একটি পৃথক প্রসঙ্গ, যা শুধুমাত্র পুরো ওয়ার্কস্পেস অ্যাক্সেসের জন্য উপলব্ধ, এবং নির্বাচিত কোনো চ্যাটের সাথে কখনোই যুক্ত হয় না।

সংগ্রহগুলির একটি ঘোষিত চ্যাট স্কোপ রয়েছে। ফাঁকা স্কোপ মানে পুরো কর্মক্ষেত্র। একটি সংগ্রহ তার স্কোপের বাইরে কার্ড রাখতে পারে না; চ্যাট-সীমিত অংশগ্রহণকারী বিস্তৃত সংগ্রহ পড়তে পারে না। ইনবক্স হল অনির্ধারিত কার্ডগুলির জন্য একটি ভার্চুয়াল সংগ্রহ। সার্চ এবং ফিল্টার শুধুমাত্র দৃশ্যমান কার্ডগুলোকে কভার করে; থ্রেড এবং মেনশন প্যারেন্ট কার্ডের অ্যাক্সেস উত্তরাধিকারসূত্রে পায়। মুছে ফেলা মন্তব্যগুলোর আলোচনায় একটি টোম্বস্টোন থাকে। কোনো ভিউয়ার হিস্ট্রি রেকর্ড করা হয় না।

**প্রদর্শনী** নির্বাচিত সংগ্রহের সমস্ত কার্ড খুলে, কার্ড, উৎস প্রসঙ্গ এবং দলের মন্তব্যের ভিউ এবং কীবোর্ডের Previous/Next কন্ট্রোলসহ। এতে কোনো সম্পাদনা কন্ট্রোল নেই। সাধারণ ফিড পৃষ্ঠীকৃত; প্রদর্শনী তালিকাটি পৃষ্ঠা হিসেবে লোড করে এবং একবারে একটি কার্ডের বিস্তারিত তথ্য পুনরুদ্ধার করে।

## অনুমতিসমূহ

সব অপারেশনের জন্য `view`, workspace/chat স্কোপ এবং `board.read` প্রয়োজন। `board.write` কার্ড, মন্তব্য, সরানো এবং খোলা/পর্যালোচনা অবস্থা যোগ করে। `board.manage` সংগ্রহ ব্যবস্থাপনা, নিশ্চিত/বাতিল অবস্থা, অন্য কারো কার্ডের সংশোধন/মুছে ফেলার অনুমতি দেয়। একটি অবস্থা একটি দলগত সিদ্ধান্ত, ক্রিপ্টোগ্রাফিক যাচাইয়ের ফলাফল নয়।

অ্যাক্সেস ফর্ম প্রিসெட்স: পর্যালোচক = পড়া; বিশ্লেষক = পড়া/লেখা; অপারেটর = পড়া/লেখা/পরিচালনা, তাদের বিদ্যমান অনুমতিগুলির পাশাপাশি। বিদ্যমান গ্রান্টগুলো নীরবে নতুন অধিকার অর্জন করে না। প্রধান প্রশাসকের সমস্ত অধিকার রয়েছে, এবং তিনি **Main administrator** হিসেবে পোস্ট করেন। উল্লেখের জন্য নামকৃত গ্রান্ট ব্যবহার করুন। উল্লেখ তালিকায় শুধুমাত্র বর্তমান অ্যাক্সেসগুলি দেখায় যারা সম্পূর্ণ প্যারেন্ট কার্ড পড়তে সক্ষম।

চ্যাট A-এর জন্য একটি গ্রান্ট A+B-এর জন্য কোনো কার্ড বা স্লাইস পেতে পারে না, এমনকি এর আইডি অনুমান করে বা একটি ভুল `target.chat_id` সরবরাহ করেও। টার্গেট মেটাডেটা সার্ভারে স্বাক্ষরিত ইভেন্ট হ্যাশ থেকে সমাধান করা হয়। কালেকশন, আলোচনা গণনা, সম্পর্কিত কার্ড এবং লাইভ নোটিফিকেশনগুলি প্রতিক্রিয়ার আগে ফিল্টার করা হয়। এক্সপোর্টগুলির জন্য `export` এবং `board.read` উভয়ই প্রয়োজন; বোর্ড অ্যাক্সেস ছাড়া বিদ্যমান একটি এক্সপোর্টার দলগত নোট ছাড়া সাধারণ প্রমাণ সংরক্ষণাগার পায়। SSE প্রতিটি ব্যাচের আগে বর্তমান গ্রান্টগুলি পুনরায় যাচাই করে।

## সংরক্ষিত চুক্তি

পর্যবেক্ষণের মতো, নোটেশনগুলো লেনদেনভিত্তিকভাবে ওয়ার্কস্পেসের একটি শুধুমাত্র সংযোজনযোগ্য SQLite টেবিলে লেখা হয়। `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"
}
```

উপরের সংক্ষিপ্ত উদাহরণটি এনভেলপটি দেখায়; প্রকৃত পেলোডগুলিতে তাদের মডেলের ডিফল্ট এবং সার্ভার-সমাধানকৃত টার্গেট ফিল্ডগুলি অন্তর্ভুক্ত থাকে। API অনুরোধ স্কিমাগুলি [`tgwitness/schemas`](https://github.com/phishdestroy/TgWitness/blob/main/tgwitness/schemas/board-bookmark.json)-এ রয়েছে, যা রানটাইম Pydantic মডেলগুলি থেকে `python tools/build_board_schemas.py` দ্বারা তৈরি করা হয়। অতিরিক্ত অনুরোধ ফিল্ডগুলি প্রত্যাখ্যাত হয়। আইডিগুলি বাদ দিলে সার্ভার-সাইডে তৈরি করা হয়। লেখকত্ব, সময়, স্ন্যাপশট এবং স্বাক্ষর কলকারী দ্বারা সরবরাহ করা যায় না। নামকৃত গ্রান্ট আইডিগুলি অ্যাক্সেসের বিদ্যমান ১৬-হেক্স ফরম্যাট অনুসরণ করে; কার্ড আইডিগুলি ৩২-হেক্স।

ক্যানোনিক্যাল JSON হল UTF-8, সাজানো অবজেক্ট কী, টোকেনের মধ্যে কোনো ফাঁকা স্থান নেই, আনএস্কেপড ইউনিকোড, এবং কোনো NaN/অসীমতা নেই। অ্যানোটেশন হ্যাশ হল ক্যানোনিক্যাল অবজেক্টের SHA-256, যাতে `format: "tgwitness-annotations-v1"` এবং `previous_hash` পর্যন্ত সমস্ত সাতটি এনভেলপ ফিল্ড অন্তর্ভুক্ত রয়েছে। এই ফরম্যাট ট্যাগ এর হ্যাশ ডোমেইনকে পর্যবেক্ষণ থেকে আলাদা করে। স্বাক্ষরটি ৩২টি কাঁচা হ্যাশ বাইট-এর উপর Ed25519। ক্রম ১ থেকে শুরু হয়। সংশোধনগুলো কার্ড আইডি ধরে রাখে এবং পূর্ববর্তী অ্যানোটেশন হ্যাশকে `supersedes` হিসেবে নামকরণ করে; এগুলো চ্যাট স্কোপ পরিবর্তন করতে পারে না। স্থানান্তর, অবস্থা এবং অপসারণ পৃথক রেকর্ড। SQLite টেবিল UPDATE এবং DELETE প্রত্যাখ্যান করে।

`case-board.json`-এ `{statement, signature}` রয়েছে। ক্যানোনিক্যাল বিবৃতিটি ওয়ার্কস্পেস কী দ্বারা স্বাক্ষরিত এবং এতে রয়েছে `format: "tgwitness-case-board-v1"`, `public_key`, `created_at`, `journal_head`, `meaning`, এবং `state`। স্টেট হল নির্ধারিত পুনঃপ্রচার: `annotations_head`, একটি ক্রমবদ্ধ `items` অ্যারে (সংগ্রহ, কার্ড, মন্তব্যসহ টোম্বস্টোন), এবং `status_history`। আইটেমগুলো তাদের সর্বশেষ অ্যানোটেশন হ্যাশ, ক্রম, লেখক এবং সময় ধরে রাখে, পাশাপাশি সংশোধন জুড়ে মূল সৃষ্টিকারী এবং সৃষ্টির সময়ও। রিপ্লে সংশোধন, পেরেন্ট, সংগ্রহ রেফারেন্স এবং ডুপ্লিকেট অ্যাকশন আইডিগুলো যাচাই করে। `manifest.json` এবং নতুন চেকপয়েন্টগুলোও `annotations_head`-কে বাইন্ড করে। একটি চেকপয়েন্ট স্বতন্ত্রভাবে সংরক্ষণ করুন যাতে অনুলিপি করা স্বাক্ষর কী ব্যবহার করে সংক্ষিপ্তকরণ বা পুনঃলিখন সনাক্ত করা যায়।

### টেক্সট সংস্করণসমূহ

`range.start` একটি শূন্য-ভিত্তিক ইউনিকোড কোড-পয়েন্ট অফসেট, `length` একটি ধনাত্মক কোড-পয়েন্ট গণনা, এবং `quote` অবশ্যই টার্গেট ইভেন্টে `payload.text` বা `payload.caption` এর সঠিক সাবস্ট্রিং-এর সমান হতে হবে। কোনো NFC/NFKC, কেস ফোল্ডিং বা গ্রাফেম নরম্যালাইজেশন প্রয়োগ করা হয় না। Python স্ট্রিং স্লাইস এবং JavaScript-এর `Array.from(text)` একই ইনডেক্সিং বাস্তবায়ন করে। মার্কস এবং ZWJ ইমোজি একত্রিত করলে একাধিক কোড পয়েন্ট দখল করতে পারে। `range.version` হল টার্গেট ইভেন্টের হ্যাশ, বর্তমান মেসেজ সংস্করণ বা টেলিগ্রামের UTF-16 এন্টিটি অফসেট নয়। পরবর্তী সম্পাদনাগুলি কখনই স্বয়ংক্রিয়ভাবে হাইলাইট পুনর্বিন্যস্ত করে না।

### পরিচয় এবং সময় স্লাইস করুন

`query` ঠিক একটি `chat_id` অথবা শূন্য নয় এমন `chat_ids` গ্রহণ করে, ঐচ্ছিক অন্তর্ভুক্ত `from`/`to`, অন্তর্ভুক্ত মেসেজ-আইডি সীমা (শুধুমাত্র একটি চ্যাট), `kinds: "all"` বা সঠিক/প্রিফিক্স ওয়াইল্ডকার্ড ধরনের, স্পষ্ট `actors`, `search`, `hide_system`, এবং `include_unscoped`। Journal ধরনের গ্রুপগুলো তাদের সঠিক প্রেডिकेटে প্রসারিত হয়। সার্চ স্বাক্ষরিত উৎস টেক্সট পরিবর্তন না করে জার্নালের NFC/case-folded পেইলোড সার্চ ব্যবহার করে। তারিখের জন্য একটি টাইমজোন প্রয়োজন এবং সেগুলো UTC-তে স্বাভাবিকীকৃত হয়। তারিখগুলো **observed_at** ফিল্টার করে। টেলিগ্রামের `source_at` আলাদাভাবে প্রদর্শিত হয়। সোর্স টাইমস্ট্যাম্প ছাড়া কোনো মুছে ফেলা কোনো কাল্পনিক মুছে ফেলার সময় পায় না। সময়ের ব্যবধানের বাইরে দেখা একটি দেরিতে রেকর্ড এতে অন্তর্ভুক্ত হয় না; একটি মেসেজ-আইডি স্লাইসে সেই মেসেজ আইডিগুলির জন্য পরবর্তী মুছে ফেলা অন্তর্ভুক্ত থাকতে পারে।

`snapshot` তৈরি করার সময়, জার্নাল সিকোয়েন্স/হ্যাশ সীমানা, মিলের সংখ্যা, প্রথম/শেষ সিকোয়েন্স এবং `result_hash` স্থির করে। পরেরটি হল মিলিত ইভেন্ট হ্যাশগুলির UTF-8 ক্যানোনিক্যাল JSON অ্যারের SHA-256 হ্যাশ, যা অভিধানগতভাবে সাজানো, এবং ফাঁকা স্লাইসের জন্য `[]` অন্তর্ভুক্ত করে। এতে সঠিক ধরনের গণনা এবং পর্যবেক্ষণ-সময়ের ২৪-বিন ক্ষুদ্র চিত্রও থাকে। একটি স্লাইস একটি কুয়েরি সংরক্ষণ করে, ডুপ্লিকেট উৎস রেকর্ড নয়। রপ্তানি করার সময়, `board/slices/<id>.json` বর্তমান হ্যাশ এবং যোগ/সরানো সিকোয়েন্স তালিকাভুক্ত করে। যাচাইকারী সৃষ্টি সীমানায় মূল ফলাফল পুনর্গঠন করে, তারপর বর্তমান ফলাফল। যোগ করা রেকর্ডগুলি একটি পরিবর্তন তথ্য হিসেবে রিপোর্ট করা হয়। একটি মূল ইভেন্ট মুছে ফেলা অপরিবর্তনীয় প্রমাণের শৃঙ্খল ভেঙে দেয়; এটি স্লাইস থেকে সাধারণ অপসারণের মতো নীরবে গ্রহণ করা হয় না।

প্রতিক্রিয়া স্ন্যাপশটগুলিতে সাম্প্রতিক-অভিনেতার তালিকা অসম্পূর্ণ থাকে। এক্সপ্লোরার একই চ্যাট/বার্তার পার্শ্ববর্তী স্ন্যাপশটগুলি তুলনা করে, স্লাইসের বাইরে থাকা পূর্ববর্তী স্ন্যাপশটটিও অন্তর্ভুক্ত করে, এবং **পর্যবেক্ষণগুলির মধ্যে** মোট গণনার পরিবর্তনগুলি রিপোর্ট করে। অনুপস্থিত সাম্প্রতিক অভিনেতাদের নিয়ে কোনো প্রতিক্রিয়া মুছে ফেলা হয়েছে বলে দাবি করা হয় না। প্রথম স্ন্যাপশটের কোনো অনুমানিত পূর্ববর্তী অবস্থা নেই। অ্যাক্টর পর্যবেক্ষণগুলো সেই স্ন্যাপশটেরই অন্তর্গত, যেখানে সেগুলো সরবরাহ করা হয়েছিল, কোনো কাল্পনিক ক্রিয়া-সময়ের নয়।

## API এবং রপ্তানি

`GET /api/board` কালেকশন/চ্যাট/লেখক/লেবেল/অবস্থা/থেকে/থেকে/q/ধরন/মন্তব্য, অফসেট/সীমা এবং নতুনতম/পুরনোতম ক্রম গ্রহণ করে। `GET /api/board/card/{id}` একটি কার্ড, উৎস পূর্বরূপ, থ্রেড, স্থিতি ইতিহাস এবং সম্পর্কিত কার্ড ফেরত দেয়। অংশগ্রহণকারী সাবরুট যোগ্য উল্লেখ বিকল্পগুলি ফেরত দেয়। `POST /api/board/{bookmark|highlight|slice|collection|comment|status|move|remove}` একটি রেকর্ড সংযুক্ত করে। `POST /api/board/slice-preview` একটি কোয়েরি গণনা করে। স্লাইস রেকর্ডগুলো `GET /api/board/slice/{id}/records`-এ পেজ করা হয়; পুনর্গণনা সবসময় বর্তমান স্থিতিশীল রিড স্ন্যাপশট ব্যবহার করে। লাইভ `/api/stream` জার্নাল কার্সর থেকে আলাদাভাবে পেলোড-মুক্ত `board` বিজ্ঞপ্তি প্রেরণ করে।

`GET /api/board/export` একটি স্বাক্ষরিত নথি ফেরত দেয়। চ্যাট-সীমিত অ্যাক্সেস একটি স্পষ্টভাবে লেবেলযুক্ত স্বাক্ষরিত **প্রকাশনা** পায়, অন্য কোনো চ্যাটের মন্তব্য বা সম্পূর্ণ চেইন পায় না। সম্পূর্ণ প্রমাণের ZIP-এ `annotations.jsonl`, স্বাক্ষরিত `case-board.json` এবং স্লাইস JSON পরিশিষ্ট থাকে। HTML/PDF/JSON রিপোর্ট সেটিংসে কোনো বোর্ড না বেছে নেওয়া, আলোচনা ছাড়া বুকমার্ক/স্লাইস, অথবা মন্তব্যসহ কার্ড নির্বাচন করা যায়। এই বিভাগটি স্পষ্টভাবে দলের মতামতকে পর্যবেক্ষণ থেকে পৃথক করে। রিপোর্ট ডেটা ফিল্টারগুলি পাঠযোগ্য নোটগুলিকেও সীমাবদ্ধ করে; প্রমাণ ZIP-এ থাকা সম্পূর্ণ স্বাক্ষরিত উৎস ফাইলগুলো অক্ষত থাকে।

`GET /api/board/slice/{id}/export` স্বাক্ষরিত `tgwitness-board-selection-v1` JSON উদ্ধৃতি তৈরি করে; `?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` প্রকাশ করা হয় না। স্বাক্ষরিত `tgwitness-case-board-handover-v1` সাইডকার এবং রিপোর্টে একই সংক্ষিপ্তকৃত উপাদান রয়েছে। স্লাইস গণনা শুধুমাত্র প্রকাশিত রেকর্ডগুলিকে বর্ণনা করে, মূল স্ন্যাপশট/ক্যুয়েরি অ্যাক্টর বিশদ লুকানো থাকে। মিনিমাইজারের কাছে অজানা ফ্রি-টেক্সট নামগুলোও পর্যালোচনার প্রয়োজন, যেমনটি সাধারণ হস্তান্তরে হয়। এই ডেরিভেটিভ রেড্যাকশনের পর মূল অ্যানোটেশন স্বাক্ষর সংরক্ষণ করার দাবি করে না।

## পরিচালনার সীমা

প্যারামিটারগুলির মধ্যে রয়েছে নরম সীমা: ১০,০০০ কার্ড এবং ৫০,০০০ মন্তব্য, সর্বোচ্চ ৫,০০০ রেকর্ডের একটি স্লাইস পৃষ্ঠা, এবং মিডিয়া-প্রিভিউ নিয়ন্ত্রণ। নরম সীমা ইতিহাস মুছে ফেলার ছাড়াই সতর্কতা দেখায়। ফিড পেজগুলোতে সর্বোচ্চ ২০০টি কার্ড থাকে। স্বতন্ত্র JSON স্লাইস উদ্ধৃতি ৬৪ MiB-এ সীমাবদ্ধ; বড় সামগ্রীর জন্য অনুসন্ধান সংকীর্ণ করুন অথবা স্বাক্ষরিত ZIP ব্যবহার করুন। স্বতন্ত্র যাচাইকারী মন্তব্য পুনঃপ্লে ২৫৬ MiB-এ সীমাবদ্ধ করে। Case Board কোনো বাহ্যিক মন্তব্য বিজ্ঞপ্তি সক্ষম বা বাস্তবায়ন করে না।

এই ফিচারের স্বয়ংক্রিয় গ্রহণ কাল্পনিক ডেটা এবং একটি সিমুলেটেড টেলিগ্রাম ট্রান্সপোর্ট ব্যবহার করে স্টোরেজ, অ্যাক্সেস, রেন্ডারিং এবং এক্সপোর্ট পরীক্ষা করে। প্রমাণ পরীক্ষার পরিধির জন্য [যাচাইকরণ পরিধি](https://phishdestroy.github.io/TgWitness/bn/docs/reference/evidence/#verification-scope) দেখুন।
