> For the complete documentation index, see [llms.txt](https://docs.saas.haut.ai/haut.ai/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.saas.haut.ai/haut.ai/releases/changelog/version-2026-28.md).

# Version 2026-28

## Release date

July 8, 2026

## Authentication and security

This release focuses on authentication: additional sign-in options, more consistent error handling, and stronger multi-factor protection across the login experience. Learn more: [Login and authentication](/haut.ai/administration/login-and-authentication.md).

### Passkeys

* Passkey sign-in now supports usernameless login. You can register a passkey as a resident key and then sign in without first entering your email.

### Two-factor authentication (TOTP)

Two-factor authentication with an authenticator app (TOTP) has clearer setup and sign-in flows.

* You can enter a recovery code during sign-in when your authenticator app is not available.
* Recovery codes now use a grouped, easier-to-read format and are safely consumed after use.
* Administrators can remove TOTP from a user on the user admin page.
* When more than one factor is enrolled, the login flow now presents the correct challenge — for example, the right prompt when a passkey is available.

### Password change with multi-factor step-up

Confirming an account password change now uses a server-side multi-factor step-up (authenticator app, passkey, or recovery code) instead of the previous browser-side flow, giving password changes the same protection as the rest of the login experience.

### Single sign-on (SSO)

* **Enforce SSO for your organization.** Enterprise companies that use OIDC SSO can now require every member to sign in through SSO. A per-user bypass list keeps emergency ("break-glass") access for designated users. Enforcement is off until you enable it, so existing companies are unaffected. Learn more: [Set up OIDC SSO](/haut.ai/administration/login-and-authentication/set-up-oidc-sso.md).
* SSO sign-in errors are now surfaced on the login page, including a clear message when SSO is not enabled for an account.

### Sign-in reliability and error messages

* Sign-in errors are now standardized across sign-in methods — Google, Microsoft, one-time email link, passkeys, and OIDC SSO — so the message and reason are consistent.
* One-time email link sign-in now works across browsers: you can request the link in one browser and open it in another.
* The login page no longer shows duplicate error messages, and multi-factor alerts use the correct styling.
* Password reset links now open the correct `/app` route, and sign-up and password-change flows keep the expected token and recovery messaging.

### Account settings

* The account settings and two-factor authentication screens were updated to match the current design.

## Face Skin Analysis 3.0

### Updated redness mask

The Face Skin Analysis 3.0 redness mask has a new look: an updated color palette with per-class opacity, and a matching update to the redness legend.

* This is a visualization update. Redness scores and their API result fields are unchanged, and no customer action is required. Learn more: [Redness](/haut.ai/haut.ai-features/algorithms/face-skin-analysis-3-0/redness.md).

## Product recommendations

### Sensitive suitability as a separate tag

Suitability for sensitive skin is now a separate **Sensitive** tag (`Yes`/`No`), independent of the Skin Type tag. Products are matched on sensitivity only when the skin sensitivity question is enabled in the Consumer App survey. Learn more: [Face Skin Product Tags](/haut.ai/haut.ai-features/product-recommendation-system-2.0/product-tags/face-skin-product-tags.md).

### Recommendations view

* Company admins can hide the **All** tab in the recommendations view. When it is hidden, the first product category is selected by default. Learn more: [Recommendations View in Consumer App](/haut.ai/haut.ai-features/product-recommendation-system-2.0/recommendations-view-in-consumer-app.md).

## Datasets and Analytics

### Analytics view

* The dashboard layout and timeframe controls no longer stay sticky while you scroll.
* Parameter charts now show `0%` tags and label the median value as **Median score**. Learn more: [Analytics](/haut.ai/haut.ai-features/datasets/analytics.md).

### Consumer App analytics events

* The image-sent (`ImageIsSent`) Consumer App analytics event now includes an `event_category` field that identifies the image source — `front_camera` or `back_camera` for a camera capture, `upload` for a file upload, or `companion` for a capture handed off to a phone. Learn more: [Google Analytics Events Reference](/haut.ai/haut.ai-features/consumer-apps/connect-google-analytics-to-your-consumer-app/google-analytics-events-reference.md).

***

{% hint style="warning" %}
Not a Haut.AI client yet?
{% endhint %}

<a href="https://haut.ai/book-a-demo?utm_source=referral&#x26;utm_medium=saas_docs&#x26;utm_campaign=Docs_SaaS_HautAI" class="button primary" data-icon="user-vneck">Book a demo</a> <a href="https://haut.ai/product/ai-skin-analysis?utm_source=referral&#x26;utm_medium=saas_docs&#x26;utm_campaign=Docs_SaaS_HautAI" class="button secondary" data-icon="external-link">Platform overview on haut.ai</a>


---

# 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.saas.haut.ai/haut.ai/releases/changelog/version-2026-28.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.
