Skip to content

Commit 4f71fa4

Browse files
committed
fix: preserve prompt-cache prefix for side conversation forks
Move the side-conversation boundary from the system prompt into the first fork-owned user turn, route OpenAI promptCacheKey through the parent session id, and add a runtime-host regression test that compares parent and fork provider request bodies. Fixes #4540 Generated-by: Cursor
1 parent 5935375 commit 4f71fa4

2 files changed

Lines changed: 482 additions & 4 deletions

File tree

packages/core/src/side-conversation.ts

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -78,9 +78,10 @@ export interface SideConversationModelMessage {
7878
content: unknown;
7979
}
8080

81-
export function applySideConversationUserMessageBoundary<
82-
T extends SideConversationModelMessage,
83-
>(messages: readonly T[], input: { inheritedPrefixLength: number; labels?: readonly string[] }): T[] {
81+
export function applySideConversationUserMessageBoundary<T extends SideConversationModelMessage>(
82+
messages: readonly T[],
83+
input: { inheritedPrefixLength: number; labels?: readonly string[] },
84+
): T[] {
8485
if (!isSideConversationSession(input.labels)) {
8586
return [...messages];
8687
}
@@ -93,7 +94,9 @@ export function applySideConversationUserMessageBoundary<
9394
if (message?.role !== 'user') {
9495
continue;
9596
}
96-
if (userContentIncludesSideConversationBoundary(message.content as SideConversationUserContent)) {
97+
if (
98+
userContentIncludesSideConversationBoundary(message.content as SideConversationUserContent)
99+
) {
97100
return [...messages];
98101
}
99102
const next = [...messages];

0 commit comments

Comments
 (0)