Versions
v2.10.12026-11-09patch release

Hold to dictate now tells you when to let go

When there's already text in the box, holding the send button switches it to dictation, and you start talking once you lift your finger. Until now the only sign that the switch had happened was the icon quietly changing from an arrow to a sound wave, which is easy to miss when your thumb is covering the button. So people either let go too early and sent a half-written message, or held on for ages wondering if anything was going to happen. Now the moment the hold arms, the button pops up a little bigger, the sound wave spins into place, and a soft ring keeps rippling out from it for as long as you keep holding. That ring is the cue: let go now and the mic opens. On phones, letting go also gives you a short tap of haptic feedback, so you can feel the switch without looking down. Android uses the standard vibration API. On iPhone, Safari has no vibration API, so we borrow the tick iOS plays when you flip a switch, which works on iOS 17.4 and later. If you slide your finger off the button before letting go, nothing happens, no message and no buzz, same as before. On a laptop with a mouse you get the animation but no vibration, since there's nothing to vibrate. People who turned on reduced motion in their system settings get the change of icon without the bounce or the ripple. Tapping send normally works exactly the way it did: a quick press still sends right away, and the hold still takes a bit under half a second to arm.

678 words

Holding send to dictate now pops the button and ripples a ring around it once it's ready, so you know when to let go.

Letting go on a phone gives a short haptic tap as dictation kicks in (Android, and iPhone on iOS 17.4 or later).

Sliding off the button before letting go still cancels quietly, with no buzz.

Reduced motion settings skip the bounce and the ripple.

Portail v2.10.1 shipped on 2026-11-09 as a patch release focused on hold to dictate now tells you when to let go. When there's already text in the box, holding the send button switches it to dictation, and you start talking once you lift your finger. Until now the only sign that the switch had happened was the icon quietly changing from an arrow to a sound wave, which is easy to miss when your thumb is covering the button. So people either let go too early and sent a half-written message, or held on for ages wondering if anything was going to happen. Now the moment the hold arms, the button pops up a little bigger, the sound wave spins into place, and a soft ring keeps rippling out from it for as long as you keep holding. That ring is the cue: let go now and the mic opens. On phones, letting go also gives you a short tap of haptic feedback, so you can feel the switch without looking down. Android uses the standard vibration API. On iPhone, Safari has no vibration API, so we borrow the tick iOS plays when you flip a switch, which works on iOS 17.4 and later. If you slide your finger off the button before letting go, nothing happens, no message and no buzz, same as before. On a laptop with a mouse you get the animation but no vibration, since there's nothing to vibrate. People who turned on reduced motion in their system settings get the change of icon without the bounce or the ripple. Tapping send normally works exactly the way it did: a quick press still sends right away, and the hold still takes a bit under half a second to arm. The work is recorded here because small releases are still product history. They change how people sign in, read responses, pay for access, share conversations, open files, or trust the system when something goes wrong.

The main changes were direct: holding send to dictate now pops the button and ripples a ring around it once it's ready, so you know when to let go, letting go on a phone gives a short haptic tap as dictation kicks in (android, and iphone on ios 17.4 or later), sliding off the button before letting go still cancels quietly, with no buzz, and reduced motion settings skip the bounce and the ripple. That list is intentionally plain. It names what changed without turning the release into theatre. When a release fixes a build, a redirect, a storage path, or a UI edge case, the value is often that users stop noticing the problem. The archive keeps that invisible work visible enough for future debugging and for anyone checking whether Portail has cared about the details over time.

This version also fits into the wider Portail contract. One account, one chat history, and one model picker only work if the smaller pieces keep their promises. Authentication has to fail clearly. Billing has to count honestly. Uploads have to arrive in a form models can read. Admin tools have to show the operator what happened instead of hiding it behind a blank screen. v2.10.1 moved that contract forward in its own narrow lane.

The screenshots attached to this entry show the public release record as it now appears on portail.cc. For older releases, this archive was rebuilt from the git history, package version changes, release modal text, and commit subjects. That means the page is honest about its source: it documents the shipped change and preserves the record going forward, even when the exact old production screen cannot be recreated from a single saved image.

The practical result is simple. Someone landing on this page can see the version number, date, release tier, headline, highlights, and a real rendered screenshot of the archive page. Search engines can index the post through the canonical URL, sitemap entry, and structured data. Future releases now have a standard to meet before deploy, so the history should get cleaner from here instead of fuzzier.