# 安全處理 Oysterun Host runtime 錯誤

先保留 Explorer 的唯讀 runtime 錯誤，只使用一次可見的 Back；相同 Session chat 保留預期 history 且 composer 可用時，即判定已恢復。

已登入的 Explorer 在讀取資料夾或路徑時顯示 Host runtime 錯誤，請先保留訊息再嘗試恢復。現在的錯誤畫面頂端可能只顯示 **Back** 與 **Add Folder**；不要預期該畫面會有 Oysterun 選單或 **Refresh Page**。只選擇一次 **Back**；相同 Session chat 返回、預期 checkpoint history 仍在且 composer 可用時，即代表恢復成功。

終點結果：

選擇一次可見的

Back

後，相同 Session chat 返回、預期 checkpoint history 仍在且 composer 可用時，判定為

已恢復

。否則停止：該 Chat 未返回、預期 history 遺失或 composer 無法使用時，判定為

停止——未恢復

；失敗動作可能已變更某項狀態時，判定為

停止——未知；不要重複

。

## 1. 確認這是正確的恢復流程

只有下列條件全部成立時，才使用本頁：

- 你已登入預期的 Host，而且 Explorer 仍顯示在畫面上。
- Explorer 開啟或讀取資料夾、路徑或清單時，出現頁面層級的 error box 或 failed-request 訊息。
- 沒有 save、create、delete、send、start、stop、restart、update、provider、Loop 或 Scheduler 變更正在執行。

請改用其他流程：

像

Reconnecting...

這類連線狀態、登入錯誤，或無法開啟的 Host 頁面，都不屬於這條有界 runtime-error 流程。請改用 Host authentication and connection 指南。看到瀏覽器安全警告或非預期的 Host identity 時，立即停止。

## 2. 離開前先保留可見錯誤

![完整 Explorer 錯誤畫面，同框顯示可見 Back、安全失敗路徑 ./missing-path-p129-a-p04-v2，以及已遮蔽本機路徑的唯讀 Open Path does not exist 訊息。](../assets/publication/runtime-error.png)

保留錯誤：完整 Explorer 畫面顯示安全失敗路徑

./missing-path-p129-a-p04-v2

、唯讀訊息

Open Path does not exist: [local path redacted]

與可見 Back；沒有公開私人 parent path。

1. 停止選擇失敗的控制項，讓錯誤留在畫面上直到記錄完成。
1. 記下使用的畫面與控制項、完整的可見訊息、本機時間與時區，以及 Explorer 是否仍會回應可見控制項。
1. 判斷失敗動作只讀取資訊，還是可能已改變狀態。如果無法確定，就把它分類為可能有變更。
1. 如果要截圖，請裁切或遮住密碼、token、cookie、私人 Host 位址、capability link、完整本機路徑、Session identity 與私人訊息內容。無法確定能安全遮蔽時，改寫一段簡短文字摘要。

**檢查點：**不使用 log、內部 status URL、終端機或隱藏實作細節，你也能說明畫面上哪個動作失敗。

## 3. 判斷使用 Back 是否安全

### 可以安全使用一次 Back

錯誤發生在 Explorer 只讀取資料夾、路徑或清單時；沒有變更正在等待；而且可見的 **Back** 控制項仍有回應。

### 以未知結果停止

失敗動作可能 save、create、delete、send、start、stop、restart、update、authenticate、schedule，或用其他方式變更狀態。不要再次選擇該動作、不要把 Back 當成結果證明，也不要用 refresh 猜測它是否成功。

如果結果未知，請保留錯誤與目前畫面，再請 Host 擁有者檢查原始動作。這已經是使用者能理解的終點結果；猜測或重複動作不等於恢復。

## 4. 使用一次 Back 返回相同 Session chat

1. 只選擇一次可見的 **Back**。不要在 Explorer 錯誤畫面尋找 Oysterun 選單或 **Refresh Page**；目前的錯誤 route 不會顯示這些控制項。
1. 等待相同的已登入 Session chat 穩定。不要以另一個 Session 代替。
1. 確認預期 checkpoint history 仍在。不要再次送出 checkpoint 或失敗路徑。
1. 確認 composer 顯示且可用；不需要再輸入或傳送訊息。

**檢查點：**相同 Session chat、預期 checkpoint history 與可用 composer 就是完整的**已恢復**終點。離開錯誤 route 不會重播失敗要求。

## 5. 只有實際看得到時才使用 Refresh Page

**Refresh Page 是選用 fallback，而且已證實的成功終點完全不需要它。****Back** 返回相同 Session chat、預期 history 仍在且 composer 可用時，直接判定**已恢復**，不要 refresh。只有 **Back** 改為返回穩定的已登入 dashboard、該處仍有唯讀顯示問題，而且可見 Oysterun 選單內有 **Refresh Page** 時，才考慮這個 fallback。

1. 相同 Session chat、預期 history 與 composer 已可用時，不要 refresh，直接進行終點判定。
1. **Back** 改為返回仍有唯讀顯示問題的穩定 dashboard，而且可見 Oysterun 選單內有 **Refresh Page** 時，最多選擇一次。要求等待期間，控制項可能顯示 **Refreshing...**。
1. 等待該穩定 dashboard route 返回並可用。預期 Session chat 仍無法使用時，判定為**未恢復**。
1. 看不到選單或 **Refresh Page** 時，跳過這個 fallback。不要使用瀏覽器 reload、尋找隱藏控制項、重複失敗要求，或宣稱錯誤 route 本身已重新整理。

**預期邊界：**可見的 **Refresh Page** 只會重新載入它所在的穩定 route。它不保證 Explorer 錯誤畫面的 same-route recovery、不會修復設定、不會重播失敗動作、不會重新啟動 Host，也無法證明先前的變更已成功。

## 6. 以一個可見判定結束

![使用一次 Back 後完整恢復的 Session p129-a-p04-v2，同框顯示預期的單一 checkpoint request、response 與可用的 Send a message composer。](../assets/publication/recovered-chat.png)

恢復終點：使用一次 Back 後，相同 Session

p129-a-p04-v2

顯示預期的單一 checkpoint request 與 response，以及可用的

Send a message...

composer；不要求 Connected 指示。

### 已恢復

選擇一次可見的 **Back** 後，相同 Session chat 返回、預期 checkpoint history 仍在且 composer 可用。不需要重新進入 Explorer、載入資料夾或清單、refresh、reload 或重複要求。

### 停止——未恢復

**Back** 未返回相同 Session chat、預期 checkpoint history 遺失、composer 無法使用，或完成單一有界路徑後出現相同或不同的 runtime 錯誤。請在此停止，不要進入 Back、refresh 或 request loop。

### 停止——未知；不要重複

原始動作可能已變更狀態、返回畫面無法證明結果，或 Host identity 不確定。不要重複該動作，請把保留的資訊交給 Host 擁有者。

## 7. 安全交接給 Host 擁有者

判定為**未恢復**或**未知**時，只提供：

- 相關的 Oysterun 畫面與可見控制項；
- 安全遮蔽後的錯誤訊息；
- 本機時間與時區；
- 該動作為唯讀，或可能已變更狀態；
- **Back** 是否返回相同 Session chat、預期 checkpoint history 是否仍在，以及 composer 是否可用；以及
- **Refresh Page** 是否實際可見、是否使用過一次，以及之後出現什麼。

錯誤顯示完整本機路徑，不表示可以公開該路徑。不要分享憑證、私人 origin、capability link、Session identifier 或 transcript 內容。

## 了解必須停止的界線

- **錯誤指出無效設定檔或 parse failure：**Back 或 refresh 無法修復該檔案。保留遮蔽後的訊息，請該確切 Host 或檔案的擁有者處理。不要自行編輯不屬於你的檔案。
- **錯誤涉及選用的 diagnostic evidence：**不要直接判定產品動作失敗。只根據該動作本身的可見結果判斷，並分開回報 diagnostic 錯誤。
- **Host 頁面無法使用或 Host 已退出：**這條 dashboard 流程無法恢復 process。重新啟動 Host 必須取得同時指明確切 Host 與 restart 動作的即時許可；本文章不授予這項許可，也不指示重新啟動。
- **完成有界的 Back 路徑後，相同 Session chat 仍無法使用：**以**未恢復**停止。不要因本指南開啟內部 runtime-status 位址、檢查 service log、編輯設定、執行 CLI 命令，或自行嘗試另一個生命週期動作。

**安全停止：**保留一個錯誤、執行一次 **Back**、檢查一次相同 Session chat、預期 history 與 composer、最多使用一次符合條件且實際可見的 **Refresh Page** fallback、得到一個可見終點判定，而且沒有重複或未授權的變更。
