Versions
v2.9.22026-11-06patch release

Watchers keep their rhythm

A few fixes to how watchers pace their checks and read their own answers. Pausing and resuming a watcher used to start a fresh check the moment it came back, and so did saving it again with a new check speed. Now a watcher that comes back waits until its usual interval has passed since its last check, so a watcher set to check every 3 hours still checks every 3 hours, however often you pause it. If it has been asleep longer than that, it checks right away, as before. Changing what it watches for still counts as a new watch and checks right away too, because a condition that is already true is news. The next check time shown after you edit, pause or resume a watcher is now the one that will really happen. Before, a watcher slowed down by a plan change could show a time it was going to skip, both in settings and in the Telegram /tasks list. The time it saves after each check had the same problem and is fixed too. Last, a watcher that found something and put its whole headline on the same line as its alert, with a long headline, was read as giving no answer at all. That counted as a failed check, and three in a row paused the watcher. Those alerts now come through with their headline as written, and the watcher keeps running.

640 words

Pausing and resuming a watcher, or saving it again, no longer triggers an extra check before its interval is up.

A watcher that changes what it watches for still checks right away.

The next check shown after an edit, pause or resume, in settings and in Telegram /tasks, matches what will really run.

Alerts with a long headline on the same line are delivered instead of counting as failed checks.

Portail v2.9.2 shipped on 2026-11-06 as a patch release focused on watchers keep their rhythm. A few fixes to how watchers pace their checks and read their own answers. Pausing and resuming a watcher used to start a fresh check the moment it came back, and so did saving it again with a new check speed. Now a watcher that comes back waits until its usual interval has passed since its last check, so a watcher set to check every 3 hours still checks every 3 hours, however often you pause it. If it has been asleep longer than that, it checks right away, as before. Changing what it watches for still counts as a new watch and checks right away too, because a condition that is already true is news. The next check time shown after you edit, pause or resume a watcher is now the one that will really happen. Before, a watcher slowed down by a plan change could show a time it was going to skip, both in settings and in the Telegram /tasks list. The time it saves after each check had the same problem and is fixed too. Last, a watcher that found something and put its whole headline on the same line as its alert, with a long headline, was read as giving no answer at all. That counted as a failed check, and three in a row paused the watcher. Those alerts now come through with their headline as written, and the watcher keeps running. 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: pausing and resuming a watcher, or saving it again, no longer triggers an extra check before its interval is up, a watcher that changes what it watches for still checks right away, the next check shown after an edit, pause or resume, in settings and in telegram /tasks, matches what will really run, and alerts with a long headline on the same line are delivered instead of counting as failed checks. 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.9.2 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.