# 已測試的內容

Canonical page: https://phishdestroy.github.io/TgWitness/zh-Hant/docs/reference/verification/

Telegram 即時測試、自動化檢查、瀏覽器檢查，以及尚未經核實的內容。

## Telegram 即時測試，完整帳戶 · 2026年10月29日

在進行以下測試後，該帳號仍持續運作。10月29日 UTC 12:10，其監控範圍 已切換至整個帳號（頻道、群組、私人聊天室及機器人）；控制面板要求 確認，並由簽名日誌記錄此操作。截至 UTC 17:59，日誌內容如下：

| 記錄時間：10月27日 21:36 至 10月29日 17:59（UTC） | 計數 |
| --- | --- |
| 日誌記錄 | 9,968 |
| 新訊息 | 5,308 |
| 在切換至完整帳戶後，其中一部分 | 3,878 |
| 刪除記錄 | 784 |
| 其中部分訊息在 TgWitness 儲存該訊息後被刪除 | 596 |
| 編輯 | 41 |
| 經重新核對後新增的訊息 | 2,273 |
| 經重新檢查後已無法找到的訊息 | 18 |
| 透過歷史快照儲存的訊息 | 242 |
| 已儲存的附件 | 247 |
| 收集器啟動 | 19 |
| Telegram FloodWait 暫停 | 26 |

- 該小組的「**Verify」**核查已確認所有 9,968 筆記錄的簽名與雜湊鏈。
- 訊息來自 2 個群組或頻道，以及 3 個私人聊天室和機器人。其中有一次是在「**聊天室**」中 按下訊息按鈕；該請求及 Telegram 的回應均記錄於日誌中。
- 當收集器在重新啟動時重新掃描該帳戶時，新增了聊天室。由於 「儲存新聊天室的早期訊息」功能已關閉（`history = 0`），因此此處不予說明。

未涵蓋內容：反應、成員變動、個人檔案、發送訊息、透過 邀請加入、代理伺服器、通知、witness 機器人以及同時管理多個帳戶。公開檔案 僅包含計數資料。

## 透過 libarchive 開啟受密碼保護的匯出檔案 · 2026年10月29日

由匯出加密程式碼所建立的壓縮檔（WinZip AES-256 格式，7-Zip 和 WinRAR 可讀取），已透過 Windows 版 `tar`（bsdtar 3.6.2、libarchive）開啟。 輸入正確密碼後， 解壓縮後的檔案與原始檔案的 SHA-256 值相符；輸入錯誤密碼則會顯示「密碼短語不正確 」而遭拒絕。7-Zip 和 WinRAR 本身並未被執行。

## Telegram 即時測試 · 2026年10月27日至29日

一個真實的 Telegram 帳戶，透過內建的 API 配對池登入，記錄了某個 超級群組自 **10 月 27 日 21:36 UTC 至 10 月 29 日 05:15 UTC** 期間的訊息。在此期間， 資料收集器共啟動了 12 次。

| 已記錄 | 計數 |
| --- | --- |
| 日誌記錄，包含心跳訊號與服務記錄 | 2,385 |
| 新訊息 | 1,291 |
| 刪除記錄 | 472 |
| 其中部分訊息在 TgWitness 儲存文字後被刪除 | 347 |
| 編輯 | 12 |
| 暫停期間遺漏的訊息，已透過重新檢查補入 | 12 |
| 已儲存的附件 | 17 |
| 未下載附件（下載功能已關閉，或無檔案可下載） | 14 |
| Telegram FloodWait 在重新檢查時會暫停，每次暫停 3 秒 | 8 |

- 所有 2,385 筆記錄的簽名與雜湊鏈，皆可透過該日誌的 公鑰進行驗證。
- 重新啟動後，收集器將從儲存的更新狀態（`pts`）繼續運作，而 Telethon 會進行補齊；隨後的重新檢查則會新增仍缺失的訊息。
- 在每次 FloodWait 事件中，資料擷取器會等待指定時間後再繼續執行。
- 該帳號保持登入狀態，且同一會話於 10 月 29 日重新連線。

本次測試未涵蓋的項目：同時處理多個帳戶、管理員角色、代理伺服器、 持續數小時以上的服務中斷，以及完整的[即時驗收程序](https://github.com/phishdestroy/TgWitness/blob/main/docs/internal/LIVE_ACCEPTANCE.md)。 公開檔案僅包含上述統計數據：不包含任何帳戶或聊天室識別碼、訊息或 憑證資訊。

下方的較早記錄描述了各自的執行過程；其中大部分使用了合成測試客戶端。 最新的自動化結果如下。

## 內建公開 MTProxy 清單 · 2026 年 10 月 29 日

此為原始手動選取建置版本的歷史測試紀錄。關於當前的自動池與 IP 模式，請參閱[連線設定](https://phishdestroy.github.io/TgWitness/zh-Hant/docs/reference/connection/#ip-modes)。下方的計數數據及未支援功能均屬於該測試版本。

新增了來自 SoliSpirit/mtproto 及 zakky8/mtproto-proxy-pro 的捆綁式公開快照與明確的 HTTPS 刷新功能。 在此主機上，應用程式下載器已於 2026 年 10 月 29 日 UTC 12:58 成功擷取兩組資料源：經過 過濾、去重及每來源 64 筆條目的限制後，共計 **118 個唯一的相容端點**。 此操作僅驗證清單檢索功能， 並非驗證透過這些端點的連線能力或訊息傳遞。在此作業過程中， 並無真實帳戶連線至清單中的代理伺服器。[操作員與使用者指南](https://github.com/phishdestroy/TgWitness/blob/main/docs/ru/PROXIES.md)。

來源回應若失敗、為空或不相容，將保留先前條目及日期。 更新 不會變更所選的路徑。公開地址經驗證後，其解析出的 IP 位址會在選取時被固定 ；操作員／手動路徑仍保持獨立。連線探測功能現已 可在帳戶登入前的面板中使用。偽 TLS ee 及自動代理伺服器選擇 功能仍不支援。操作員目錄將完全覆寫訂閱設定。

- 完整測試套件：**366 項通過，3 項跳過**，耗時 287.94 秒。現有的依賴項警告 及平台跳過項目仍未解決。最終公開清單／本地化回歸測試：**36 項通過**， 包含對無效下載代理伺服器埠的拒絕；此部分與完整測試套件內容重疊。
- 已通過英語／俄語、淺色／深色模式（390／1440 像素）的瀏覽器相容性測試：內建 選項、開啟設定時無需外部載入、明確刷新機制、故障期間保留路徑與 快取、登入前探測、延遲回應的工作區隔離、來源 詳細資訊以及版面配置／對比度。 無 JavaScript 錯誤或外部瀏覽器請求。
- 所有 13 種語言版本的靜態翻譯覆蓋率均已通過最終審核；新內容已翻譯 為俄文，其餘部分則明確保留英文備用版本。更新後的內建指南 在兩種主題下均通過了版面配置與對比度檢查。
- 已通過初步檢查與發布檢查（259 個公開檔案、1,354 個本地連結）；已更新 已解析「撰寫」與 CI YAML 檔案。此處未執行 Docker 及遠端 CI。
- 此重新建構的輪子已通過獨立安裝、捆綁清單載入及簽名匯出 驗證。所有 69 項套件資源均與工作區相符；原始碼雜湊值亦已通過驗證。

收據：`test-results/public-proxy-research/download-receipt.json`、 `test-results/public-proxy-research/copy-receipt.json`、 `test-results/public-proxies-full-suite.log`、`test-results/public-proxies-final-focused.log`、 `test-results/public-proxies-browser/receipt.json` 及 `test-results/public-proxies-package.log`。 瀏覽器／帳戶／傳輸設定皆為模擬資料；上述兩項資料串流下載則為真實的 HTTPS 請求。

## 可選附加功能簡報 · 2026年10月29日

原先的 Proof 機器人入口現已改為**「Extras」**：先提供簡要概述，隨後是 針對所選選項的獨立設定頁面。Witness 表單分為三個步驟，其中 連線管理、網路選項及部署細節均以摺疊式呈現。GitHub 已 明確納入規劃，且無需填寫憑證表單。[俄文概述](https://github.com/phishdestroy/TgWitness/blob/main/docs/ru/EXTRAS.md)。

- 已通過 30 項針對在地化、Witness 設定及發佈檢查的針對性測試。
- Chromium 設定驗收測試已通過（英文／俄文、淺色／深色模式，解析度 390／1440 像素）： 鍵盤焦點與回車鍵功能正常，選取附加功能時無隱含連結，草稿 保留功能，固定設定／代幣下載功能，鎖定時清除代幣，以及 本地指南錨點運作正常。 版面配置與實色背景文字對比度檢查均通過。
- 工作區切換測試已通過，包含切換後延遲傳回的令牌回應 。透過快速瀏覽可發現透過機器人、證明及 GitHub 相關術語的額外功能； 其現有的 320/390/1440 像素解析度以及俄語／從右至左（RTL）語言檢測亦均通過。
- 在設定執行過程中，未觀察到任何 JavaScript 錯誤或外部瀏覽器請求。 這些是模擬的 UI 檢查，並非新的即時 Telegram 或機器人發布證據。
- 所有 13 種語言環境的最終語言載入與辭典涵蓋範圍均已通過測試，並保留 俄語以外的明確英文備用內容。擴充版的《Proof 指南》亦已通過 兩種主題下 320/768/1440 像素解析度的版面配置與對比度檢查。
- 重新建構的版本已通過獨立安裝及簽名匯出驗證。所有 67 個封裝資源均與工作區相符；原始檔案庫包含 253 個公開 檔案。1,346 個本地文件連結均通過來源/連結檢查。

收據編號：`test-results/setup-browser/receipt.json`、 `test-results/quick-navigation/receipt.json`、`test-results/extras-final.json`、 `test-results/extras-package.log` 及 `test-results/extras-artifacts.json`。 螢幕截圖素材採用合成工作區。

## Witness 機器人與代理伺服器設定審計 · 2026年10月29日

Witness 設定（現位於**「進階功能」→「頻道中的機器人」**）會準備一個獨立部署的 Witness：固定收集器 金鑰、範圍限定代幣下載、專屬頻道、發布政策、HTTP/SOCKS5 路由以及自訂 機器人 API。 該機器人憑證將保留在見證主機上。其新的 `--check-config` 可在 無需建立網路連線或生成金鑰的情況下，驗證配置與檔案。JSON 檔案路徑將根據配置進行解析。所有 Compose 見證變體現已轉發 HTTP 代理與機器人 API 設定。

帳戶設定支援由操作員管理的公開 MTProxy 目錄、自訂 Telegram 代理連結預覽，以及現有的手動欄位。目錄回應會省略機密資訊； 選取後，路徑將儲存於工作區金庫中。若目錄缺失或格式錯誤， 仍可使用手動路徑。 預設情況下，不會生成或啟用任何專案代理伺服器位址或託管見證服務。當外部見證者必須連線至其控制面板保持私密的收集器時，Caddy 範例僅會公開範圍限定的頭端點。

驗證：

- 完整測試套件：**348 項通過，3 項跳過**，耗時 195.81 秒。跳過項目係因 Windows 系統限制所致； 兩項現有的依賴項已廢止警告仍存在。
- 最終的 witness/configuration/release 回歸測試執行結果：**11 項通過，1 項跳過**。 此測試與完整測試套件有所重疊。測試項目包括路徑解析、離線預檢、 透過實際的迴路 HTTP Bot API 測試環境進行簽署／發佈、記錄的傳送 失敗、頻道代幣驗證以及代理密鑰排除。
- Chromium 設定驗收測試（390/1440 像素，英文／俄文介面）已通過：固定設定檔 及憑證下載、鎖定時清除憑證、目錄選取、自訂連結預覽 隨後進行明確儲存，版面配置／對比度均符合要求，且無 JavaScript 錯誤或外部 瀏覽器請求。 修正了俄文帳戶標題過窄及登入分頁內容溢出問題。
- 已通過 Ruff 檢查、來源／連結驗證，以及 Compose／工作流程 YAML 解析。
- 此重新建構的工具已通過獨立安裝、面板／靜態資源及 API 授權 檢查，並通過針對直接與串流式 32 項事件合成匯出資料的獨立驗證。

收據：`test-results/setup-full-suite.log`、`setup-final-focused.log`、 `setup-browser/receipt.json`、`setup-browser-final.log` 及 `setup-package.log`。 這些測試使用合成帳戶／代理伺服器以及本機 Bot API 測試環境。它們並不 聲稱代表真實的機器人發布、運作中的公開 MTProxy 伺服器、遠端 CI 執行或 Docker 部署。上述保留的真實 Telegram 監測歷史記錄仍屬獨立的 證據。[設定說明](https://github.com/phishdestroy/TgWitness/blob/main/docs/ru/WITNESS.md)。

## 簡報與文件審閱 · 2026年10月29日

產品頁面、登入畫面、英文／俄文版 README 文件以及簡報圖片現已採用 統一的視覺風格。公開的螢幕截圖使用虛構的示範資料。本次審查亦修正了 上方過時的即時驗證與資料恢復說明。

- 針對性在地化、網站及發佈測試：**33 項通過，1 項跳過**。該跳過的 測試需要建立符號連結，但此主機不支援此功能。
- 已通過 Chromium 面板的整體驗收測試，包含所有語言目錄、從右至左（RTL）版面配置、 淺色／深色主題、文字對比度及工作區切換功能。建立設定檔的 檢查流程現已改為先等待實際的 HTTP 回應，再檢查所選的工作區。
- 英文／俄文版面的存取畫面在兩種主題下，於 320、390、768、850 及 1440 像素的解析度下均通過版面配置與對比度檢查；提交按鈕始終位於初始視口內。
- 公開網站的相容性測試已通過 320、390、768、1024 及 1440 像素的解析度，包含訊息 歷史記錄控制項、截圖放大／Esc 鍵／焦點回歸、鍵盤 Tab 鍵、剪貼簿 拒絕、專案子路徑、減動效果以及無 JavaScript 備用方案。未觀察到任何 資源請求失敗、外部請求失敗或 JavaScript 錯誤。
- 重新建構的系統已通過隔離安裝測試：控制面板資源與地區設定 已載入，API 存取需經認證，且直接／串流匯出功能均能獨立 驗證所有 32 項模擬事件。Ruff 及公開來源／連結檢查均通過。

本地收據：`test-results/design-tests.log`、`design-panel-final.log`、 `design-review-final.log`、`design-site.log` 及 `design-package/install-receipt.json`。 本次簡報／文件更新並未重新執行完整的後端套件； 其先前結果仍保留於發佈前審計報告中。

## 版本 0.6.1

0.6.1 版本更新了面板介面、啟動程式、封裝方式及文件說明； 訊息收集、儲存、簽名與匯出相關程式碼維持不變。在 Windows 11 / Python 3.12.10 環境下，搭配固定運行的執行環境：

- 整套軟體通過了 **137 項測試**，其中有 2**項跳過**，並出現現有的 Starlette 警告。 新增的測試涵蓋啟動程式對 Ctrl+C 的處理（伺服器有 30 秒時間進行 有序關機）以及可採取行動的設定步驟失敗情況。
- Chromium（無頭殼層 156）通過了全部 **45 項一般情境測試**及 **35 帳戶匯入／QR 碼／授權金鑰情境測試**，包括純文字對比度檢查、在 320–1440 像素範圍內無 水平溢出，以及在 320／390 像素時首次登入欄位清晰可見。 未觀察到頁面 JavaScript 錯誤或外部請求。
- `python start.py --setup-only` 將套件重新安裝為 0.6.1 版本， `python start.py --check` 回報已準備就緒。真正的 `python -m tgwitness --demo` 伺服器 回傳了控制面板、樣式表、腳本、標誌、指南以及 `/api/status` 0.6.1 版本； 已被移除的 `workspace.css` 則回傳 404 錯誤。
- `Start.cmd` 發現 PATH 路徑外的 Python 安裝檔。由於系統中沒有可用的 Python， 系統顯示了安裝提示；拒絕後，系統列印出手動安裝說明並退出 1。 python.org 的下載步驟取得 3.12.10 安裝程式，並通過 Python 軟體基金會的 Authenticode 驗證；該安裝程式本身並未在此主機上執行。
- `start.sh` 在未執行任何 Python 程式碼的情況下，輸出安裝提示並退出 1。`scripts\Docker.cmd` 與 `scripts/docker-start.sh` 針對偽造的 `docker` 可執行檔進行測試：呼叫 順序、面板位址及代幣輸出皆正確，且失敗後未顯示成功訊息。
- `python tools/build_portable.py` 在驗證 固定嵌入式執行環境的校驗和後，建置了一個 18.8 MiB 的 Windows 套件。 解壓縮至包含空格的路徑，並僅將 `C:\Windows` 目錄加入 PATH 環境變數後，其內嵌的 Python 通過了 `TgWitness-Check.cmd` 測試，成功 提供示範（32 個事件）及即時工作區，且 Chromium 在渲染日誌與詳細資訊 抽屜時未發生 JavaScript 錯誤。資料已寫入套件的 `data` 資料夾中。
- `python tools/build_preview.py` 產生了一個包含 110 個檔案的原始碼存檔。對 `git add` 進行模擬執行後，列出的同樣是這 110 個檔案，其中不含任何會話、金鑰、資料庫、憑證、日誌或匯出 檔案，亦無本地絕對路徑及任何類似機密字串的內容。

本次 10 月 27 日的打包執行中未包含以下項目：Python 自動安裝程序本身、Docker 建置／Compose 檢查、Linux／macOS 執行，以及新的實機帳戶 測試。真實的 Telegram 證據已記錄於上文及下方的早期帳戶檢查 中。僅憑 CI 定義尚不足以證明平台已成功執行。

## 版本 0.6.0

在 Windows 11 / Python 3.12.10 環境下，最新的完整固定執行時套件通過了 **135 項測試**， 其中 1**項跳過**，耗時 26.53 秒，並出現現有的 Starlette 警告。 該跳過項目 需要 POSIX 權限。在將 QR 渲染器加入就緒檢查與程序測量後，8 項受影響的就緒／工作區 檢查亦已通過。

新增支援範圍包含 Telethon 模式 7/8、Pyrogram 模式 2/3、完整的 JSON 金鑰及僅含元資料的 JSON、帳戶檔案的匹配與衝突、TData 通行碼、 校驗和篡改與不安全路徑、離線／經認證的內存轉換、 線上帳戶 ID 驗證、QR 碼成功／雙因素驗證／過期、過期帳戶取消，以及帳戶 隔離。 TData 測試套件採用獨立的 AES-IGE 實作進行加密。

Chromium 通過了 **45 個一般情境測試**及 **35 個帳戶匯入／QR 碼／驗證金鑰情境測試**， 期間未觀察到任何頁面 JavaScript 錯誤或外部請求。 新的瀏覽器檢測項目 涵蓋所有四種輸入格式、受保護的 TData、API 元資料、QR 碼渲染、 過期/重試、雙因素驗證 (2FA)、錯誤帳號拒絕、鎖定/工作區取消、響應式 佈局，以及選取新檔案後延遲轉換的回應。

在帳戶輸入欄位調整後，兩套瀏覽器套件均再次通過測試。即時設定會開啟 帳戶表單；示範模式則會開啟其範例日誌。示範版「帳戶」頁面會顯示 即時啟動說明，並隱藏憑證輸入欄位。 針對 320、390 及 1440 像素的針對性測試確認，數字欄位與主要 按鈕在無需捲動的情況下皆能完整顯示，API 欄位預設為收起狀態， 且文字對比度仍保持可讀性。開啟新的可擴展區塊後，擷取與驗證控制項仍 保持隱藏狀態。

透過真實的 匯入與授權端點，使用合成憑證執行了直接授權金鑰（Auth Key）流程。測試項目涵蓋不完整的金鑰、缺少的 DC、 不精確的用戶 ID、帳戶身分不符、儲存的 API 憑證、可見的 請求進度、機密資料清除，以及在編輯或變更方法後出現的延遲回應。 所有四種登入方式均於 320、390 及 1440 像素解析度下進行測試。檔案瀏覽器 出現在格式指引之前，且「連線」按鈕在 API 設定收起時，能完整顯示於初始 844 像素的視口內。 在此 UI 驗收測試中，並未嘗試進行實際的 Auth Key 授權。

已使用兩套瀏覽器套件再次檢查面板刷新功能：未觀察到頁面 JavaScript 錯誤或外部請求。帳戶套件現已涵蓋貼上 一組 API ID/雜湊值對、拒絕格式錯誤或多組對（且不替換 欄位）、僅提供元資料指引，以及在 登入方式變更或手動編輯憑證後，忽略過期的匯入回應。 另外六項針對性檢查 均已通過，涵蓋設定指南、明確的開始／暫停功能、空搜索恢復，以及最終 連線／本地指南版面配置，並在 320、390 和 1440 像素下確保文字對比度充足。 直接登入的更新新增了一項單一電話號碼／驗證碼請求操作，並重複使用 當前工作區中儲存的 API 配對，以支援電話號碼、QR 碼及會話登入。上述完整的 Python 測試套件包含新的資料持久化、部分憑證拒絕，以及工作區 隔離測試。 瀏覽器測試涵蓋直接輸入電話號碼、重複使用儲存憑證、 僅基於元資料的路由、一鍵檔案授權，以及重複帳戶拒絕機制。 簡化的面板代幣與手機表單亦在 320、390 及 1440 像素的螢幕尺寸下， 未進行初始捲動的情況下進行了測試。相容性檢查確認，當舊版流程仍在執行時， 直接手機登入表單仍可使用較早的 configure/code 端點。

其中一個由使用者提供的帳戶，是在公開測試環境之外，另行進行獨立驗證的。 其 Telethon、Pyrogram 及 TData 輸入資料均解析為相同的授權資訊； 隨附的 JSON 檔案提供了 API 憑證。這四個檔案皆透過 0.6.0 控制面板載入，且 Telegram 確認了預期的數值型帳戶 ID。原始檔案 未經任何變更。 未選取任何來源，且觀察功能保持關閉狀態。此 僅構成一個匯入／登入範例，並非即時蒐集、復原或效能測試。

Telegram 亦曾發出一個真實的 QR 代碼，該代碼在未被掃描的情況下即被取消。 完整的 QR 代碼確認流程與雙因素驗證（2FA）流程均透過模擬客戶端進行測試； 透過真實 Telegram 應用程式進行的行動裝置確認，仍屬獨立的驗收步驟。 公開檔案中不包含任何真實的帳戶識別碼、密鑰或螢幕截圖。

啟動器升級已完成；原始碼、已安裝的元資料及就緒標記 報告版本 0.6.0，附帶 QR 碼 8.2 及通過驗證的 `pip check`。已安裝的 wheel 模組 支援控制面板與指南，拒絕未經認證的 API 請求，並獨立 驗證了直接輸出與串流輸出的 32 項事件合成資料。 更新後的離線指南 已於 320、390 及 1440 像素解析度下進行驗證。公開的螢幕截圖仍為合成影像。

原始碼發行版包含 107 個白名單檔案。本地的文件連結均可正常存取。 Docker/Caddy 執行環境、遠端 CI/套件發佈、ARM64 執行環境、持續 資料蒐集，以及完整的 Telegram 即時相容性矩陣，目前尚未在此處獲得認證。

## 版本 0.5.1

在 Windows 11 / Python 3.12.10 環境下，完整的專案環境套件測試通過： **94 項通過，2 項跳過**，耗時 31.21 秒，並出現現有的 Starlette 警告。 跳過的項目需 POSIX 權限及符號連結建立功能，而本主機不具備此功能。 HTTP 下載測試套件輸出了一個請求執行緒診斷訊息；所有斷言 均通過。本次執行並不能證明主機傳輸端不存在問題。

新的回歸測試涵蓋了被拒絕的 StringSession、程式碼及雙因素驗證 (2FA) 帳戶 變更、已取消的身分查詢、待處理的登入取消，以及透過 已註冊處理程序對活躍、被拒絕、已被取代及探測客戶端進行的更新。僅 活躍的收集器會貢獻事件；儲存的憑證與簽名歷史紀錄仍 保持完整。 其他新檢查項目涵蓋重新開啟資料庫後的 Unicode 搜尋、在 Coverage 中納入 監控政策邊界，以及公開來源封裝的排除項目。

實際專案 `pythonw.exe` 啟動了一個隔離的合成面板，回傳 HTTP 200 狀態碼，並將啟動診斷資料保留於 `logs/server.log` 中。日誌中並未 包含生成的面板代幣或 HTTP 存取記錄。該測試僅終止了 其自身的合成程序。 未註冊任何「工作排程程式」任務；登入／登出、 休眠及服務恢復仍屬獨立的驗證項目。

Chromium 接受度測試通過 **45 種情**境，未發現頁面 JavaScript 錯誤， 亦未觀察到任何外部請求。 新增的檢測項目涵蓋 601/768/850 像素的時間軸日期 與時間、狀態更新期間的附件草稿、儲存過程中進行的最新編輯、 切換帳戶時清除的驗證結果、切換至其他頁面後 返回時的延遲驗證回應，以及新事件抵達時的明確驗證邊界。 此外，搜尋圖示與文字間距已修正，並重新執行了瀏覽器套件測試。

本次瀏覽器執行使用 `.venv` 中的固定執行環境，以及系統預設的 Playwright 1.62.0/Chromium，並將其附加於專案環境的導入路徑之後。 由於 Playwright 下載速度過慢，可選的開發依賴項安裝過程被中斷； 因此未通過任何新版瀏覽器工具的驗證。 一項正常的 `python start.py --setup-only` 完成了應用程式升級。原始碼、已安裝的 元資料以及啟動器的標記均顯示版本 0.5.1；`pip check` 通過驗證。就緒性檢查 在全新的未使用路徑上通過，並保留了預期的「本地金庫金鑰」警告。

0.5.1 版本的 wheel 套件已獨立安裝並進行初步測試：所有面板／指南資源 均能正常提供，未經認證的 API 存取遭拒，且直接與串流方式產生的 32 則事件證據 ZIP 檔案均通過獨立驗證。 已將 安裝套件中的應用程式檔案與原始碼進行比對。公開原始碼存檔採用 明確的檔案類型白名單，並拒絕連結的原始碼檔案；置於原始碼目錄內的 執行時資料則被回歸測試排除在外。

在程式碼修復執行期間，公開來源選集與 Git 候選集共包含 86 個檔案，其中未包含任何執行時資料目錄。針對可識別的私密金鑰、GitHub 憑證、 Telegram 機器人憑證及 StringSession 模式進行掃描後，未發現任何匹配項目。此為有限範圍的 模式檢查，並非全面的機密資訊稽核。 忽略規則探測涵蓋十二種 常見的帳戶／資料／匯出 artefact。工作流程／問題／Compose YAML 以及 Windows 任務腳本均已成功解析。本地文件連結可正常解析。

10月27日審查報告中的七項發現均已處理。GitHub 工作流程執行、Linux/macOS/Docker 執行環境、真實 Telegram 服務、外部代理伺服器/TSA 互通性，以及持續負載驗證，均未包含在此本地執行範圍內。 未進行任何儲存庫發布、服務註冊或真實帳號蒐集 作業。

### 英文文件更新

README、帳戶／會話參考、資料蒐集工作流程以及隨附指南現已 以英文說明支援的輸入格式、工作區行為、事件政策及匯出格式。 三張公開螢幕截圖已使用合成資料更新。 截至當時，公開來源選集共包含 88 個檔案，其中包含兩份新指南。 橫跨 23 份 Markdown 文件的全部 131 個本機連結均可正常存取。

經過介面與指南的修改後，Chromium 驗收測試再次通過所有 45 個測試情境，未觀察到任何頁面 JavaScript 錯誤或外部請求。 本次文件與簡報更新並未重新執行完整的 Python 測試套件； 上述 94 項通過的結果屬於先前修正程式碼後的測試結果。

重建後的輪子已安裝至一個全新的隔離目標環境中。其面板與引導 元件運作正常，未經認證的 API 存取請求遭拒，且 直接匯出與串流匯出均通過了 32 項合成事件的獨立驗證。

### 安裝與部署更新

針對性安裝程式、套件打包及就緒性檢查通過了 **14 項測試**，其中 因無法建立符號連結而跳過一項。原生封裝程式檢查涵蓋了包含 空格的路徑、參數轉發、設定／示範模式，以及非零退出狀態的傳播。 Git Bash 檢查透過模擬的守護程序測試 Docker 殼層輔助程式，包括 缺少 Docker、缺少 Compose、健康狀態等待失敗，以及成功透過替代埠 啟動等情境。這些模擬檢查並未驗證 Docker 執行時相容性。

一份完整的公開來源副本已安裝至一個新的 Windows 目錄中，該 路徑包含空格。`scripts\Setup.cmd` 建立了一個全新的環境並安裝了 固定運行的執行環境；`Start.cmd --check --json` 報告已準備就緒，但未建立其 目標資料目錄。`pip check` 測試通過。重新建構的輪子也通過了 已安裝套件的檢查，包括直接及串流的 32 項事件匯出。

已解析 Shell 語法及五個工作流程／Compose YAML 檔案。原始碼與圖像的 Compose 設定在儲存與執行時設定上保持一致。在此階段，橫跨 23 份 Markdown 文件中的所有 139 個 本地連結均已解析。公開來源選集包含 99 個檔案。

CI 定義現已針對 Windows/Linux/macOS 實施全新的原生設定，並涵蓋 Compose 在容器重建過程中的運作狀態、存取控制及持久性，以及 Caddy 配置。 此版本的工作流程會根據上述檢查結果控制發布，並新增了模擬 ARM64 的煙霧測試。 此主機無法使用 Docker：實際的 Compose/Caddy 執行、 憑證簽發、ARM64 執行，以及遠端工作流程/套件發布 在本地端仍無法通過驗證。本次更新未變更應用程式/UI 程式碼； 先前完整的 Python 及瀏覽器測試結果未重新執行。

## 版本 0.5.0

完整的固定執行時套件測試通過：**81 項通過、1 項跳過**，耗時 22.00 秒， 並出現現有的 Starlette 警告。 在 Windows 系統上， POSIX 權限檢查被跳過。新的處理程式測試會透過不同的 政策，傳送訊息、編輯、範圍內／範圍外的刪除、 反應、參與者更新以及成員資格服務訊息。 已停用的類別不會產生相應的即時觀察結果；但覆蓋範圍 診斷與明確快照仍可使用。測試驗證了政策持久化、 工作區隔離、經簽署的「前後」稽核記錄、政策不變行為、 嚴格驗證，以及納入下一個流程收據的情況。

示範條目測試可驗證其功能與已設定的面板憑證不同， 無法授權實際工作區、無法變更收集設定，且不會 針對遠端、轉發、跨來源或 Host 無效的請求進行發放或接受。 若未明確指定 demo 標記而開啟儲存的示範檔案，將不會啟用自動條目功能。

Chromium 相容性測試通過 **39 個情**境，包括無需 輸入憑證的本地示範入口、監控預設值、從來源選擇到政策的轉換、 每帳戶獨立性，以及桌面版／320／390 像素佈局與文字對比度檢查。 頁面中未出現 JavaScript 錯誤。主機由 AdGuard 注入的請求仍 保留在收據中。下載 HTTP 測試套件記錄到，當客戶端 關閉連線後發生連線重置；但斷言仍通過。此結果並非來自實際運作中的服務。

標準啟動程式已將隔離環境升級至 0.5.0 版；原始碼與已安裝 版本相符，且 pip 檢查已通過。現有的密鑰庫加密、錯誤／缺失 金鑰拒絕機制，以及簽名／媒體篡改檢查，均在完整測試套件中通過。聲稱並未新增 針對訊息內容或附件的應用程式加密功能。

本地示範程式已重新啟動，以便提供更新後的使用者介面。現有的合成 記錄將予以保留；停止舊的背景示範程式會於下次啟動時建立一個離線 分界點。這些檢查並未使用任何真實的 Telegram 會話。

正在運行的 localhost:8787 控制面板顯示版本為 0.5.0，提供自動示範存取功能、 五項監控控制項以及 33 筆保留的合成日誌事件。 獨立 安裝的 0.5.0 wheel 套件負責提供所有控制面板／指南資源，拒絕未經認證的 API 存取，並直接或透過串流 下載輔助程式產生經驗證的 32 筆事件 ZIP 檔案。執行時套件版本仍固定為 0.4 版本，與記錄內容一致。

## 版本 0.4.0

完整的固定執行時套件測試通過：**78 項通過，1 項跳過**，耗時 19.77 秒。 被跳過的檢查需要 POSIX 權限；上游 Starlette TestClient 的廢棄警告仍然存在。 新增的測試涵蓋串流下載／工作區路由、 授權標頭、拒絕覆寫、重定向、截斷回應、 宣稱／實際大小限制、有限讀取、清理、無硬 連結的檔案系統、就緒失敗，以及不得安裝套件的啟動器模式。 匯出測試確認了工作區本地的臨時檔案以及選擇性孤立檔案清理功能。

Chromium 相容性測試通過了所有 36 個列出的情境，且頁面未出現任何 JavaScript 錯誤。 該測試涵蓋模擬手機/代碼/雙因素認證登入、轉換後的會話、兩個工作區以及獨立的 路徑/狀態、觀察結果、簽名、檢查點和時間戳請求，此外還包括：

- 提供桌面版及 320/390 像素的版面配置，無水平溢出，導覽列清晰可見， 且首次登入欄位位於最初 844 像素的檢視窗內。
- 文字與實色背景之間的對比度符合 WCAG AA 級文字閾值標準。已停用的控制項、 不透明度以及圖片／漸層背景均未納入評估範圍；此並非完整的 WCAG 審計報告。
- 透過模擬的 OS 檔案選擇器／可寫入功能所撰寫的真實本地匯出回應， 隨後進行獨立的 ZIP 驗證；若取消操作，則不會發送任何匯出請求。
- 寫入失敗將中止傳輸至目標；128 MiB 備用機制會拒絕超大 的宣告回應，且不會為其分配相應的載荷。
- 關於桌面版及兩種窄版介面的英文在地化指南。

作業系統的儲存對話方塊以及實際多吉字節的瀏覽器寫入操作均未實現自動化，亦未 經過驗證。Python 下載測試採用有限大小的區塊及迴路測試環境。針對真實 Telegram 環境的 完整部署驗收測試則另行進行。

標準安裝程式已將 `.venv` 升級至 0.4.0 版。原始碼與已安裝的元資料相符； `pip check` 測試通過。`python start.py --check --json` 在全新的 合成路徑上報告已準備就緒，且未建立資料目錄。其關於本地金鑰儲存的警告 仍正確顯示：日誌/媒體檔案未經應用程式加密。

0.4.0 版本的 wheel 檔案已編譯完成並安裝至獨立目錄中。 全部 23 個應用程式 檔案與原始檔逐位元組完全吻合。已安裝的套件可提供控制面板及 英文指南／資源，會拒絕未經授權的 API 存取，並能匯出一個 包含 32 個事件的合成 ZIP 檔案，該檔案已通過驗證。其串流下載指令亦能從 正在運行的已安裝應用程式中取得一個經獨立驗證的 ZIP 檔案。

公開文件與本地指南均為英文；本地文件連結 可正常存取。PowerShell 已解析 Windows 任務範本，Python 已解析 macOS plist 檔案。這些僅為語法檢查，並非服務執行。未註冊任何任務／服務。 CI 配置現已包含就緒檢查，但遠端 CI 尚未在此處執行。

在 0.4 版瀏覽器執行測試中，再次觀察到 AdGuard 主機注入，以及 Windows asyncio 套接字清理時發生的 OSError 10022 錯誤。瀏覽器斷言測試均通過；這些環境 觀察結果將予以保留，而非視為已修正的應用程式行為。 最初針對 OpenSSL/瀏覽器/pip 的沙箱測試嘗試失敗；成功的 合格執行則採用了沙箱外的核准執行方式。

## 0.3.1 版本著重於穩定性修復

受影響的啟動程式、證據／儲存及 API 檢查結果：**31 項通過， 1 項跳過**，1 項上游 Starlette 警告。被跳過的檢查旨在驗證 POSIX 目錄權限，但無法在此 Windows 主機上建立該權限。 舊版 Python 測試模擬了版本／匯入邊界；未安裝或未通過驗證的 Python 3.10 解釋器。 先前通過測試的 0.3 測試套件記錄如下； 針對這些重點變更，並未重新執行完整的測試套件及瀏覽器情境。

標準啟動程式已將本地環境升級至 0.3.1 版；原始碼與已安裝的 元資料相符，且 pip 檢查已通過。 一個獨立安裝的 0.3.1 wheel 檔案負責 提供面板／資源，拒絕未經認證的 API 存取，並產生一份經過驗證的 32 個事件的合成匯出檔。工作流程 YAML 已解析，但新的容器執行環境 檢查並未執行：沒有可用的本地 Docker／Podman／Linux 執行環境。

請參閱[就緒性評估結果](https://github.com/phishdestroy/TgWitness/blob/main/docs/internal/READINESS.md)，了解剩餘的可用性、即時服務及 平台缺口。此修補程式不支援其他作業系統。

## 版本 0.3.0

完整的固定執行時套件已通過測試：**61 項測試**，其中包含一項來自上游的 Starlette TestClient 已棄用警告。執行時元資料顯示 TgWitness 0.3.0 及 python-socks 2.8.2；pip 檢查已通過。瀏覽器相容性測試已通過，且無 頁面 JavaScript 錯誤。

0.3.0 版本的 wheel 已編譯完成並安裝至獨立的套件目錄中。它 提供了控制面板與資源，拒絕了未經認證的 API 請求，並匯出 一份包含 32 項事件的合成日誌，該日誌已通過獨立驗證。 本地文件 中的連結均可正常存取。在進行 MTProxy 裸金鑰正規化修正後，所有九項 連線／安全性測試均成功重新執行。

新增涵蓋內容包括：

- 透過實際的迴路測試伺服器進行 SOCKS5 使用者名稱／密碼及 HTTP CONNECT 連線測試； 若已設定的代理伺服器無法運作，系統將直接失敗，而非轉而連線至目標伺服器。
- 代理伺服器驗證、MTProxy 傳輸協定選擇、拒收偽造的 TLS 加密金鑰、 資料持久化、工作區隔離、觀察期間拒收變更，以及將機密資訊 排除於 API 狀態與簽名事件之外。
- 對合成 Telethon SQLite 資料結構 7 和 8 進行唯讀轉換；原始碼雜湊值未變更； 拒絕其他格式、SQL 檢視表以及一個未處理的 WAL 檔案。
- 外部金庫主金鑰：可衍生出不同的工作區金鑰、成功重新開啟、 因金鑰錯誤或遺失而遭拒絕，且不會隱含地遷移現有的本地金庫。
- 瀏覽器代理設定、憑證清除、儲存保護披露、 行動裝置連線頁面、轉換後會話檔案授權、獨立路由， 以及先前所有透過偽造 Telegram 客戶端進行的資料蒐集／匯出情境。

在開發過程中，某次迴路測試曾無限期等待對端關閉連線；另一次 執行則觀察到 Windows 連線在握手完成後被重置。該測試套件現已將 整個通訊過程限定在固定範圍內，並將握手完成後的 EOF/重置視為連線 關閉。 握手／驗證斷言仍屬必要。此變更不代表 真實代理服務提供者不符合資格，亦不暗示 Telegram 傳輸機制存在固定缺陷。

下文所述由 AdGuard 主機發起的請求觀察結果仍然適用。未使用真實的 Telegram 帳戶、外部 SOCKS/HTTP 代理，亦未使用實際運作中的 MTProxy 伺服器。MTProxy 目前 仍處於實驗階段，其選定的選項與密鑰驗證已通過檢查，但 尚未進行實際運作中的互通性測試。 新的外部金鑰與會話轉換指令僅 使用合成密鑰進行測試。Linux/macOS/Docker 平台在此仍未通過驗證。

下方的 0.2 版本吞吐量測量結果未經重複驗證，且不得 作為 0.3 版本的新多帳號／代理伺服器基準測試結果呈現。

## 0.2.0 版本基準

已於 Windows 系統上使用 Python 3.12.10 進行測試。未連結任何真實的 Telegram 帳戶。

| 檢查 | 結果 |
| --- | --- |
| Python 套件 | 開發環境中通過 52 項測試，使用固定版本的執行環境時亦通過 52 項測試；每次執行均出現一則來自上游的 Starlette TestClient 已廢棄功能警告 |
| JavaScript 語法 | 已通過 Node.js 測試 |
| Chromium 相容性 | 通過；頁面無 JavaScript 錯誤 |
| 桌面版／行動版版面配置 | 已於 1440 × 1060 及 390 × 844 解析度下驗證；文件內容未出現水平溢出 |
| 以 HTML 格式呈現的訊息內容 | 已轉換為文字；注入的腳本未執行 |
| 模擬帳戶流程 | API 憑證 → 手機 → 代碼 → 雙因素驗證 → 選擇群組 → 開始 → 快照 → 暫停 → 重新載入 |
| 瀏覽器中的證據 | 編輯比較、刪除前的原始內容、篩選器、ZIP 下載、檢查點、簽署的處理收據、RFC 3161 請求下載及檢查點綁定 |
| 多帳號 | 獨立的日誌、金鑰、來源與即時狀態；切換瀏覽器時其他收集器仍會繼續運行；重啟後工作區會自動重新開啟；拒絕重複帳戶及帳戶重新指派 |
| 加密失誤 | 已變更的簽名欄位、新增的未簽名欄位、錯誤金鑰、檔案成員損毀、媒體檔案變更／遺失、檢查點偵測到的截斷內容遭拒 |
| 儲存 | 若同時進行追加操作則驗證成功；若觸發更新或刪除則拒絕；啟動時若日誌內容已變更但未追加，系統將拒絕該日誌並釋放其鎖定狀態 |
| 媒體持久性 | 原子式訊息／工作寫入；重啟恢復機制；保留原始版本描述符；拒絕佇列替換及現有檔案損毀；FloodWait 功能持續運作；已隔離來源故障 |
| 串流 | 在新增記錄時會匯出穩定的前綴；保留的檢查點可偵測日誌是否遭截斷；匯出操作不會將整個事件流實體化 |
| RFC 3161 | OpenSSL 3.5.9 會讀取生成的請求；接受本地生成的合成 CA/TSA 回應；拒絕經竄改的資料、非隨機數（nonce）及錯誤的 CA；環境中的 CA 設定不會覆寫明確的信任設定 |
| 本地部署 | start.py --setup-only 已將隔離的 .venv 升級至 0.2.0；原始碼與已安裝的元資料一致；pip 檢查通過 |
| Wheel | 0.2.0 版本已建置並獨立安裝於 test-results 目錄下；提供面板／資源，拒絕未經認證的 API 請求，並已匯出及驗證一個包含 32 項事件的合成存檔 |

原始碼測試採用了 FastAPI 0.159.1、Uvicorn 0.54.0、Telethon 1.45.0、 cryptography 50.0.2、pytest 9.1.1 以及 Playwright 1.62.0。 鎖定的執行時環境使用 FastAPI 0.162.0、Starlette 1.10.0、 Uvicorn 0.54.0、Telethon 1.45.0 以及 cryptography 50.0.2。 deploy/constraints.txt 記錄了運行時版本的固定設定；deploy/requirements.lock 和 deploy/build.lock 則包含每個套件檔案的 SHA-256 值，而 Docker 及高保障 伺服器僅會從這些檔案進行安裝（pip --require-hashes）。 這兩者均不代表在 所有已配置的 CI 平台上皆具相容性。遠端 CI 尚未執行。

## 合成本地能力測量

指令：`python tools/check_capacity.py --events 10000 --chats 100`

| 指標 | 觀察到 |
| --- | --- |
| 輸入 | 涵蓋 100 個精選合成來源的 10,000 則合成訊息事件 |
| 訊息內容 | 400 個字元；不含媒體或網路內容 |
| 資料擷取 | 53.273 秒；每秒 187.7 次事件 |
| 處理器延遲 | p50 4.162 毫秒；p95 7.784 毫秒；最大值 129.118 毫秒 |
| ZIP 匯出 | 啟用 tracemalloc 時耗時 19.868 秒 |
| Python 匯出區塊的峰值追蹤 | 0.51 MiB；不處理 RSS |
| ZIP 檔案大小 | 4,610,962 位元組 |
| 獨立驗證 | 所有 10,000 筆事件均已驗證 |

此測量針對本 Windows 主機上的本地序列記錄／匯出路徑。它 不測量 MTProto 傳輸、並行帳戶、Telegram 流量限制、媒體檔案、 長期運行的負載，亦不保證實際聊天數目。此測量是在 最終離線時間戳工具推出之前進行的，該工具並不會改變所測量的訊息路徑。

## 環境觀察

Windows 沙箱限制阻擋了預設的 pytest/pip 暫存目錄 以及 Playwright 子程序。pytest 改用專案內的新暫存目錄； 安裝程式與瀏覽器程序則需在沙箱外 經核准後方可執行。

該裝置的 AdGuard 將對 local.adguard.org 的請求注入至瀏覽器中。 瀏覽器收據中保留了這些請求。此次測試並不能證明在未經修改的瀏覽器環境中 完全沒有外發請求；該應用程式的原始碼本身 並不包含任何外部資源／CDN／分析服務的請求。AdGuard 的設定並未被更改。

最後一次瀏覽器執行過程亦記錄了一項 Windows asyncio 套接字清理相關的 OSError 10022 錯誤。 所有瀏覽器斷言均通過，且頁面未發生任何 JavaScript 錯誤。其成因 尚未釐清，且本次執行並未證明主機傳輸層不存在問題。

首個使用 urllib 的 connection-close 請求進行測試的已安裝套件 HTTP 探測 在沙箱內外，且使用兩種 依賴項組合時，均遭遇連線重置。最後一次探測採用透過 http.client 建立的標準 HTTP/1.1 持久連線 並通過測試。 瀏覽器請求亦通過測試。重置現象的 確切來源尚未釐清；此現象未被歸類為已知應用程式缺陷。

## 其餘資格說明

所保留的即時日誌可記錄實際的訊息收集、編輯、刪除通知、附件、 重新檢查及速率限制處理。 它並未完整記錄訊息送達狀況，亦未建立受控的 角色可見性矩陣、反應主體、延長的 FloodWait、帳號封禁以及 網路／程序中斷恢復等資訊。QR 代幣的發行仍與已完成的 行動端 QR 碼確認程序有所區別。

Docker 建置／執行、Linux／macOS 安裝、持續高負載、獨立安全 審查、真正的獨立 TSA 回應、憑證撤銷／歸檔驗證以及 鑑識認證仍不在本次記錄的認證範圍內。已實作 MTProto 狀態 儲存與補錄功能；原子性持久重播功能尚未建立。 管理日誌 收集、額外的反應器清單以及優先級短輪詢仍屬獨立功能。 請參閱[即時驗收](https://github.com/phishdestroy/TgWitness/blob/main/docs/internal/LIVE_ACCEPTANCE.md)報告以了解受控資格認證矩陣。

本地詳細收據與螢幕截圖位於 test-results/ 目錄下（Git 已忽略）。 docs/assets/ 目錄中的公開螢幕截圖僅包含虛構的示範資料。

## 公開網站與出版物籌備 · 2026年10月27日

在上述面板檢查完成後，新增了獨立的 `website/` 簡報及 Pages 建置版本。 實際帳戶的配置或資料蒐集邏輯均未進行任何變更。

- 現有應用程式套件已通過測試：138 項通過，1 項僅限 POSIX 的測試跳過，以及 1 項 上游 Starlette/httpx 的已廢棄功能警告。新增的 11 項網站建置測試均已 獨立通過，包括「意外輸出」拒絕測試與「連結輸入」拒絕測試。
- 兩項應用程式瀏覽器腳本均透過 project-venv Playwright 及 Chromium 無頭殼層 156 成功通過測試。未記錄任何頁面 JavaScript 錯誤或外部請求。 所有帳戶情境均採用虛假傳輸方式及虛構資料。
- `tools/check_site.py` 已通過 320、390、768、1024 及 1440 像素寬度的測試，測試環境包含專案 URL 子路徑、鍵盤 Tab 鍵、剪貼簿存取成功／遭拒、減少動態效果， 以及停用 JavaScript。未發生任何資產請求失敗或外部請求失敗的情況。
- `tools/build_site.py` 產生了 10 個列入白名單的公開檔案，總計約 460 KB。 瀏覽器螢幕截圖及收據則位於被忽略的 `test-results/site/` 中。
- 在專案環境中安裝僅用於建置的 setuptools/wheel 工具後，成功建置了 wheel 檔案。將其安裝至隔離的目標環境並 執行 `tools/check_install.py` 後，各項測試均通過：靜態資產、存取控制、經簽署的 32 個事件合成匯出，以及經獨立驗證的串流下載。
- `pip check` 已通過。針對 Git 篩選出的公開候選項目進行模式掃描後，未發現 任何可辨識的私鑰區塊、GitHub/bot/AWS 憑證、長字面量機密 賦值，或合併衝突標記。這並不證明所有可能的 機密格式皆不存在。 執行階段資料／會話／金鑰探測項目已被 Git 忽略。
- GitHub CLI 驗證無效；未配置遠端儲存庫，且不存在初始 提交。未執行推送、託管工作流程、Pages 部署或發佈。 Docker 以及 Telegram/平台的即時驗證仍不在本次檢查範圍內。

在此主機上，Playwright 在 E: 工作區檔案系統上的下載鎖定功能失敗。 在 `%LOCALAPPDATA%/tgwitness-playwright` 下安裝 Chromium，並使用相同的 `PLAYWRIGHT_BROWSERS_PATH` 進行檢查時，操作成功。這是一種環境層面的解決方案， 並非對應用程式執行時依賴項的變更。

## 互動式文件與網站元資料 · 2026年10月29日

此公開網站包含 12 個英文 HTML 頁面：一個首頁、一個指南索引以及十份 指南。該專案包含 28 個明確列出的簡報檔案， 總大小約 1.85 MB，且不含任何資料擷取資料。公開網站採用英文； 應用程式翻譯及翻譯後的儲存庫指南則另行提供。

- 網站、原始發佈來源及版本邊界測試：**18 項通過，2 項跳過**。 跳過的項目涉及在此 Windows 檔案系統上建立符號連結。測試項目包含 頁面元資料的唯一性、僅限英文的公開頁面、規範 URL、所有網站地圖 條目、本地資源／錨點、結構化導覽以及私有檔案的排除。
- `tools/check_site.py` 與 `tools/check_docs_site.py` 均在 Chromium 瀏覽器中，於 320、390、768、1024 及 1440 像素解析度下，透過專案 URL 子路徑成功通過測試。 此指南的測試項目 涵蓋所有 11 頁文件、搜尋與鍵盤導航、剪貼簿 操作成功／失敗，以及在不使用 JavaScript 的情況下內容是否可讀。
- 五項互動範例均通過測試：訊息播放／步進／暫停／重置，具備 動作減緩與螢幕外暫停功能；原始／修改／重建／截斷 的雜湊鏈；證據接受／回滾／分叉／無回應的決策；以及 完整／延遲／未送達的傳送情境；另有一張調查地圖，串聯 虛構跨聊天室觀察紀錄，並依發送者 ID、目的地及附件 雜湊進行連結。該調查控制機制通過鍵盤導航及無 JavaScript 備用方案的驗證。 瀏覽器的 SHA-256 結果已 與 Python 的 `hashlib` 及標準 JSON 進行獨立比對。該雜湊 範例在 Web Crypto 不可用時，亦保留了其可讀性的備用方案。
- 呈現比例與圖表標記均與可存取性表格相符。經視覺審查後， 行動裝置軸標籤已放大。每個範例均標示為 「示意」或「模擬」，且瀏覽器範例均不會與 Telegram 建立連線。
- 未記錄任何外部請求、失敗的 HTTP 請求或 JavaScript 錯誤。 桌面版／行動版螢幕截圖及收據已歸類至被忽略的 `test-results/site/` 及 `test-results/docs-site/`。文件索引、訊息／雜湊值範例、 Witness 佈局、傳送圖表及調查地圖均已於 桌面版／行動版尺寸下進行檢視。
- 本次發布的掃描已通過 282 個公開原始碼檔案及 1,426 個 本地文件連結的驗證。Ruff 已通過針對修改後 Python 網站工具及測試的驗證。
- `docs/HOW-IT-WORKS.md` 提供一個搭配 Mermaid 圖表與公式的 GitHub Markdown 輔助工具。`docs/INVESTIGATION.md` 涵蓋整個帳戶範圍、 單一聊天記錄的擷取、使用者檔案、跨聊天室參照、時間軸 以及經核實的案件移交流程。 其操作步驟與限制已針對 現行範圍、蒐集、檔案、匯出、驗證器及面板程式碼進行核對。託管於 GitHub 的渲染功能則未經核對。

此為本地網站／文件檢查。此操作不會增加 Telegram 的 即時驗證資格，亦不會建立託管 Pages 的部署、遠端 CI 的成功狀態或搜尋 引擎索引。請[參閱發佈程序](https://github.com/phishdestroy/TgWitness/blob/main/docs/internal/PUBLISHING.md)及 [網站元資料說明](https://github.com/phishdestroy/TgWitness/blob/main/docs/internal/SEO.md)。
