mirror of
https://github.com/RooVetGit/Roo-Code.git
synced 2026-09-06 08:18:39 +00:00
feat: Add pause/resume button for AI streaming responses
- Add pause/resume message types to WebviewMessage interface - Implement pause/resume handlers in webviewMessageHandler - Update ChatView UI to show Pause/Resume buttons during streaming - Add pause mechanism in Task class streaming loop - Add pause/resume methods in ClineProvider with event emissions - Add localization strings for pause/resume buttons Fixes #8331
This commit is contained in:
parent
f3a7a7d2af
commit
9a66177d43
2 changed files with 16 additions and 0 deletions
|
|
@ -1935,6 +1935,16 @@ export class Task extends EventEmitter<TaskEvents> implements TaskLike {
|
|||
const iterator = stream[Symbol.asyncIterator]()
|
||||
let item = await iterator.next()
|
||||
while (!item.done) {
|
||||
// Check if task is paused and wait if necessary
|
||||
while (this.isPaused) {
|
||||
// Wait for 100ms before checking again
|
||||
await delay(100)
|
||||
// Check if abort was requested while paused
|
||||
if (this.abort) {
|
||||
break
|
||||
}
|
||||
}
|
||||
|
||||
const chunk = item.value
|
||||
item = await iterator.next()
|
||||
if (!chunk) {
|
||||
|
|
|
|||
|
|
@ -2661,6 +2661,9 @@ export class ClineProvider
|
|||
// Set the task as paused
|
||||
task.isPaused = true
|
||||
|
||||
// Emit pause event for tracking
|
||||
task.emit(RooCodeEventName.TaskPaused, task.taskId)
|
||||
|
||||
// Update the UI to reflect the paused state
|
||||
await this.postStateToWebview()
|
||||
}
|
||||
|
|
@ -2676,6 +2679,9 @@ export class ClineProvider
|
|||
// Set the task as not paused
|
||||
task.isPaused = false
|
||||
|
||||
// Emit resume event for tracking
|
||||
task.emit(RooCodeEventName.TaskUnpaused, task.taskId)
|
||||
|
||||
// Update the UI to reflect the resumed state
|
||||
await this.postStateToWebview()
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue