Spaces:
Paused
Paused
Upload README.md with huggingface_hub
Browse files
README.md
CHANGED
|
@@ -22,6 +22,23 @@ OpenCode 在啟動時安裝,並重設使用者層級設定為預設值。
|
|
| 22 |
- `app.py` — FastAPI + xterm.js 終端機、檔案瀏覽器與 `/ws` session 管理
|
| 23 |
- `requirements.txt` — Python 相依套件
|
| 24 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 25 |
`installpi.sh` 已從 Space 流程中移除(不再自動執行),檔案本身保留在 repo 作為紀錄,
|
| 26 |
需要時手動執行。
|
| 27 |
|
|
|
|
| 22 |
- `app.py` — FastAPI + xterm.js 終端機、檔案瀏覽器與 `/ws` session 管理
|
| 23 |
- `requirements.txt` — Python 相依套件
|
| 24 |
|
| 25 |
+
## 終端機工作階段(跨裝置/長時間斷線)
|
| 26 |
+
|
| 27 |
+
- **共用主 session(`primary`)**:網頁第一個終端機固定不帶 `session_id`,伺服器一律接到
|
| 28 |
+
同一個 `primary` session。因此:
|
| 29 |
+
- 不同裝置、不同瀏覽器(localStorage 是空的)連進來,看到的是**同一個終端機**,
|
| 30 |
+
原本在跑的 `opencode` 不會被留在背景、也不會另開一個新 bash。
|
| 31 |
+
- 斷線數小時後再接回,仍然接回同一個 PTY;`primary` **永不被閒置清除**。
|
| 32 |
+
- 關閉分頁只會解除訂閱,不會終止 `primary`(其他裝置仍可接回)。
|
| 33 |
+
- 重新整理/同一裝置重連:前端用 localStorage 記住的 `primary` id 直接接回。
|
| 34 |
+
- 這台裝置額外按 `+` 開的分頁仍是**非共用**的暫時 session,斷線後 30 分鐘沒人接回才清除
|
| 35 |
+
(可用 Space 變數 `SESSION_IDLE_TIMEOUT` 覆寫秒數)。
|
| 36 |
+
- 除錯用端點:`GET /api/sessions` 可看目前所有 session、`primary` 是否存活、訂閱者數量、
|
| 37 |
+
idle 秒數與回放緩衝區大小。
|
| 38 |
+
|
| 39 |
+
> 注意:`primary` 是「伺服器行程內」的 PTY。Space 重建/app 行程重啟時 PTY 一定跟著結束,
|
| 40 |
+
> 這是平台限制;同一行程內的一般斷線、休眠、換裝置都不受影響。
|
| 41 |
+
|
| 42 |
`installpi.sh` 已從 Space 流程中移除(不再自動執行),檔案本身保留在 repo 作為紀錄,
|
| 43 |
需要時手動執行。
|
| 44 |
|