Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 18 additions & 0 deletions content/guides/changelog.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,24 @@ title: What's New
description: Track CALL-E Developer API and SDK product updates.
---

## September 14, 2026

**Updated concurrent call limits:** The shared number pool supports 1 simultaneous
call, purchased numbers support 10 simultaneous calls, and SIP integrations have
no CALL-E-imposed concurrent call limit. These limits refer to calls active at the
same time, not call initiation rate (calls per second, or CPS).

**Updated billing model:** Calls are now billed in 10-second increments, with total
cost consisting of a Call fee and a Success fee. The Call fee covers actual carrier
charges and model resource usage, including a small preparation and pre-connection
model cost even when a call is not connected.

The Success fee applies only when the task's defined business success criteria are
met. A connected call, an answered call, or a completed conversation alone does not
qualify as success. For example, a reservation task succeeds only when the requested
booking is confirmed—not simply when someone answers or discusses availability.
Call fees may still apply when those success criteria are not met.

## September 10, 2026

**Windows-compatible agent commands:** Updated agent integrations now run correctly
Expand Down
2 changes: 1 addition & 1 deletion src/regions.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ export function extractRegions(readme) {
!rows ||
rows.length < 3 ||
rows[0] !==
"| Country | Country Code | Calling Code | Languages | Line Region |" ||
"| Country | Country Code | Calling Code | Languages | Default Line |" ||
!/^\|(?:[ \t]*:?-+:?[ \t]*\|){5}$/.test(rows[1]) ||
rows.some((row) => row.split("|").length !== 7) ||
rows.slice(2).some((row) =>
Expand Down
5 changes: 3 additions & 2 deletions tests/docs-site.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ test("serves prerendered guides on clean URLs", async ({ page, request }) => {

const regionSection = `Use these country codes with recipient settings.

| Country | Country Code | Calling Code | Languages | Line Region |
| Country | Country Code | Calling Code | Languages | Default Line |
| --- | --- | --- | --- | --- |
| Updated test destination | ZZ | +999 | Test language | International |

Expand Down Expand Up @@ -95,6 +95,7 @@ test("refreshes region coverage without rebuilding the docs", async ({ page }) =
body: regionsReadme,
}));
await page.goto("/regions");
await expect(page.getByRole("columnheader", { name: "Default Line" })).toBeVisible();
await expect(page.getByRole("cell", { name: "Updated test destination" })).toBeVisible();
await expect(page.getByRole("cell", { name: "Test language" })).toBeVisible();
await expect(page.getByText("Unrelated examples.")).toHaveCount(0);
Expand All @@ -112,7 +113,7 @@ test("refreshes region coverage without rebuilding the docs", async ({ page }) =

test("retains a readable region snapshot when refresh fails", async ({ page, request }) => {
await page.setViewportSize({ width: 390, height: 844 });
const tableHeader = "| Country | Country Code | Calling Code | Languages | Line Region |";
const tableHeader = "| Country | Country Code | Calling Code | Languages | Default Line |";
const html = await request.get("/regions");
expect(await html.text()).toContain("<table");
const markdown = await request.get("/regions.md");
Expand Down