mirror of
https://github.com/pacnpal/Roo-Code.git
synced 2025-12-21 04:41:16 -05:00
Remove unnecessary trailing resume messages
This commit is contained in:
@@ -24,6 +24,7 @@ import { getApiMetrics } from "./shared/getApiMetrics"
|
|||||||
import { HistoryItem } from "./shared/HistoryItem"
|
import { HistoryItem } from "./shared/HistoryItem"
|
||||||
import { combineApiRequests } from "./shared/combineApiRequests"
|
import { combineApiRequests } from "./shared/combineApiRequests"
|
||||||
import { combineCommandSequences } from "./shared/combineCommandSequences"
|
import { combineCommandSequences } from "./shared/combineCommandSequences"
|
||||||
|
import { findLastIndex } from "./utils"
|
||||||
|
|
||||||
const SYSTEM_PROMPT =
|
const SYSTEM_PROMPT =
|
||||||
() => `You are Claude Dev, a highly skilled software developer with extensive knowledge in many programming languages, frameworks, design patterns, and best practices.
|
() => `You are Claude Dev, a highly skilled software developer with extensive knowledge in many programming languages, frameworks, design patterns, and best practices.
|
||||||
@@ -452,7 +453,8 @@ export class ClaudeDev {
|
|||||||
|
|
||||||
private async resumeTaskFromHistory() {
|
private async resumeTaskFromHistory() {
|
||||||
const modifiedClaudeMessages = await this.getSavedClaudeMessages()
|
const modifiedClaudeMessages = await this.getSavedClaudeMessages()
|
||||||
// need to modify claude messages for good ux, i.e. if the last message is an api_request_started, then remove it otherwise the user will think the request is still loading
|
|
||||||
|
// Need to modify claude messages for good ux, i.e. if the last message is an api_request_started, then remove it otherwise the user will think the request is still loading
|
||||||
const lastApiReqStartedIndex = modifiedClaudeMessages.reduce(
|
const lastApiReqStartedIndex = modifiedClaudeMessages.reduce(
|
||||||
(lastIndex, m, index) => (m.type === "say" && m.say === "api_req_started" ? index : lastIndex),
|
(lastIndex, m, index) => (m.type === "say" && m.say === "api_req_started" ? index : lastIndex),
|
||||||
-1
|
-1
|
||||||
@@ -464,6 +466,16 @@ export class ClaudeDev {
|
|||||||
if (lastApiReqStartedIndex > lastApiReqFinishedIndex && lastApiReqStartedIndex !== -1) {
|
if (lastApiReqStartedIndex > lastApiReqFinishedIndex && lastApiReqStartedIndex !== -1) {
|
||||||
modifiedClaudeMessages.splice(lastApiReqStartedIndex, 1)
|
modifiedClaudeMessages.splice(lastApiReqStartedIndex, 1)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Remove any resume messages that may have been added before
|
||||||
|
const lastRelevantMessageIndex = findLastIndex(
|
||||||
|
modifiedClaudeMessages,
|
||||||
|
(m) => !(m.ask === "resume_task" || m.ask === "resume_completed_task")
|
||||||
|
)
|
||||||
|
if (lastRelevantMessageIndex !== -1) {
|
||||||
|
modifiedClaudeMessages.splice(lastRelevantMessageIndex + 1)
|
||||||
|
}
|
||||||
|
|
||||||
await this.overwriteClaudeMessages(modifiedClaudeMessages)
|
await this.overwriteClaudeMessages(modifiedClaudeMessages)
|
||||||
this.claudeMessages = await this.getSavedClaudeMessages()
|
this.claudeMessages = await this.getSavedClaudeMessages()
|
||||||
|
|
||||||
|
|||||||
17
src/utils/array-helpers.ts
Normal file
17
src/utils/array-helpers.ts
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
/**
|
||||||
|
* Returns the index of the last element in the array where predicate is true, and -1
|
||||||
|
* otherwise.
|
||||||
|
* @param array The source array to search in
|
||||||
|
* @param predicate find calls predicate once for each element of the array, in descending
|
||||||
|
* order, until it finds one where predicate returns true. If such an element is found,
|
||||||
|
* findLastIndex immediately returns that element index. Otherwise, findLastIndex returns -1.
|
||||||
|
*/
|
||||||
|
export function findLastIndex<T>(array: Array<T>, predicate: (value: T, index: number, obj: T[]) => boolean): number {
|
||||||
|
let l = array.length
|
||||||
|
while (l--) {
|
||||||
|
if (predicate(array[l], l, array)) {
|
||||||
|
return l
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return -1
|
||||||
|
}
|
||||||
@@ -2,3 +2,4 @@ export * from "./getNonce"
|
|||||||
export * from "./getUri"
|
export * from "./getUri"
|
||||||
export * from "./process-images"
|
export * from "./process-images"
|
||||||
export * from "./export-markdown"
|
export * from "./export-markdown"
|
||||||
|
export * from "./array-helpers"
|
||||||
|
|||||||
Reference in New Issue
Block a user