mirror of
https://github.com/RooVetGit/Roo-Code.git
synced 2026-09-06 08:18:39 +00:00
fix: Address PR review feedback - fix stale resume IDs, update model description, remove duplicate test, revert gitignore
This commit is contained in:
parent
c6b7681622
commit
e118846aa5
4 changed files with 17 additions and 43 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
|
@ -49,7 +49,6 @@ logs
|
|||
|
||||
# Qdrant
|
||||
qdrant_storage/
|
||||
|
||||
# Architect plans
|
||||
plans/
|
||||
|
||||
|
|
|
|||
|
|
@ -57,7 +57,7 @@ export const openAiNativeModels = {
|
|||
inputPrice: 15.0,
|
||||
outputPrice: 120.0,
|
||||
description:
|
||||
"GPT-5 Pro: a slow, reasoning-focused model built to tackle tough problems. Requests can take several minutes to finish. Responses API only; no streaming, so it may appear stuck until the reply is ready.",
|
||||
"GPT-5 Pro: A slow, reasoning-focused model for complex problems. Uses background mode with resilient streaming - requests may take several minutes with automatic recovery if connection drops.",
|
||||
supportsVerbosity: true,
|
||||
supportsTemperature: false,
|
||||
backgroundMode: true,
|
||||
|
|
|
|||
|
|
@ -58,6 +58,9 @@ export class OpenAiNativeHandler extends BaseProvider implements SingleCompletio
|
|||
private currentRequestIsBackground?: boolean
|
||||
// Cutoff sequence for filtering stale events during resume
|
||||
private resumeCutoffSequence?: number
|
||||
// Per-request tracking to prevent stale resume attempts
|
||||
private currentRequestResponseId?: string
|
||||
private currentRequestSequenceNumber?: number
|
||||
|
||||
// Event types handled by the shared event processor to avoid duplication
|
||||
private readonly coreHandledEventTypes = new Set<string>([
|
||||
|
|
@ -357,12 +360,15 @@ export class OpenAiNativeHandler extends BaseProvider implements SingleCompletio
|
|||
|
||||
// Annotate if this request uses background mode (used for status chunks)
|
||||
this.currentRequestIsBackground = !!requestBody?.background
|
||||
// Reset per-request tracking to prevent stale values from previous requests
|
||||
this.currentRequestResponseId = undefined
|
||||
this.currentRequestSequenceNumber = undefined
|
||||
|
||||
const canAttemptResume = () =>
|
||||
this.currentRequestIsBackground &&
|
||||
(this.options.openAiNativeBackgroundAutoResume ?? true) &&
|
||||
!!this.lastResponseId &&
|
||||
typeof this.lastSequenceNumber === "number"
|
||||
!!this.currentRequestResponseId &&
|
||||
typeof this.currentRequestSequenceNumber === "number"
|
||||
|
||||
try {
|
||||
// Use the official SDK
|
||||
|
|
@ -395,8 +401,8 @@ export class OpenAiNativeHandler extends BaseProvider implements SingleCompletio
|
|||
// Stream dropped mid-flight; attempt resume for background requests
|
||||
if (canAttemptResume()) {
|
||||
for await (const chunk of this.attemptResumeOrPoll(
|
||||
this.lastResponseId!,
|
||||
this.lastSequenceNumber!,
|
||||
this.currentRequestResponseId!,
|
||||
this.currentRequestSequenceNumber!,
|
||||
model,
|
||||
)) {
|
||||
yield chunk
|
||||
|
|
@ -420,8 +426,8 @@ export class OpenAiNativeHandler extends BaseProvider implements SingleCompletio
|
|||
}
|
||||
if (canAttemptResume()) {
|
||||
for await (const chunk of this.attemptResumeOrPoll(
|
||||
this.lastResponseId!,
|
||||
this.lastSequenceNumber!,
|
||||
this.currentRequestResponseId!,
|
||||
this.currentRequestSequenceNumber!,
|
||||
model,
|
||||
)) {
|
||||
yield chunk
|
||||
|
|
@ -684,6 +690,8 @@ export class OpenAiNativeHandler extends BaseProvider implements SingleCompletio
|
|||
// Record sequence number for cursor tracking
|
||||
if (typeof parsed?.sequence_number === "number") {
|
||||
this.lastSequenceNumber = parsed.sequence_number
|
||||
// Also track for per-request resume capability
|
||||
this.currentRequestSequenceNumber = parsed.sequence_number
|
||||
}
|
||||
|
||||
// Capture resolved service tier if present
|
||||
|
|
@ -1384,6 +1392,8 @@ export class OpenAiNativeHandler extends BaseProvider implements SingleCompletio
|
|||
// Record sequence number for cursor tracking
|
||||
if (typeof event?.sequence_number === "number") {
|
||||
this.lastSequenceNumber = event.sequence_number
|
||||
// Also track for per-request resume capability
|
||||
this.currentRequestSequenceNumber = event.sequence_number
|
||||
}
|
||||
|
||||
// Map lifecycle events to status chunks
|
||||
|
|
|
|||
|
|
@ -1,35 +0,0 @@
|
|||
import { labelForBackgroundStatus } from "@src/utils/backgroundStatus"
|
||||
|
||||
describe("labelForBackgroundStatus()", () => {
|
||||
it("maps queued", () => {
|
||||
expect(labelForBackgroundStatus("queued")).toBe("API Request: background mode (queued)…")
|
||||
})
|
||||
|
||||
it("maps in_progress", () => {
|
||||
expect(labelForBackgroundStatus("in_progress")).toBe("API Request: background mode (in progress)…")
|
||||
})
|
||||
|
||||
it("maps reconnecting", () => {
|
||||
expect(labelForBackgroundStatus("reconnecting")).toBe("API Request: background mode (reconnecting…)")
|
||||
})
|
||||
|
||||
it("maps polling", () => {
|
||||
expect(labelForBackgroundStatus("polling")).toBe("API Request: background mode (polling…)")
|
||||
})
|
||||
|
||||
it("maps completed", () => {
|
||||
expect(labelForBackgroundStatus("completed")).toBe("API Request: background mode (completed)")
|
||||
})
|
||||
|
||||
it("maps failed", () => {
|
||||
expect(labelForBackgroundStatus("failed")).toBe("API Request: background mode (failed)")
|
||||
})
|
||||
|
||||
it("maps canceled", () => {
|
||||
expect(labelForBackgroundStatus("canceled")).toBe("API Request: background mode (canceled)")
|
||||
})
|
||||
|
||||
it("maps undefined to generic label", () => {
|
||||
expect(labelForBackgroundStatus(undefined)).toBe("API Request: background mode")
|
||||
})
|
||||
})
|
||||
Loading…
Add table
Reference in a new issue