Changelog — 2.103–2.110

Releases 2.103.0 through 2.110.3. Current releases are on the main changelog, and every band is listed in the release archive.

Loading audio...

Version 2.110.3

August 13, 2026

Sharing the newest session sent people to the whole event instead

  • Copying the share link from a session handed out a link to its event. You would send someone that evening’s session and they would arrive at the full programme, left to find the session themselves among all the others.
  • It only ever affected the newest session — the one most likely to be shared. Every older session shared correctly, and a session started working properly once it had been on the site for a while. That is precisely why it went unnoticed: by the time anyone thought to check, the link had quietly begun behaving, and there was nothing left to find.
  • The link itself was never wrong. Each session has its own short link, separate from its event’s, and the share button always handed over the right one. What was wrong was where that link took you when it was opened.
  • The cause was one rule written down in more than one place. One version decides which sessions you are able to visit; another decides where a short link should send you. They are supposed to say the same thing, and they had drifted apart — so the site would happily show you a session that the link handler still believed was not ready, and sent you up to the event rather than admit it.
  • We have made it one rule in one place, rather than correcting the copy that was wrong. Correcting the copy would have fixed today’s fault and left the same trap for the next person. The remaining places that have to ask the same question now share a single answer, and we have arranged things so that leaving out the part that caused this can no longer be done quietly — it now stops the site from building at all.
  • Links you have already sent people are fixed too. Our short links work out their destination fresh each time they are opened, rather than remembering it from when they were made, so every link already out in the world now arrives in the right place. Nothing needs re-copying.
  • Nothing to do at your end.

Version 2.110.2

August 11, 2026

Older programmes could not be shared with a short link

  • A programme marked as concluded never got a short link, so sharing it handed out the long web address instead. We are adding our older programmes to the site at the moment, and every one of them would have had this problem.
  • The cause was a rule of ours that asked the wrong question. It gave short links to things that were current, when what it should have asked is whether you can actually visit the page. A concluded programme is not a hidden one — it stays on the site to be read and watched, and people still send it to each other.
  • Older programmes already on the site were unaffected, because they were published first and marked concluded later, which meant they had already been given a link. Only ones added straight to the archive missed out.
  • We had written a test that insisted on the faulty rule — the second time in two days. A test with the rule backwards passes happily forever and protects the fault rather than catching it. It has been turned around rather than removed, so the change of mind stays on the record.
  • Nothing to do at your end. Older programmes now share the same way as everything else.

Version 2.110.1

August 11, 2026

A programme that finished weeks ago was still inviting you to join it

  • The “Join via Zoom” and “Join via Google Meet” buttons stayed on a session forever. So a majlis from last month still offered a way to join it — a room nobody was in. They now disappear a day after the session, once there is genuinely nothing to join.
  • A day, rather than the length of the session, and on purpose. People arrive late, sessions run long, and a window that shut promptly would lock out exactly the person hurrying to get in. It is the same day’s grace we already use to decide a programme has finished, so the buttons and the rest of the page now agree.
  • This was our own decision from last week, and it was the wrong one. When the buttons were first put behind a timer we deliberately left them open forever afterwards, reasoning that past sessions should carry on behaving as they always had. That reasoning does not survive contact with a back catalogue of past events.
  • We had even written a test that insisted on the faulty behaviour, checking the buttons were still active five months after a session had ended. It passed every single time, which is the trouble with a test that has the rule backwards — it defends the fault rather than catching it.
  • And while viewing a session, its programme’s name is now a link. Click it to go back to the full event and see the other sessions.
  • Nothing to do at your end.

Version 2.110.0

August 10, 2026

The new short-links screen became usable after five minutes of actually using it

  • The list of short links can now be narrowed and reordered. Filter it to reflections, vignettes, sessions or events; show only the ones whose destination had drifted; and sort by how often a link has been opened or by when it was made.
  • Clicking a short link now opens it, which is what a link should do. It previously copied to the clipboard instead. Copying is still there — it just has its own button now, rather than pretending to be the link.
  • The filtering is done properly rather than conveniently. The list is shown a page at a time, so filtering only what is currently on screen would have reported “three of these have drifted” when it meant “three on this page”. The counts beside each filter are for everything, not just the page you are looking at.
  • This is a screen only our editors see, and it went in the day after the screen itself — the shape of a tool is rarely obvious until someone tries to use it for something real.
  • Nothing to do at your end.

Version 2.109.0

August 10, 2026

Renaming something could quietly break a short link you had already shared

  • A page’s web address is built from its title, so editing the title changes the address. Short links, though, remembered the old address from the moment they were created — so renaming a reflection left any link you had already sent pointing at a page that no longer existed.
  • It looked like it was working, which is the worst part. The short link opened, went somewhere, and only then showed a “not found” page. Nothing anywhere reported a problem, and the person who found out was whoever you had sent it to.
  • Short links now work out where to go each time they are opened, rather than remembering an address from months ago. Rename something as often as you like — anything already shared keeps working.
  • And it repaired the ones that were already broken. Because the address is worked out fresh, links that had been quietly pointing nowhere started resolving correctly the moment this shipped. We found one such link in our own test data and confirmed it: broken before, working now.
  • Events were never affected, and we nearly reported that they were. They already worked this out fresh — we had assumed otherwise from how the code looked and only found out by checking properly. Written down here because it changed what needed fixing.
  • Nothing to do at your end. Any short link you have shared, whenever you shared it, now goes to the right place.

Version 2.108.1

August 10, 2026

We nearly created a batch of short links that pointed at the wrong site

  • Yesterday’s fix needed us to go back and create the short links that were missing. The tool that does that takes its settings from wherever it is run — and run from our test system, it would have stamped every new link with the test site’s address while writing it into the live one.
  • Every link would have worked, which is what makes it worth telling you about. They would have opened, looked entirely normal, and quietly taken people to our test copy of the site instead of the real one. Nothing would have reported a problem; we would have heard about it from someone weeks later.
  • The tool now refuses to run unless its settings all describe the same place, and prints where it is about to write before it does anything. It was caught while planning the work rather than after it — but it was caught by looking, not by any check we already had, which is the part we would rather not repeat.
  • Nothing to do at your end, and nothing was actually created incorrectly.

Version 2.108.0

August 10, 2026

Sharing an event handed you the long address instead of the short one

  • Share buttons are meant to give you a short, tidy link. On events they had started handing out the full, long web address instead — which is harder to read, awkward to send, and tells us nothing about how often it was opened.
  • The cause: we only created a short link once a programme had been broadcast. So a session announced in advance — exactly when you most want to send it to someone — had no short link to give, and the button quietly fell back to the long one. Forthcoming sessions now get one from the moment they are scheduled.
  • Every event that was missing one has been given one, so existing links you share from today are short.
  • The deeper problem was that each page worked out its own share link. Eight different parts of the site each did the same job separately, and any one of them could quietly get it wrong without anything looking broken. There is now a single share button used everywhere, and it works the link out itself — a page can no longer hand it the wrong thing, because it no longer hands it a link at all.
  • And when it does have to fall back, it now says so. Sharing a long link looked exactly like sharing a short one, which is the only reason this lasted as long as it did. It is not something you will ever see — the warning is for us, while we are building.
  • Nothing to do at your end. Share buttons simply give you the short link again.

Version 2.107.0

August 10, 2026

An upcoming programme never told you when it was — and its joining links were live from the moment we created it

  • You can now see exactly when a forthcoming session takes place. Until today an upcoming programme announced itself with no date and no time anywhere on the page. You could tell something was coming and not when — which, for a community spread across the world, is most of what you needed to know.
  • Your own local time is shown first, worked out from your device. If we cannot tell where you are, we show United Kingdom time and say so, rather than showing you a time and letting you assume it is yours.
  • Then the same session in twenty-six places, grouped by continent so you can open just your own. From the west coast of America through Europe and the far east of Russia, Qom, Najaf, Makkah and Madinah, Damascus, Istanbul and Egypt, across Africa from Senegal to South Africa, and out to Malaysia, Singapore, Indonesia, China, Japan and Australia.
  • Each one says when it falls on a different day for you — and that is the part that actually mattered. An evening session in Britain is four o’clock the following morning in Sydney and Tokyo. A bare clock time would have told someone to be somewhere at four in the morning without saying which morning, which is worse than telling them nothing.
  • The date is given in both the Gregorian and Islamic calendars, using the moon-sighting adjustment set for our community rather than a generic calculation.
  • And if we cannot read that setting, we leave the Islamic date out rather than print our best guess. A date quietly a day or two out is worse than no date at all: it would send people on the wrong evening, and nothing would look wrong to anyone. A missing one at least prompts somebody to ask.
  • The Zoom and Google Meet buttons no longer work weeks in advance. They were live from the moment a session was created, so a programme three weeks away offered a joining link that led to an empty room. They are now greyed until fifteen minutes before, and tell you how long that will be.
  • They stay open once a session has begun, on purpose. People arrive late, and a window that closed behind you would lock out exactly the person hurrying to join. Sessions already past are completely unaffected.
  • Nothing to do at your end. Open a forthcoming programme and the times are simply there.

Version 2.106.0

August 10, 2026

These release notes had grown too long again, so we have filed another stretch of them away

  • This page keeps only the newest releases; everything older is organised into dated sections. Another stretch has now been closed off and moved into the release archive, which lists every one of them.
  • Every link anyone has ever shared still works. If you have bookmarked or sent someone a link to a particular release, it now forwards to wherever that release has been filed and takes you to the right place on the page. Nothing you have saved needs updating.
  • We had let it run past our own limit before acting — again. We set a size at which this page should be split, and for the second time running we noticed only after passing it rather than on reaching it. The page was still perfectly readable; the reason the limit exists is that an earlier version of it grew until it stopped building at all, and took the whole site down with it when it did.
  • The tool that decides where to split was quietly measuring one part short. It reads how much is on each page to work out where the dividing line should go, and it was under-counting the page it was about to create — because the last entry on a page is measured differently depending on which kind of page it ends up on. The margin was comfortable enough that it changed nothing this time. Had we been cutting closer to the line, it would have put us over while reporting that we were under.
  • Nothing to do at your end. The only thing you may notice is that this page is shorter, and loads faster for it.

Version 2.105.0

August 10, 2026

An event with no trailer hid its artwork underneath the write-up

  • On the home page, an event shows its trailer first and its artwork lower down. That is the right order when there is a trailer — you should not have to scroll past a long write-up to reach the thing you came to watch.
  • But not every event has a trailer, and we had never allowed for that. Those events opened with several hundred words of description, with the only picture they had sitting right at the bottom where most people would never reach it.
  • Now, when there is no trailer, the artwork takes its place at the top. Events with a trailer are unchanged — the trailer still leads, and the artwork still appears further down, so a card can show both.
  • Nothing to do at your end. Affected events will simply look right the next time you visit.

Version 2.104.0

August 10, 2026

We tested whether a recent change actually improved anything, and the honest answer is that it did not

  • A recent release gave our writing tools more of the surrounding text when a passage had been divided up for searching. It sounded like an improvement. Rather than assume it was one, we compared the same story idea written both ways, side by side, with nothing indicating which was which.
  • Across thirty-one comparisons, there was no measurable difference. More than half were judged equally good, and the small edge the newer version had is well within what you would get from tossing a coin. We are recording that plainly rather than presenting a narrow margin as a win.
  • The check that made that answer trustworthy did its job. Some of the comparisons secretly had the same thing on both sides. Those came back “equally good” three times in four — so the person judging was not inventing differences, which is what makes the rest of the result worth reading at all.
  • But we also found that check had less power than it looked. Only two of those hidden comparisons produced a preference either way, and with so few it could not have detected a problem however badly things were skewed. The tool now says so out loud when that happens, rather than reporting a pass that was never capable of being a failure.
  • We had written down three possible outcomes, and there were four. We had allowed for “better”, “no difference”, and “the test is unreliable” — and left out “worse”. A set of possible answers that cannot express the unwelcome one is not a fair test, so it has been added.
  • The scoring itself is now something anyone can re-run. The first time we worked these numbers out it was with a throwaway calculation that no longer existed an hour later, which would have left every figure as something we said rather than something anyone could check. The answers being judged are kept alongside it for the same reason.
  • The change being tested is staying. It is honest about what it is doing, it costs little, and it does no harm — it simply has not earned the claim that it makes the writing better. A larger idea that was waiting on this result has been told the evidence did not arrive.
  • Nothing to do at your end. All of this is behind the scenes.

Version 2.103.0

August 10, 2026

A job that was running said it was waiting, in a queue it was not in — and there was no way to stop one

  • Our internal jobs screen exists to answer one question: what is happening right now? It was getting that wrong. A voice recording being made this second was listed as waiting its turn for picture generation — which is a different queue, that it was not in — while the same screen said nothing at all was running. The recording itself was perfect throughout; only the reporting was false.
  • The cause was that the work never announced it had started. Progress was being sent to the screen of whoever kicked it off, in detail, and written down nowhere. So anyone looking anywhere else saw a job that had been created and, as far as the records went, never begun.
  • We had fixed exactly this before, and this had sat outside the fix. An earlier round corrected the same fault for everything that queues for picture generation. Making a voice recording does not queue for that, so it was not in the group that was looked at, and it quietly kept the problem.
  • The queue was also mislabelled for everything else that does not use it. Anything merely waiting to begin was announced as waiting for picture generation, whether or not it had anything to do with pictures. Those are now told apart, and the two are described honestly.
  • Voice recordings can now be cancelled, and cancelling genuinely stops the work. There was no way to stop one at all — a long recording started by mistake had to be waited out. The important part is the second half: it would have been easy to add a button that marked the job as stopped while the work carried on regardless, which is worse than having no button, because a cancel that appears to work is believed.
  • It tells you what it is really doing. The button says “stopping”, not “stopped”, because a recording is made in sections and it stops at the end of the section it is on. And a recording you stopped on purpose is recorded as cancelled, not as a failure — the difference matters when someone reads the history later and wonders what went wrong.
  • Nothing to do at your end. This is all behind the scenes, in the tools we use to produce audio.