> ## Documentation Index
> Fetch the complete documentation index at: https://docs.goguava.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Release Notes

> What's new in Guava.

<Update label="September 22, 2026">
  Guava 0.45.0 brings speech speed control to the TypeScript SDK and adds agent-side DTMF reporting to both Python and TypeScript SDKs.

  ### New Features

  * The TypeScript SDK now supports [`speechSpeed`](/sdk-reference/agent), letting developers control how fast the agent speaks using the same presets available in the Python SDK.
  * The Python and TypeScript SDKs now expose [`on_agent_dtmf` / `onAgentDtmf`](/sdk-reference/on-agent-dtmf), a new callback that fires when the agent presses DTMF digits. This is complementary to the existing `on_caller_dtmf` / `onCallerDtmf`, which fires when the caller presses digits.
  * Campaign calls now report whether a human answered, via a new `pickup` field on the `BotSessionEnded` event (`false` when the call was never picked up by a person).

  ### Improvements

  * The `guava` CLI now only prompts for confirmation on destructive operations, skipping prompts for reversible actions.
  * The dashboard now stays on the current page when switching between organizations.

  ### Bug Fixes

  * The CLI now returns an error when given an invalid `--target` path, rather than silently falling back to the current directory.
</Update>

<Update label="September 15, 2026">
  Guava 0.44.0 fixes two bugs: TLS certificate bundling in the Python SDK, and email address normalization during account sign-up via an invitation.

  ### Bug Fixes

  * The Python SDK now bundles `certifi` CA certificates and uses them for TLS verification, fixing connection failures on systems without a usable system certificate store.
  * Email addresses are now normalized when users accept an invitation to Guava, preventing errors that could occur when addresses differed only by letter case or surrounding whitespace.
</Update>

<Update label="September 8, 2026">
  Guava 0.42.0 introduces speech speed control in the Python SDK, reduces noise in the logs for CLI-generated starter projects, and adds a `datetime` field type for structured date and time collection.

  ### New Features

  * Speech speed control is now available in the Python SDK via the `speech_speed` parameter, letting developers adjust how quickly the agent speaks.
  * CLI-generated starter projects now emit fewer logs by default, reducing noise in newly created inbound and outbound projects.
  * A new `datetime` field type is available for collecting dates and times, supported in both the Python and TypeScript SDKs.

  ### Bug Fixes

  * Fixed an issue that caused TypeScript deployments to hang.
  * Fixed a bug when moving stuck active contacts in campaigns.
</Update>

<Update label="September 1, 2026">
  Guava 0.41.0 brings an improved new-user onboarding experience, enables agents to react to failed outbound call connections (TypeScript SDK), and adds more detailed communication when scaffolding a project.

  ### New Features

  * [`guava create`](/cli-reference/cli-reference) now prompts to install dependencies for TypeScript projects.
  * The TypeScript SDK now supports [`onOutboundFailed`](/sdk-reference/agent), letting agents react when an outbound call fails to connect.

  ### Improvements

  * [`guava create`](/cli-reference/cli-reference) now shows clearer success output after scaffolding a project.
  * New users now see a card providing a direct link from the dashboard to the [Quickstart](/getting-started/quickstart).
  * Strengthened redirect validation in dashboard authentication and billing flows.

  ### Bug Fixes

  * Fixed a spurious 403 billing warning that could appear during `guava create`.
</Update>

<Update label="August 25, 2026">
  Guava 0.40.0 adds a dedicated `credit_card_number` field type for PCI-compliant and automatically-redacted card capture, and introduces SSML phoneme tags for fine-grained pronunciation control.

  ### New Features

  * A new `credit_card_number` field type is available for PCI-compliant card capture. Like `cvv`, it is treated as sensitive and automatically redacted from transcripts and audio recordings, and it supports DTMF entry.
  * SSML `<phoneme>` tags with IPA pronunciations are now supported, letting developers control the pronunciation of specific words.
</Update>

<Update label="August 18, 2026">
  Guava 0.39.0 adds TTS pronunciation directions (aliasing) to the Python and TypeScript SDKs, ships updated starter project templates, and introduces preview support for agent audio testing.

  ### New Features

  * The Python and TypeScript SDKs now support TTS pronunciation aliasing, allowing string replacements that indicate how your agent should pronounce specific words or phrases.
  * `guava create` now generates improved starter projects with better inbound templates for both Python and TypeScript. See the [CLI Reference](/cli-reference/cli-reference).
  * The Python SDK now supports agent audio testing with pre-recorded caller audio files and captured agent audio output.
  * The Guava WebRTC helper now accepts input and output WAV files, enabling scripted audio playback and capture for testing.

  ### Improvements

  * [Campaign](/guides/campaign) APIs now enforce stricter request validation across the CLI, REST API, and TypeScript SDK.

  ### Bug Fixes

  * Fixed an issue where agent-sent DTMF sequences could overlap when sent back-to-back.
  * Fixed a bug where a failed automatic login in the CLI could block the manual login flow.
  * Fixed campaign conversation date filters not being applied on the dashboard.
</Update>

<Update label="August 11, 2026">
  Guava 0.38.0 introduces immediate call transfers, brings campaign contact uploads to the dashboard, and adds functionality for testing pronunciation outside of live calls.

  ### New Features

  * Preview how a Guava agent will sound pronouncing a certain word or phrase using the `guava say` CLI command.
  * `call.immediate_transfer` is now available in the Python and TypeScript SDKs for transferring a call without waiting for agent turn completion.
  * Contacts can now be uploaded for [campaigns](/guides/campaign) directly from the dashboard.

  ### Improvements

  * [`guava deploy`](/cli-reference/cli-reference) now shows clearer progress messaging during deployments.

  ### Bug Fixes

  * Fixed a bug in the Python SDK where errors could be silently lost during call attachment.
  * Fixed an issue where conversation rows were not clickable in older versions of Safari.
  * Fixed the installation flow on the dashboard home page.
</Update>

<Update label="August 4, 2026">
  Guava 0.37.0 tightens CLI usability, adds `TestSession.id` to the SDK testing APIs, and improves the `on_escalate` handler with direct access to the triggering event.

  ### New Features

  * The `on_escalate` handler in the Guava Agent API now receives the triggering escalation event, making it possible to inspect event details directly from the handler. See the [Agent](/sdk-reference/agent) reference.
  * `TestSession.id` is now available in the Python and TypeScript SDK testing APIs.
  * `openai` is now an optional peer dependency in the TypeScript SDK and won't be automatically installed. If you're using the OpenAI helpers, you should add `openai` as a direct dependency to your project.
  * The TypeScript SDK runner now handles process signals for graceful shutdown.

  ### Improvements

  * `guava update` now names the target directory in its initialization prompt.
  * CLI command instructions and install scripts have been improved across all platforms.
  * Agents now reflect the caller's request back more accurately.
  * Dialog processing latency has been reduced.
  * CLI help output has been reordered for increased clarity.

  ### Bug Fixes

  * Fixed a crash that could occur during agent conversation processing.
</Update>

<Update label="July 28, 2026">
  Guava 0.36.0 brings TypeScript project support to the CLI and deployment pipeline, expands TypeScript SDK parity with campaign management and ported helpers, and introduces customizable WebRTC widgets with an interactive configurator.

  ### New Features

  * `guava create` now scaffolds Node.js/TypeScript projects in addition to Python, and the deployment pipeline transpiles TypeScript modules automatically so Node.js projects can be deployed directly.
  * A new `guava purge` command removes a deployment and cleans up its associated build artifacts.
  * [Campaign](/guides/campaign) management is now available in the TypeScript SDK.
  * DTMF sending via `call.sendDtmf` is now available in the TypeScript SDK.
  * Agents can now use DTMF input to fill numeric field types.
  * The [`IntentRecognizer`](/sdk-reference/intent-helpers), [`DatetimeFilter`](/sdk-reference/datetime-filter), and [`DocumentQA`](/sdk-reference/document-qa) helpers have been ported to the TypeScript SDK, along with the action item helper.
  * Customizable [WebRTC widgets](/guides/webrtc-widgets) are now supported, with an interactive widget configurator for generating embed codes.
  * The built-in health check server now distinguishes readiness from liveness probes and adds a `draining` stage for graceful shutdown.
  * The Python SDK core can now be imported without optional dependencies installed, making it easier to integrate into lightweight environments.

  ### Improvements

  * The Python SDK now uses the standard `typing_extensions.deprecated` annotation, surfacing deprecation warnings directly in editors and type checkers.

  ### Bug Fixes

  * Fixed a crash in the phone numbers dashboard that occurred when no numbers for an area code were available.
</Update>

<Update label="July 21, 2026">
  Guava 0.35.0 introduces PCI-compliant field handling, expands DTMF capabilities, adds built-in SDK health checks, and advances TypeScript SDK parity.

  ### New Features

  * `guava run` now supports TypeScript projects.
  * DTMF tones can now be sent mid-call from SDK code using `call.send_dtmf` (not to be confused with `set_agent_dtmf`, introduced for the Python SDK in 0.30.0 and added to the TypeScript SDK in this release — see below).
  * Both the Python and TypeScript SDKs now validate [field](/sdk-reference/field) values at configuration time, surfacing misconfigured parameters before a call starts.
  * Both the Python and TypeScript SDKs now expose a built-in health check HTTP server, simplifying readiness probes in containerized deployments.
  * A new `cvv` field type is available for PCI-compliant use cases. Parsed CVV values are handled in accordance with PCI DSS requirements, including redaction from audio recordings and transcripts.
    * For other fields that require audio and transcript redaction, a general purpose `sensitive` flag is available for all `Field` instances.
  * The TypeScript SDK now supports [`on_escalate`](/sdk-reference/agent), [`on_action_request` with `SuggestedAction`](/sdk-reference/on-action-request-execute), and `set_agent_dtmf`.
  * `call.id` and `call.callInfo` are now available in the TypeScript SDK.
  * [`listen_sip`](/guides/sip-integrations) and voice configuration options are now available in the TypeScript SDK.
  * New organizations are now prompted to specify their compliance requirements during signup, enabling appropriate feature restrictions from the start.
  * The compliance dashboard now includes a Do Not Call list view.

  ### Bug Fixes

  * `on_escalate` now handles concurrent triggers correctly, preventing duplicate escalation callbacks when multiple escalation conditions fire simultaneously.
</Update>

<Update label="July 14, 2026">
  Guava 0.34.0 brings phone number filtering and navigation enhancements to the dashboard, adds SIP header forwarding to SDK event handlers, and improves CLI authentication feedback.

  ### New Features

  * SIP headers are now included in SDK call event payloads, making them accessible from event handlers.
  * The CLI authentication flow now shows clearer success and error feedback after the OAuth callback.

  ### Improvements

  * The Conversations view in the dashboard can now be filtered by phone number, with the filter state preserved in the URL for shareable, bookmarkable links.
  * Navigating back from a conversation detail page now highlights and scrolls to the previously viewed entry in the list.
  * Call detail pages now display the reason a conversation ended.

  ### Bug Fixes

  * Transcripts now correctly truncate at the point of an interruption, removing speech that was cut off before the caller finished speaking.
</Update>

<Update label="July 7, 2026">
  Guava 0.33.0 streamlines CLI workflows with direct project targeting, establishes `agent.roleplay()` as the canonical testing method name, and adds automated, voice-based "Do Not Call" detection and flagging for outbound campaigns.

  ### New Features

  * `guava deploy` and `guava update` now accept a `project_id` argument directly. The previous `task_id` parameter has been removed. See the [CLI Reference](/cli-reference/cli-reference).
  * `agent.roleplay()` is now the canonical method name for running simulated test calls, replacing `agent.test_roleplay()`. The previous name continues to work as an alias. See [Agent Testing](/sdk-reference/agent-testing).
  * Voice-based Do Not Call (DNC) detection is now available for outbound campaigns. Callers who verbally opt out are automatically flagged, and a corresponding SDK event is emitted.
</Update>

<Update label="June 30, 2026">
  Guava 0.32.0 adds outbound campaign support to the TypeScript SDK, refines outbound voicemail detection, and introduces filtering by status for campaign conversations.

  ### New Features

  * The [`attach_campaign`](/guides/campaign) method is now available in the TypeScript SDK, bringing parity with the Python SDK for campaign-based agent workflows.
  * Campaign conversations can now be filtered by status in the dashboard.

  ### Improvements

  * Voicemail detection on outbound calls has been improved, driving greater accuracy of campaign statistics.

  ### Bug Fixes

  * Fixed `attach_campaign` in the Python SDK not exiting cleanly on Ctrl-C.
  * Fixed datetime fields in the `CallAttempt` API response not being serialized correctly.
</Update>

<Update label="June 24, 2026">
  Guava 0.31.0 adds DTMF (keypress tones) support to the TypeScript SDK, introduces datetime filtering for campaign calling attempts, and enables bundling of documentation directly into new projects.

  ### New Features

  * [`on_dtmf`](/sdk-reference/on-caller-dtmf) is now supported in the TypeScript SDK, enabling agents to handle caller keypresses in TypeScript projects.
  * `guava create` now downloads the Guava documentation bundle into new projects, giving immediate access to SDK reference material.
  * Campaign attempts can now be filtered by a datetime range, making it easier to query attempt history for specific time windows.

  ### Bug Fixes

  * Fixed the `guava login` command holding TCP ports open if the OAuth callback fails.
</Update>

<Update label="June 16, 2026">
  Guava 0.30.0 adds a new chat widget supporting audio and text, inbound SMS support, in-CLI management of outbound campaigns, Do Not Call list checks for outbound campaigns, and an updated intent recognizer.

  ### New Features

  * A new multimodal widget (`guava-widget-audio-chat`) supports audio and text chat within a single session.
  * Agents can now send DTMF digits during a call using `call.set_agent_dtmf(enabled=True)`.
  * [`on_session_end`](/sdk-reference/on-session-end) handlers now receive a `termination_reason` field describing why the session ended, available in both the Python and TypeScript SDKs.
  * [`GET /v1/conversations`](/api-reference/conversations-api) now accepts phone-number query parameters to filter results by caller or callee.
  * Reach-person detection has been updated to v2 with improved accuracy.
  * Agents can read incoming messages via a new inbox API endpoint and the `next_sms` (Python) / `nextSms` (TypeScript) [SDK methods](/guides/messaging).
  * `Agent.chat` mode in the TypeScript SDK enables text-based (non-voice) conversation sessions.
  * [`MockCall`](/sdk-reference/agent-testing) and per-handler unit test support have been added to the TypeScript SDK, allowing agent handlers to be tested in isolation.
  * SDK agents now attach to an existing [campaign](/guides/campaign) via `campaign_code`. Create campaigns through the API or dashboard before starting an agent.
  * Do Not Call (DNC) list support has been added to campaigns; numbers on the list are automatically skipped when dialing.
  * Contacts API v2 adds expanded filtering and batch management capabilities.
  * A new [`IntentRecognizer`](/sdk-reference/intent-helpers) class in `guava.helpers.llm` uses Guava's LLM endpoint for intent recognition.
  * OpenAI-compatible wrappers have been added for [document QA](/sdk-reference/document-qa) and [vector store](/sdk-reference/vector-stores) workflows. VertexAI helpers have been renamed to GenAI helpers (`guava.helpers.genai`).
  * New CLI subcommands: `guava contact upload`, `guava conversations`, and `guava campaigns`.
  * `guava login` now accepts a `--no-launch-browser` flag for headless and CI environments.
  * CLI configuration is now stored as a plain TOML file, making it easy to inspect and edit by hand.
  * `guava deploy` now includes a dashboard view showing the status of active deployments.
  * Campaigns can now be created and edited directly from the dashboard.

  ### Improvements

  * Updated `guava create` project templates. See the [CLI Reference](/cli-reference/cli-reference).
  * Outbound dialing and SMS compliance forms have been updated with bug fixes and improved field syncing.
  * A `skipDeprecationCheck` option has been added to the TypeScript SDK client constructor.
</Update>

<Update label="June 9, 2026">
  Guava 0.29.0 introduces text-based chat sessions, an agent testing framework, CLI self-upgrade, and TypeScript SDK Transport v2.

  ### New Features

  * Agents can now conduct text-based chat sessions in addition to voice calls.
  * An initial [agent testing framework](/sdk-reference/agent-testing) has been added to the Python SDK, including `guava.testing.MockCall` for mocking call interactions.
  * The `guava` CLI now supports self-upgrade via `guava self-upgrade`, updating the binary in place. See the [CLI Reference](/cli-reference/cli-reference).
  * The TypeScript SDK has been updated to Transport v2, with a rewritten socket layer, updated event types, and improved inbound call handling.
  * The TypeScript SDK now supports CLI-based authentication, removing the need to pass API keys explicitly when the `guava` CLI is in use.
  * The LLM helper (`guava.helpers.llm`) in the Python SDK now authenticates via CLI credentials.
  * Added [outbound scheduling](/getting-started/outbound-scheduling) examples to the Python SDK with `--local` flag support.

  ### Improvements

  * Phone numbers are now displayed and formatted correctly during `guava create` flows.
  * Improved error handling when agent code throws exceptions during execution.
  * Improved call screener resilience against transient errors in both the Python and TypeScript SDKs.

  ### Bug Fixes

  * Fixed `guava deploy up` incorrectly defaulting to an inbound deployment when run on an existing project without a `.guava` configuration file.
</Update>

<Update label="June 2, 2026">
  Guava 0.28.0 brings smarter intent handling, automated SMS follow-up for unanswered campaign calls, and CLI improvements.

  ### New Features

  * Agents now handle ambiguous user intents more robustly. A new [intent helper](/sdk-reference/intent-helpers) method returns a list of plausible matches, and the [`on_action_request`](/sdk-reference/on-action-request-execute) callback accepts this list to naturally disambiguate with the caller.
  * [Agentic campaigns](/guides/agentic-tenacity) now automatically send an SMS follow-up when a call goes unanswered, informing the recipient of the attempt to reach out.
  * `guava run` now accepts additional arguments to pass through to the running agent. See the [CLI Reference](/cli-reference/cli-reference).
  * The TypeScript SDK now supports local calling.

  ### Improvements

  * The [WebRTC Helper](/guides/webrtc-widgets) has been updated to v0.2.0, fixing slow bot audio and Bluetooth headset connection issues.
  * The API and Python SDK now warn when attempting to stop a [campaign](/guides/campaign) that has already dispatched calls.

  ### Bug Fixes

  * Fixed a crash triggered by multiple action requests or questions said at once.
  * Fixed a bug where admin users were unable to delete deployments from the dashboard.
  * Fixed an issue where inbound calls could be routed incorrectly.
</Update>

<Update label="May 27, 2026">
  WebRTC support arrives in the TypeScript SDK, agentic tenacity comes to campaigns with SMS, and CLI messaging is refined.

  ### New Features

  * The TypeScript SDK now includes [WebRTC](/guides/webrtc-widgets) support, with an updated `property-insurance` example to get started.
  * Python SDK examples now open an interactive phone number picker when run in an interactive terminal session.
  * The `guava deploy` command now provides clearer, more informative output messages.
  * [Agentic tenacity](/guides/agentic-tenacity) is now available for campaigns with SMS enabled.

  ### Bug Fixes & Improvements

  * Updated the [quickstart guide](/getting-started/quickstart) with separate install method sections and added agent test and stop steps.
  * The docs section now has its own dedicated navigation bar.
  * Various website fixes and content updates.
</Update>

<Update label="May 19, 2026">
  Guava introduces new and improved tools for measuring outbound calling campaign performance.

  ### New Features

  * A new **Campaign Stats Endpoint** enables querying of call outcome statistics, with support for filtering by multiple statuses. See the [Campaign](/guides/campaign) reference for details.
  * A **PowerShell install script** has been added for Windows [CLI](/cli-reference/cli-reference) installation.

  ### Bug Fixes & Improvements

  * Voicemail detection accuracy is improved. "Voicemail" as a call termination reason is now reported by agents and tracked in autodialer campaigns, yielding better campaign outcomes data. See [`set_voicemail_action()`](/sdk-reference/set-voicemail-action) for related configuration.
  * The process for approving outbound calling and SMS agent workflows has been streamlined. Read more about requesting outbound permissions [here](/guides/outbound-and-sms-permissions).
  * Various refinements to ASR (speech recognition), TTS (text-to-speech), and background noise handling.
</Update>

<Update label="May 12, 2026">
  The Guava CLI makes gains in utility and flexibility. TTS pronunciation is improved.

  ### New Features

  * `guava create` and `guava update` now support non-interactive mode, making it easier for scripts, CI pipelines, and agents to run commands. See the [CLI Reference](/cli-reference/cli-reference).
  * Added `guava numbers list` to list phone numbers from the [CLI](/cli-reference/cli-reference).
  * Added `guava run` to run your agent project locally. See the [CLI Reference](/cli-reference/cli-reference).
  * The Guava CLI is now available as a Windows binary. See the [CLI Reference](/cli-reference/cli-reference).
  * Added [`get_var` / `set_var`](/sdk-reference/get-set-variable) as shorter aliases for `get_variable` / `set_variable` in the Guava Agent API.
  * `call_info` is now accessible directly on the `call` object.
  * The Python SDK can now authenticate using CLI credentials.

  ### Bug Fixes & Improvements

  * For spelling back words (e.g. "I have that as 'Guava, spelled G-U-A-V-A'"), TTS pronunciation and rate of speech are improved.
</Update>

<Update label="May 5, 2026">
  The Guava Agent API gains voice configuration, DTMF event support, and call ID access. Campaigns now support custom caller IDs for pre-approved accounts.

  ### New Features

  * Added a `voice` parameter to the [Agent](/sdk-reference/agent) class.
  * Exposed `call.id` for use in [agent](/sdk-reference/agent) code.
  * Added support for DTMF events in the Guava Agent API.
  * Pre-approved accounts can set their own number as the caller ID for outbound calls. See the [Campaign](/guides/campaign) reference.
  * `guava deploy` can now use `.env` files to mount secrets. See the [Deployment](/guides/deployment) guide.
  * One login can now access multiple orgs.

  ### Bug Fixes & Improvements

  * Increased robustness of ASR background noise rejection and short utterance handling.
  * Various ease-of-use updates to the [Guava CLI](/cli-reference/cli-reference).
</Update>

<Update label="April 29, 2026">
  The Guava SIP Trunk goes live, bringing inbound SIP calling support. Agent capabilities and campaign management see significant additions.

  ### New Features

  * The **Guava SIP Trunk** is now live, enabling agents to receive inbound calls over SIP. See the [SIP Integration](/guides/sip-integrations) guide.
  * Voicemail behavior is now configurable via [`set_voicemail_action()`](/sdk-reference/set-voicemail-action).
  * The `guava widget` CLI command generates embed codes for [WebRTC-based voice widget](/guides/webrtc-widgets) integrations.
  * `agent.on_escalate` enables agents to hand off calls to another destination. See [`transfer()`](/sdk-reference/transfer) for related functionality.
  * [`set_language_mode()`](/sdk-reference/set-language-mode) has been added to allow language configuration.
  * The [Campaigns API](/guides/campaign) now supports streamlined outbound campaign creation and modification.
</Update>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.