Remote Sessions
啟用 Remote Sessions 後,可透過 GitHub 的 Mission Control 從網頁或行動裝置存取相同 Session。 啟用後每個 Session 都會連線到 Mission Control,並發行可以透過連結或 QR Code 分享的 URL。 若希望 Session 本身在 GitHub 主機環境上執行,而非在本機或自建伺服器,請使用 Cloud Sessions。前置條件
- 使用者已通過驗證(GitHub Token 或已登入的使用者)
workingDirectory是 GitHub 儲存庫
在 Client 層級啟用(常時 ON)
啟用remote: true 後,GitHub 儲存庫內的所有 Session 都會自動發行遠端 URL。
比起固定寫入 config/copilot.php,只在需要的處理中透過 useStdio() 啟用 remote: true 會更好用。
remote 選項僅在 SDK 啟動 CLI 程序時有效,也就是 僅限 stdio 模式。連線至外部伺服器(例如 useTcp())時會被忽略。在每個 Session 啟用(隨選)
若想在中途開始遠端共享,可透過 RPC 切換。 這等同於 CLI 的/remote on 與 /remote off 指令。
執行階段層級的 Remote Control(TCP 模式)
remote: true 選項在 SDK 啟動 CLI 程序時生效,因此僅適用於 stdio 模式。在 TCP 模式下連線到現有 CLI 伺服器時,此選項會被忽略。
在 TCP 模式下,可以透過 $client->rpc()->sessions() 管理整個執行階段唯一的 Remote Control。與每個 Session 的 remote()->enable() 不同,這些方法可以啟動、停止 Remote Control,在 Session 之間移轉,並取得目前狀態。
off、connecting、active 或 error 其中之一。處於 active 時,也可以讀取 frontendUrl 與 isSteerable。
產生 QR Code
取得的遠端 URL 可以做成 QR Code 傳給行動裝置。 可以使用 Laravel Fortify 也採用的 BaconQrCode。注意事項
remote選項僅在 SDK 啟動 CLI 程序時有效。連線至外部伺服器(例如useTcp())時會被忽略。- 若
workingDirectory不是 GitHub 儲存庫,在常時 ON 模式下遠端設定會被略過。在隨選啟用(remote()->enable())時可能會產生錯誤。 - 請正確設定認證資訊(
github_token或use_logged_in_user)。
參考
最新資訊請參閱 GitHub 儲存庫。