> For the complete documentation index, see [llms.txt](https://docs.concurrence.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.concurrence.com/api-reference/change-logs.md).

# Change Logs

Change logs for the Concurrence API, Agent Forge, Web Platform, and SDK ecosystem.

Find product updates for the Platform and Classic APIs, Scribe, Developer Console, SDKs, and Agent Forge. Each entry explains the change and any action needed for an existing integration.

Package entries use published release versions and dates. Unnumbered entries follow product announcements or source changes; availability depends on the deployment and setup requirements in the linked guide. Older entries retain the behavior of their time.

## October 2026 <a href="#october-2026" id="october-2026"></a>

* **Platform:** advanced call metrics, tool performance, and production eval quality take `group_by=service_id` and return each service's results in `groups`; the analytics routes that filter by `service_id` refuse one that isn't a UUID; the six call analytics trends refuse a range of more than 2,200 buckets; the call and eval analytics routes return `503` with `Analytics unavailable` when they can't read their data; a `gpt_realtime` call whose realtime session doesn't open takes the safe exit; a `multilingual` `gpt_realtime` agent's callers are transcribed expecting English or Spanish; and the outbound call route refuses `system_prompt`, `goal`, and `outbound_task_entity_id` when the use case's service runs on `gpt_realtime`.
* **Platform:** runs and conversation detail report the runtime, versions, and models a run started with; platform-managed voice turns carry their place in the recording, with a timeline; saved hops carry `exit_condition`; prompt logs carry `turn_id`; the endpoint test reports `over_text_budget`; a `field` or `graphql` write whose 2xx body doesn't hold what its rule reads has an unknown outcome; external integration changes need a caller with a person entity; `gpt_realtime` needs a one-state Context Graph, is recorded like platform-managed calls, and takes the safe exit when its session setup is refused or unanswered; a tool call with no recorded result reports `succeeded: null`, and `silence_ratio` is null.
* **Platform:** a turn on a conversation that has ended, or that an operator has taken over, returns `409` naming its status, and a close records `completion_reason` `closed`; a `GET` endpoint that declares a write needs approval under `approval_policy: writes`; a platform-managed outbound call opens once the callee answers, and a retry with the same key returns a placed call instead of dialing again; a write answered with a 2xx succeeds or has an unknown outcome, and the endpoint test reports `outcome`; realtime transcription languages are checked on save; a simulated conversation whose agent turn fails scores 0.
* **Platform:** integration endpoints and skills can declare a `message` write, so on text and platform-managed voice a ticketing or handoff call lets the agent take a message and confirm it.
* **Hosts and SDK:** the `*.platform.amigo.ai` hosts no longer resolve; use the `concurrence.com` hosts. Platform SDK 0.113.1 defaults to them and adds `identityBaseUrl`; 0.114.1 yields the new `state_transition` and `state` stream events.
* **Platform:** streamed text turns end with `state_transition` and `state` frames before `done`; a text tool call that returns an error, such as a vendor's 4xx or 5xx, counts as failed; conversation text events moved to the conversation-scoped event stream; runs list iMessage and WhatsApp, and `channel=text` is removed; the gap-scanner settings operations are removed.
* **Voice and text:** a verified caller's record reads stay on their own record or a household member's that names them; every call opens with an AI and recording notice; a self-harm message on text gets the crisis-line script; every text reply passes a reply check before it is sent; when nothing can connect a caller to a person, the agent tells them how to reach the team; `gpt_realtime` gets crisis guidance and silence check-ins with hangup.
* **Platform:** integration endpoints declare their writes; skill result schemas, custom `ai_query` metrics, and production eval metric keys are validated on save.
* **Voice:** patient context loads only after the caller's name and date of birth match one record; dynamic transfers dial only `approved_destinations`; calls with no TTS setting speak ElevenLabs `eleven_v4_turbo`; Sonic 3 and 3.5 pins speak Sonic 3.6; a crisis resource, a spoken-reply check, and a recognizer failover are on for every service.
* **Voice:** the observer and test-call WebSockets take credentials only in `Sec-WebSocket-Protocol`; a workspace can hold 5 test calls at once; the agent uses the caller's timezone, with a new workspace `timezone` setting.
* **Testing:** simulations, test caller numbers, and test credentials run tools in simulation mode; simulation pass rates leave out grading errors; simulation run and case lists page and filter on the server; judge verdicts drop `score_label`.
* **Platform:** data-source sync, the gap-scanner preview and scan, and sync-health fields are removed; runs add `search` and a `dormant` status, and voice runs use the call start time; conversations add a paged turns read; the event stream can scope to one conversation; `422` errors no longer echo submitted values; integration URLs must be public HTTPS and redirects are not followed.
* **Analytics:** quality metrics judge transcripts; the metric list returns one latest row per series and pages with `continuation_token`; Platform Claude calls run on the 5.5 models.
* **Platform:** a model rejection fails a text turn at once with a non-retryable `502`; engage tool turns on GPT-5.4 and later run at `reasoning_effort` `none`, and saving a higher engage effort for those models returns `422`.
* **Platform:** integration endpoint `input_schema` follows the tool-schema subset; function and data-query invoke argument errors return `422`; the world entity list works without `entity_type`.
* **Voice:** retired Claude pins on skills and model preferences run on the 5.5 models; realtime and realtime transcription model allowlists drop retired ids with `422`; the service `tts_model` field is removed; `gpt_realtime` calls record voice minutes and call count.
* **Platform:** streamed turns and the session WebSocket send keepalive pings every 15 seconds; the FHIR bundle builder is removed.
* **Platform:** a close ends every in-flight text turn, and streamed turns end with typed terminal frames.
* **Voice:** ElevenLabs defaults to `eleven_v4_turbo`, retired ElevenLabs pins move to it, and only `stability` applies on it; OpenAI speech recognition uses `gpt-transcribe`.
* **Voice:** retired Cartesia models speak Sonic 3.6; live call context validation errors no longer echo submitted values.
* **Voice:** a trusted backend can set verified context on a live call for context-bound tools, and voice tools bound to a declared but unset key refuse to run until it is set. Sonic 3.6 is the default Cartesia model. On the realtime runtime, bindings resolve across the whole graph and an interrupted transfer still runs.
* **Voice:** workspace API keys can't inject session events directly; use the Platform session injection operation. The `/test-call` WebSocket always runs in the credential's workspace.
* **Platform:** closing a conversation ends its streamed turn with a non-retryable `error` frame; outbound call idempotency is claimed before dialing; runs filter by service; workspace queries pass colons inside string literals through as text.
* **Platform:** streamed text turns emit `token` events on existing conversations. Render them as a preview and commit the final `message`.
* **Channels:** email use cases select an `inbound_mode`, replacing `accepts_cold_inbound`. The SMS registered-content check reads recent thread context.
* **Scribe:** writeback status fields, carried values on note reads, provider edits that take precedence over carried values, and session create requires `timezone`.
* **Console:** the All runs table filters by service; magic-link sign-in waits for a click; the connector pages are removed.

Browse the dated [API updates](/api-reference/change-logs/amigo-api.md#october-18-2026-per-service-analytics) and [Console updates](/api-reference/change-logs/web-platform.md#developer-console).

## September 2026 <a href="#september-27-2026-current-documentation-review" id="september-27-2026-current-documentation-review"></a>

* **Platform:** context aliases, companion-skill bindings, service-scoped memory, intake-source deletion, and intake document tags.
* **Channels:** voice forwarding allowlists, iMessage send and opt-out controls, and participant audio handling.
* **Scribe:** structured note edits with version checks and retry guidance during maintenance.
* **Console and testing:** Evaluate navigation, managed channel request forms, reusable voice-test personas, clearer run details, a Beta Usage page, conversation context fields in the text Playground, and voice settings limited to Cartesia and ElevenLabs.

Browse the dated [API updates](/api-reference/change-logs/amigo-api.md#change-history) and [Console and voice-testing updates](/api-reference/change-logs/web-platform.md#developer-console). For migration steps, see [Current Upgrade Guidance](/api-reference/change-logs/upgrade-guide.md).

## September 19, 2026: Concurrence Rebrand <a href="#september-19-2026-concurrence-documentation-rebrand" id="september-19-2026-concurrence-documentation-rebrand"></a>

Amigo is now **Concurrence**. The documentation uses the new identity at `docs.concurrence.com`; existing page paths and bookmarks continue to work.

Keep using the API endpoints, credentials, package names, imports, environment variables, and wire identifiers specified by your integration. The name change does not rename those contracts. See [Rebrand and Compatibility](https://docs.concurrence.com/reference/concurrence-rebrand).

## Maintaining an Integration

Start with [Current Upgrade Guidance](/api-reference/change-logs/upgrade-guide.md) to identify changes that affect your API, package, and workflow. Follow the [Developer Guide](https://docs.concurrence.com/developer-guide) for current setup and migration steps, and use the [API Reference](/api-reference/readme.md) for operation schemas. The API and web changelogs link to older releases in their archives.

## Current SDK Packages

Package registry snapshot checked on **October 18, 2026 (UTC)**. Recheck the linked registries when selecting an upgrade; SDK source can include changes that are not yet in a published package.

| SDK                     | Package                                                                                                        | Published version |
| ----------------------- | -------------------------------------------------------------------------------------------------------------- | ----------------- |
| Platform TypeScript SDK | [`@amigo-ai/platform-sdk`](https://www.npmjs.com/package/@amigo-ai/platform-sdk)                               | `0.115.0`         |
| Classic TypeScript SDK  | [`@amigo-ai/sdk`](https://www.npmjs.com/package/@amigo-ai/sdk)                                                 | `2.1.0`           |
| Classic Python SDK      | [`amigo-sdk`](https://pypi.org/project/amigo-sdk/)                                                             | `2.2.0`           |
| Scribe TypeScript SDK   | [`@concurrence-hq/scribe-typescript-sdk`](https://www.npmjs.com/package/@concurrence-hq/scribe-typescript-sdk) | `1.5.1`           |

{% hint style="warning" %}
The npm `latest` tag for `@amigo-ai/sdk` points to `2.1.0`; the `1.1.x` versions remain deprecated. Review the [September compatibility changes](/api-reference/change-logs/sdk-ecosystem.md#september-2026-compatibility-releases), pin the version you have tested, and keep Classic packages separate from `@amigo-ai/platform-sdk`.
{% endhint %}

Platform `0.115.0` is published on npm. Its types match the live schema for what ran a run, voice turn positions and the timeline, `exit_condition` on hops, prompt log `turn_id`, and the endpoint test's `outcome`, `over_text_budget`, and `text_budget_ms`, and they type `succeeded` on conversation tool calls as `boolean | null`, so code that assigns it to a `boolean` needs a null check. Since 0.113.1 the package defaults to `https://platform.api-us.concurrence.com` for REST and `https://identity.api-us.concurrence.com` for `client.tokens` and device-code login, because the `*.platform.amigo.ai` hosts don't resolve. A client that sets `baseUrl` sends `client.tokens` requests there too, so set `identityBaseUrl` with it. Since 0.114.1, `streamTurn()` yields `artifact`, `state_transition`, and `state` events. 0.112.0 removed `client.workspaceDatabase`, `client.desktopSessions`, `client.tasks`, and `client.settings.gapScanner`; 0.111.0 removed the data-source sync and gap-scanner preview and scan methods, whose operations the Platform API removed. Upgrading from 0.108.x also picks up the breaking type changes in 0.109.1, including the removal of `service_id` from outbound call requests; see the [October package releases](/api-reference/change-logs/sdk-ecosystem.md#october-2026-package-releases). The Scribe SDK publishes as `@concurrence-hq/scribe-typescript-sdk`; `@amigo-ai/scribe-typescript-sdk` is deprecated at 0.15.1.

The experimental [Forge MCP tool](https://github.com/concurrence-hq/forge-mcp) is published separately as [`@amigo-ai/forge-tools` 0.1.14](https://www.npmjs.com/package/@amigo-ai/forge-tools). It uses Classic organization credentials and is not the Platform SDK or the Agent Forge CLI. See the [September package maintenance notes](/api-reference/change-logs/sdk-ecosystem.md#september-2026-package-maintenance).

## Changelog Areas

| Changelog                                                    | Coverage                                                   | Latest numbered release                 |
| ------------------------------------------------------------ | ---------------------------------------------------------- | --------------------------------------- |
| [Concurrence API](/api-reference/change-logs/amigo-api.md)   | Classic, Platform, and Scribe APIs                         | `v0.9.557`                              |
| [Web Platform](/api-reference/change-logs/web-platform.md)   | Developer Console, Admin Portal, and managed voice testing | `v2.201.96`                             |
| [SDK Ecosystem](/api-reference/change-logs/sdk-ecosystem.md) | TypeScript and Python packages                             | Per package; see the snapshot above     |
| [Agent Forge CLI](/api-reference/change-logs/agent-forge.md) | CLI and configuration management                           | `v0.1.74`, published September 15, 2026 |

## Versioning Policy

Numbered entries use the version published for that product. Each SDK package and Agent Forge has its own version track; web releases use sequential numbering. Review the migration notes for each upgrade, including breaking changes indicated by [Semantic Versioning](https://semver.org/).

Newer unnumbered API and web entries can appear after the latest numbered release listed above. Their announcement or source-change dates do not establish rollout to every deployment; follow the linked guide's availability and setup requirements.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.concurrence.com/api-reference/change-logs.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
