> For the complete documentation index, see [llms.txt](https://docs.wem.io/platform/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.wem.io/platform/release-notes/runtime-release/release-5.3.0.md).

# Release 5.3.0

### Highlights

* **AI Agent voice chat.** The runtime can now host voice-based AI agents end to end — a new voice chat template/component, application and agent-hub support for voice agents, and per-conversation mode selection.
* **Modern, password-less outbound email (SMTP over OAuth).** Outbound mail can now authenticate with OAuth instead of static SMTP credentials, aligning WEM with the wider industry move away from basic auth for email providers like Microsoft 365 and Google. [Check this paragraph about settings in DevOps](/platform/wemmodeler/project-settings/smtp-settings.md#smtp-with-oauth2).
* **Security and stability improvements.** A number of under-the-hood improvements to strengthen platform security and reliability.

### New features & enhancements

#### AI Agents — Voice

Voice agents are now supported end to end:

* A new template component lets authors add a voice conversation surface to an application.
* The application service and Agent Hub now support voice-type agents alongside text agents.
* Agents can declare and operate in different conversation modes (e.g. text vs. voice/realtime), and are rebuilt automatically when their conversation mode changes so switches take effect correctly.

#### AI Agents — Observability & cost

* New expression functions let modelers read input and output token usage for an agent interaction, useful for cost tracking, quotas, and displaying usage in the UI.
* Agent usage data is now stored in a more structured format for improved reliability.

#### Expression language / Standard Library

New and extended text functions:

* `Reverse(string)` — reverses a string.
* `Left(string, num_chars)` — returns the leftmost N characters of a string.
* `Right(string, num_chars)` — returns the rightmost N characters of a string.
* `ToRichText(text, encode_html)` — new overload that controls whether the input is HTML-encoded.

#### Modeler / data model / authoring

* **Settings folder** — a dedicated folder type for organizing settings and configuration concepts in the data model.
* **Required field context messages** — required form fields can now show an extra explanatory message to end users.
* **Force file downloads** — a new option to serve files as downloads instead of rendering them inline, which also helps protect against inline rendering of untrusted uploads.
* **Extra database owners** — application database provisioning can now create additional database-owner principals.

### Bug fixes

* JSON import now correctly accepts DateTime values with a negative timezone offset (e.g. -05:00).
* Fixed incorrect value resolution when reading dossier item values in expressions.
* Committing database changes no longer throws a cast exception for an invalid value.
* Fixed an issue where a ConceptSet could contain null values, preventing downstream null-handling errors.
* Fixed AI agent function input reading incorrectly parsing a ConceptSet.
* Fixed errors thrown by the autocompletion feature, including on an empty search value.
* Empty tooltips are no longer rendered as an empty element.
* The configured height is now correctly applied to the (ProseMirror) rich text editor.

### Infrastructure & upgrade notes

* Helm chart and container image versions updated for 5.3.
* Base images and OS packages refreshed.
* The Helm chart now supports a `noproxy` setting, useful for air-gapped or proxied deployment environments.
* Improved Let's Encrypt certificate handling.
* The operational health check now distinguishes between vital and non-vital components, a non-vital failure now returns a "degraded" status instead of a hard failure. If you have monitoring or alerting configured against this endpoint, please review how it interprets a degraded response.


---

# 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 dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.wem.io/platform/release-notes/runtime-release/release-5.3.0.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
