Skip to main content
A development stage from October 23 to 26, 2026. There is no 0.6.11 package: these changes shipped in 0.7.0.

Sign-in with a provider account

A new built-in adapter, Veriqa.Core.ChannelAdapter.WebProviders: the user confirms the sign-in on their phone with a provider account. Each OpenIddict.Client.WebIntegration provider is turned on in configuration — see Sign-in with a provider account.

Email

  • Link, code or both: the email can carry a link, a code or both, and the code from the email signs the user in on the sign-in page — see Link, code or both.
  • Modes for one tenant or application: a tenant or application chooses among the modes enabled in the core — see Modes for one tenant or application.
  • Email under hop mode follows RedirectStyle, like any other channel — see Email under hop mode.

Channels

  • Buttons in the chat: the link to the claims completion form and the post-sign-in buttons work in WhatsApp, Messenger, Instagram, Viber and WeChat. In WeChat the link goes in the message text.
  • The HTTP channel: post-sign-in actions, the link to the claims completion form, menu and link buttons, the menu_item_pressed event; the deep-link operation receives the rendered text — see Build a channel adapter in any language.
  • The MAX Bot API address is set by Veriqa:Channels:Max:ApiBaseUrl — see MAX; the phone number from MAX now also arrives in polling mode.
  • Starting without a Bot API: an unreachable Bot API no longer stops the host at startup. Webhook registration runs in the background and retries until it succeeds, and /health/channels reports a channel with no webhook as unhealthy. See Common first-run failures.

Message texts

  • The lines a page shows for a channel and the message with the link to the claims completion form are message kinds you can word per channel: channel-answer-line, channel-launched-line, qr-scanned-line and claim-form-link — see the lines of a channel.
  • The email_masked, phone_masked, username_masked, display_name_masked, channel_name and bot_name slots are available in the question text. The question page no longer shows the account line.
  • The ByLinkPurpose dimension of deeplink-prefill: your own text for the button, the hop QR code and the plain QR code.
  • IChannelMessageTemplates is the public way to get a template from your own adapter — see Prompt and link text.

The claims completion form

The email block has one main button, the other methods sit under an “OR” divider, and one button replaces the two that checked the status. “Skip” is gone: “Continue” with an empty address skips an optional email. If the server refuses the address, the form keeps what was typed. See Getting the phone number and email.

What to check when you upgrade

  • A custom C# adapter stops compiling: GetDeepLinkAsync now takes a DeepLinkRequest — see GetDeepLinkAsync.
  • The default MAX Bot API address is now https://platform-api2.max.ru.
The details are in What to check when you upgrade from 0.6.1.

The lines of a channel left AuthPage.Texts

This applies only if you set these lines on a development build. 0.6.1 does not have them, so an upgrade from 0.6.1 has nothing to move. The texts You have moved to … (four of them), Opening …, QR code scanned. Continue in …, QR code scanned. Continue on your phone to confirm by email. and The confirmation email is open in your mail app. Send it to continue. are no longer in the list of AuthPage.Texts, with no transition period: an entry for one of them is not applied, and the configuration snapshot report warns about it. Move such entries to MessageTemplates of the same record in the same upgrade — channel-answer-line, channel-launched-line and qr-scanned-line. A wording in a client entry, a tenant record or a ui_config record answers for Email too, so repeat the shipped Email addresses there: BySurface:core-page:ByChannel:email of the kind and, for channel-answer-line, also ByType:confirmation:BySurface:core-page:ByChannel:email — see the lines of a channel. In your locale files, rename the keys of the lines that carry slots: {0} becomes {channel_name} and {1} becomes {bot_name}, so the key of Opening … is now Opening {channel_name}….