test(ai): refresh responses and codex e2e coverage closes #3576
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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();
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user