test(ai): refresh responses and codex e2e coverage closes #3576

This commit is contained in:
Mario Zechner
2026-04-23 21:20:23 +02:00
parent 3fb2d11ce5
commit 535fdcea2c
2 changed files with 12 additions and 8 deletions

View File

@@ -9,6 +9,7 @@
### Fixed
- Fixed `openai-completions` streamed tool-call assembly to coalesce deltas by stable tool index when OpenAI-compatible gateways mutate tool call IDs mid-stream, preventing malformed Kimi K2.6/OpenCode tool streams from splitting one call into multiple bogus tool calls ([#3576](https://github.com/badlogic/pi-mono/issues/3576))
- Fixed `packages/ai` E2E coverage to use currently supported OpenAI Responses and OpenAI Codex models, and updated the Bedrock adaptive-thinking payload expectation to match the current `display: "summarized"` shape.
- Fixed built-in `kimi-coding` model generation to attach `User-Agent: KimiCLI/1.5` to all generated Kimi models, overriding the Anthropic SDK default UA so direct Kimi Coding requests use the provider's expected client identity ([#3586](https://github.com/badlogic/pi-mono/issues/3586))
## [0.69.0] - 2026-04-22

View File

@@ -447,8 +447,8 @@ describe("Generate E2E Tests", () => {
});
});
describe.skipIf(!process.env.OPENAI_API_KEY)("OpenAI Responses Provider (gpt-5-mini)", () => {
const llm = getModel("openai", "gpt-5-mini");
describe.skipIf(!process.env.OPENAI_API_KEY)("OpenAI Responses Provider (gpt-5.4)", () => {
const llm = getModel("openai", "gpt-5.4");
it("should complete basic text generation", { retry: 3 }, async () => {
await basicTextGeneration(llm);
@@ -1120,8 +1120,8 @@ describe("Generate E2E Tests", () => {
});
});
describe("OpenAI Codex Provider (gpt-5.3-codex)", () => {
const llm = getModel("openai-codex", "gpt-5.3-codex");
describe("OpenAI Codex Provider (gpt-5.5)", () => {
const llm = getModel("openai-codex", "gpt-5.5");
it.skipIf(!openaiCodexToken)("should complete basic text generation", { retry: 3 }, async () => {
await basicTextGeneration(llm, { apiKey: openaiCodexToken });
@@ -1148,8 +1148,8 @@ describe("Generate E2E Tests", () => {
});
});
describe("OpenAI Codex Provider (gpt-5.3-codex via WebSocket)", () => {
const llm = getModel("openai-codex", "gpt-5.3-codex");
describe("OpenAI Codex Provider (gpt-5.5 via WebSocket)", () => {
const llm = getModel("openai-codex", "gpt-5.5");
const wsOptions = { apiKey: openaiCodexToken, transport: "websocket" as const };
it.skipIf(!openaiCodexToken)("should complete basic text generation", { retry: 3 }, async () => {
@@ -1237,13 +1237,16 @@ describe("Generate E2E Tests", () => {
const payload = capturedPayload as {
additionalModelRequestFields?: {
thinking?: { type?: string };
thinking?: { type?: string; display?: string };
output_config?: { effort?: string };
anthropic_beta?: string[];
};
};
expect(payload.additionalModelRequestFields?.thinking).toEqual({ type: "adaptive" });
expect(payload.additionalModelRequestFields?.thinking).toEqual({
type: "adaptive",
display: "summarized",
});
expect(payload.additionalModelRequestFields?.output_config).toEqual({ effort: "max" });
expect(payload.additionalModelRequestFields?.anthropic_beta).toBeUndefined();
});