This commit is contained in:
@@ -8,6 +8,7 @@
|
||||
|
||||
### Fixed
|
||||
|
||||
- Fixed compaction and branch-summary requests to use fresh routing session IDs with prompt caching disabled where supported.
|
||||
- Fixed explicit self-updates when `PI_SKIP_VERSION_CHECK` is set ([#6977](https://github.com/earendil-works/pi/issues/6977)).
|
||||
|
||||
## [0.81.1] - 2026-07-21
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
*/
|
||||
|
||||
import type { AgentMessage, StreamFn, ThinkingLevel } from "@earendil-works/pi-agent-core";
|
||||
import { contentText, type RetryCallbacks, type RetryPolicy, retryAssistantCall } from "@earendil-works/pi-ai";
|
||||
import { contentText, type RetryCallbacks, type RetryPolicy, retryAssistantCall, uuidv7 } from "@earendil-works/pi-ai";
|
||||
import type { AssistantMessage, Context, Model, SimpleStreamOptions, Usage } from "@earendil-works/pi-ai/compat";
|
||||
import { completeSimple } from "@earendil-works/pi-ai/compat";
|
||||
import { convertToLlm } from "../messages.ts";
|
||||
@@ -567,9 +567,17 @@ export async function completeSummarization(
|
||||
retry?: RetryPolicy,
|
||||
callbacks?: RetryCallbacks,
|
||||
): Promise<AssistantMessage> {
|
||||
// Summaries are standalone requests, so isolate routing and avoid cache writes that cannot be reused.
|
||||
const requestOptions: SimpleStreamOptions = {
|
||||
...options,
|
||||
cacheRetention: "none",
|
||||
sessionId: uuidv7(),
|
||||
};
|
||||
const produce = async (): Promise<AssistantMessage> =>
|
||||
streamFn ? (await streamFn(model, context, options)).result() : completeSimple(model, context, options);
|
||||
return retryAssistantCall(produce, retry, options.signal, callbacks);
|
||||
streamFn
|
||||
? (await streamFn(model, context, requestOptions)).result()
|
||||
: completeSimple(model, context, requestOptions);
|
||||
return retryAssistantCall(produce, retry, requestOptions.signal, callbacks);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -90,6 +90,18 @@ describe("generateSummary reasoning options", () => {
|
||||
);
|
||||
});
|
||||
|
||||
it("uses fresh routing sessions without prompt caching", async () => {
|
||||
await generateSummary(messages, createModel(false), 2000, "test-key");
|
||||
await generateSummary(messages, createModel(false), 2000, "test-key");
|
||||
|
||||
const requestOptions = completeSimpleMock.mock.calls.map((call) => call[2]);
|
||||
expect(requestOptions).toHaveLength(2);
|
||||
expect(requestOptions.every((options) => options?.cacheRetention === "none")).toBe(true);
|
||||
|
||||
const sessionIds = requestOptions.map((options) => options?.sessionId);
|
||||
expect(sessionIds[0]).not.toBe(sessionIds[1]);
|
||||
});
|
||||
|
||||
it("does not set reasoning when thinking is off", async () => {
|
||||
await generateSummary(
|
||||
messages,
|
||||
|
||||
Reference in New Issue
Block a user