## Release Notes

What's new in Guava.

---

### 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.

---

### 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](/docs/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](/docs/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.

---

### 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`](/docs/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.

---

### 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`](/docs/on-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.

---

### 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`](/docs/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`](/docs/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](/docs/messaging).
- `Agent.chat` mode in the TypeScript SDK enables text-based (non-voice) conversation sessions.
- [`MockCall`](/docs/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](/docs/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`](/docs/intent-helpers) class in `guava.helpers.llm` uses Guava's LLM endpoint for intent recognition.
- OpenAI-compatible wrappers have been added for [document QA](/docs/document-qa) and [vector store](/docs/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](/docs/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.

---

### 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](/docs/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](/docs/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](/docs/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.

---

### 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](/docs/intent-helpers) method returns a list of plausible matches, and the [`on_action_request`](/docs/on-action-request-execute) callback accepts this list to naturally disambiguate with the caller.
- [Agentic campaigns](/docs/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](/docs/cli-reference).
- The TypeScript SDK now supports local calling.

#### Improvements
- The [WebRTC Helper](/docs/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](/docs/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.

---

### 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](/docs/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](/docs/agentic-tenacity) is now available for campaigns with SMS enabled.

#### Bug Fixes & Improvements
- Updated the [quickstart guide](/docs/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.

---

### 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](/docs/campaign) reference for details.
- A **PowerShell install script** has been added for Windows [CLI](/docs/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()`](/docs/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](/docs/outbound-and-sms-permissions).
- Various refinements to ASR (speech recognition), TTS (text-to-speech), and background noise handling.

---

### 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](/docs/cli-reference).
- Added `guava numbers list` to list phone numbers from the [CLI](/docs/cli-reference).
- Added `guava run` to run your agent project locally. See the [CLI Reference](/docs/cli-reference).
- The Guava CLI is now available as a Windows binary. See the [CLI Reference](/docs/cli-reference).
- Added [`get_var` / `set_var`](/docs/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.

---

### 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](/docs/agent) class.
- Exposed `call.id` for use in [agent](/docs/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](/docs/campaign) reference.
- `guava deploy` can now use `.env` files to mount secrets. See the [Deployment](/docs/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](/docs/cli-reference).

---

### 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](/docs/sip-integrations) guide.
- Voicemail behavior is now configurable via [`set_voicemail_action()`](/docs/set-voicemail-action).
- The `guava widget` CLI command generates embed codes for [WebRTC-based voice widget](/docs/webrtc-widgets) integrations.
- `agent.on_escalate` enables agents to hand off calls to another destination. See [`transfer()`](/docs/transfer) for related functionality.
- [`set_language_mode()`](/docs/set-language-mode) has been added to allow language configuration.
- The [Campaigns API](/docs/campaign) now supports streamlined outbound campaign creation and modification.

---
