✨ feat(vscode): 头脑风暴会话一键续聊,终端开着直接打进去、关了带提示词恢复

详情面板「头脑风暴会话id」行的 ▶ 改为续聊:规划终端还开着就把续聊提示词
打进去;终端关了但有会话 id 就 `claude --resume <id>` 带提示词恢复;没会话
才新开。属性行右侧按钮改为数组,续聊与关闭 tab 可并存。

Claude-Session: https://claude.ai/code/session_01KDcq9HcrVLs2c9tkRxasub
This commit is contained in:
cruldra committed 2026-09-03 01:16:41 +08:00
1 parent 90600cf070
commit ae875756a9
15 files changed
+307 -297

No files matched your search

+16 -10
View File
@@ -56,19 +56,25 @@ export function injectIntoImplTerminal(panel: KanbanWebviewPanel, issueNumber: n
}
if (!terminal)
return false
// cc 的 TUI 在 raw 模式下,LF (\n) 只算输入框内的换行,CR (\r)
// 才会被识别为 Enter(提交消息)。实测把多行内容 + 末尾 \r 在同一次
// sendText 里发出去时,cc 进入多行输入模式后并不会把紧跟的 \r 当成
// 提交键,结果就是反馈只粘贴到输入框、没提交。
// 拆两次发:先把内容完整推进输入框,250ms 后再独立发一个 \r 作为 Enter。
const body = `\n[审查反馈]\n${text}`
terminal.sendText(body, false)
setTimeout(() => {
terminal!.sendText('\r', false)
}, 250)
submitToSessionTerminal(terminal, `\n[审查反馈]\n${text}`)
return true
}
/**
* 往正在跑 cc / codex TUI 的终端里提交一条消息。
*
* TUI 在 raw 模式下,LF (\n) 只算输入框内的换行,CR (\r) 才会被识别为
* Enter。实测多行内容 + 末尾 \r 在同一次 sendText 里发出去时,TUI 进入
* 多行输入模式后不会把紧跟的 \r 当成提交键,内容只粘贴到输入框、没提交。
* 所以拆两次发:先把内容完整推进输入框,250ms 后再独立发一个 \r 作为 Enter。
*/
export function submitToSessionTerminal(terminal: Terminal, text: string): void {
terminal.sendText(text, false)
setTimeout(() => {
terminal.sendText('\r', false)
}, 250)
}
/**
* 本机是否开着该工单的存活终端(exitStatus undefined)——webhook 门禁对
* 无 assignee 存量工单的兜底证据。不依赖 panel:看板关闭时实施终端