LIVE 模式改為雙向對話,參考 claudecodeui 的 resume 接力機制
摘要: 側邊面板從單向任務派發升級為聊天室:每則訊息 spawn claude -p --output-format stream-json,捕捉 session_id 後 下一則自動 --resume 接力,對話得以連續;回覆同步顯示在 聊天串與小人頭上的對話氣泡。 根本原因: 單向 /task 發出後看不到回覆內容,也無法追問;claudecodeui 證明 headless + resume 接力即可實現連續對話,無需常駐 runtime。 影響: watcher 新增 POST /chat(每專案一個 office thread、busy 檢查、 reset 會終止進行中的執行);SSE 新增 chat_start/chat_text/chat_done。 /task API 保留。已實測兩輪對話,第二輪正確記得第一輪內容。 修法: - watch.mjs:launchChat 解析 stream-json(init 抓 session_id、 assistant 文字轉發、result 收尾),chatThreads 記憶 thread - store:chats Map + chatAppend/chatSetBusy/chatClear - live.ts:sendChat/resetChat + chat_* 事件對映 - SidePanel:ChatPanel(氣泡串、自動捲底、Enter 送出、新對話) Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -55,7 +55,19 @@ session transcript(JSONL),只讀取新增的位元組,轉譯成事件推播給
|
||||
注意:監看伺服器會讀取本機的 Claude Code 對話記錄(含程式碼與提示詞),
|
||||
**只綁 127.0.0.1、不要對外開放**;如需團隊共用請自行加上驗證。
|
||||
|
||||
### 在辦公室下任務(LIVE 模式)
|
||||
### 在辦公室對話(LIVE 模式)
|
||||
|
||||
點選專案 agent 後,側邊面板是一個**雙向聊天室**(參考 claudecodeui 的做法):
|
||||
每則訊息 spawn 一次 `claude -p --output-format stream-json`,從輸出捕捉
|
||||
`session_id`,下一則自動 `--resume` 接力 — 對話因此能連續。回覆會同時
|
||||
顯示在聊天串和小人頭上的對話氣泡;執行過程(思考/工具)即時演在辦公室。
|
||||
|
||||
- 「接續專案最近 session」:第一句改從該專案最近一段已結束的 session 接續
|
||||
- 「🔄 新對話」:清空 office 對話串(會終止進行中的執行)
|
||||
- 事件:`POST /chat` → SSE 廣播 `chat_start` / `chat_text` / `chat_done`
|
||||
- 同專案一次只跑一則;仍無法插入終端機正在進行中的互動對話
|
||||
|
||||
### 在辦公室下任務(API)
|
||||
|
||||
點選任一專案 agent,側邊面板會出現任務輸入框 —「🚀 派發任務」會透過
|
||||
`POST /task` 讓監看伺服器在該專案目錄 spawn 一個 headless session:
|
||||
|
||||
Reference in New Issue
Block a user