Changelog — 2.16–2.24
Releases 2.16.1 through 2.24.1. Current releases are on the main changelog, and every band is listed in the release archive.
Loading audio...
Version 2.24.1
July 24, 2026Poems and verse now keep their line breaks
- Poetry in an article was being run together into a single block of text. Where a poem should have appeared line by line, its lines were collapsed into one paragraph — our mistake in how the page handled line breaks.
- It now displays as it was written, line by line, with stanzas separated. The same correction carries through to the plain-text versions we recently added for AI assistants.
- Nothing to do at your end — affected articles display correctly now, automatically.
Version 2.24.0
July 24, 2026Making our writing readable by AI assistants, properly
- Events and articles now offer a plain-text version, the same way reflections and vignettes already did. Add
.mdto the end of the address of any event, session or article and you get just the words — no menus, no buttons, no page furniture. - This is for the AI assistants people increasingly ask about us. When one reads an ordinary web page it has to guess which parts are the article and which are navigation, and it guesses wrong more often than you would think. Handing it a clean version means that when someone asks an assistant about a majlis or a piece we published, it is working from what we actually wrote.
- Poetry now survives the trip. Our first version of this quietly ran verse together into a paragraph, because of how line breaks work in plain text. We found it by reading the output of a real poem rather than a test, which is the only way that sort of thing gets found.
- Meeting links are deliberately left out. A Zoom or Meet link is an invitation to a gathering, not something to publish into a corpus that machines read. The web page still shows them to people; the plain-text version never carries them.
- Nothing to do at your end, and every page looks and works exactly as it did.
Version 2.23.1
July 24, 2026Security hardening
- We tightened access to a set of internal tools that should never have been reachable without signing in. They belonged to the rulings library, which is being rebuilt as a separate product and has been switched off here for some time.
- The scripture library is unaffected and stays exactly as it was — reading, searching, notes and clips all continue to work without an account, as before.
- Nothing to do at your end, and nothing you use has changed.
Version 2.23.0
July 24, 2026Tidying the tools our editors use every day
- This one is behind the scenes — it changes the screens our editors work in, not the site you read. We write those up anyway, because the people running the site are users of it too, and “internal” is an easy excuse for never explaining anything.
- The editing dashboard had a section that had quietly become a drawer. One panel held nine unrelated things whose only shared quality was not belonging anywhere else. It is now split in two: one place for things you go to look at, another for things you go to change.
- We also removed two panels for tools that have moved out to their own projects. They had been switched off for months but were still sitting in the code, which is its own kind of mess — anyone reading it would reasonably have assumed they were still in use.
- Nothing to do at your end, and nothing about the public site has changed.
Version 2.22.0
July 24, 2026When something breaks on the site, we now find out without being told
- Until now, a page that failed was recorded only in a log file on the server — which meant, in practice, that nobody saw it. The way we usually learned a page was broken was somebody mentioning it. That is a poor way to run a site, and it put the burden on you.
- Failures are now collected automatically and grouped. If the same fault happens two hundred times it appears once, with a count, so the genuinely serious problems are not buried under repeats of a small one.
- The error page now says something more useful. If you ever land on it, it tells you plainly that the problem is at our end rather than yours, that it has already been reported to us, and that trying again often works.
- We deliberately do not show you any technical detail when something fails. The message you see is fixed wording that is never built from the underlying fault, so it cannot accidentally reveal anything about how the site is put together. The detail goes to us, not to the page.
- Nothing to do at your end. If you have hit an error on the site recently and said nothing, we will most likely now be looking at it anyway.
Version 2.21.1
July 24, 2026One of our publication logos was out of date on the home page
- Pure Wilayah’s logo had been updated, but the home page was still showing the old one. The row of publication icons at the very top of the site had the new logo; the news ticker and the “Latest Content” boxes underneath had the old one. If you noticed and wondered which was right, the one at the top was.
- The cause was that logos were being read from two different places. One was the publication’s own record, which is what our editors update. The other was a copy stored inside the site itself, which nothing updates. The two matched for years simply because no logo had changed — so the first time one did, only half the site noticed.
- We removed the copy rather than correcting it. Every logo on the site now comes from the publication record and nowhere else, so this particular mismatch cannot happen again. Correcting the copy would have fixed today’s symptom and left the cause in place.
- Nothing to do at your end. You may notice the Pure Wilayah logo change on the home page — that is the correct, current one.
Version 2.21.0
July 24, 2026Our editing tools were checking permissions in the wrong place
- Some pages in our editing tools checked who you were only after they had already loaded. That check now happens on our servers before the page is built at all, so a page you are not meant to open is never sent to you in the first place.
- Two of those pages were checking the wrong thing entirely. They asked “is this person an editor?” when what they meant was “is this person a senior editor?” — two settings whose names differ by a single word. The effect was that the page appeared and then showed a confusing red error that blamed the connection for what was really a permissions decision. Now anyone who opens a page above their level gets a short, plain explanation of why, and a way back.
- Permissions are now re-checked against your actual account, not a remembered sign-in. Previously, changing someone’s level or deactivating their account could take up to a day to affect which pages they could open, because the answer was being read from the sign-in they already held. It now takes effect immediately.
- Nothing was ever exposed by any of this — the underlying content was always checked separately and would not load for the wrong person. What was wrong was the page appearing at all, and the unhelpful way it failed. We would rather say so plainly than let it pass as a tidy-up.
- Nothing to do at your end. If you only read the site, none of this affects you.
Version 2.20.2
July 24, 2026Search engines were only being told about a fraction of our site
- We hand search engines a list of every page we have. For a while, that list was being built at the wrong moment — before the site had access to its own content — so for a period after each update it named only our twenty-one main pages and none of the reflections, events or vignettes. It then quietly corrected itself an hour later, which is precisely why it went unnoticed.
- Now the list is built fresh every time it is asked for, so it always includes everything we have published. This should help people find our reflections and events through search rather than only by visiting directly.
- We also fixed the silence around it. When building that list failed, nothing was written down anywhere — it simply produced a shorter list and carried on. It now reports the problem properly instead of quietly handing over an incomplete answer, and our deployment checks look for the actual content rather than merely counting entries.
- Nothing to do at your end.
Version 2.20.1
July 24, 2026Three fixes: vanishing pictures, and a draft that should not have been readable
- Regenerating a picture could break the very item it belonged to. When an editor asked for new artwork on a reflection, an event or a vignette, we tidied away the old picture straight away — before the new one had actually been saved. If the editor then stepped away without saving, the item was left pointing at a picture that no longer existed, and showed a broken image. We now leave the old picture alone until the new one is safely saved. We found this on reflections and then checked the rest: the same mistake was waiting on events and vignettes, and all three are fixed.
- Reflections scheduled for a future date now have their AI-readable version too. Scheduled reflections already appear on the Reflections page, but the plain-text version we added yesterday for AI assistants was refusing to show them — visible in one place, missing in another. They now match.
- A draft reflection could be read by anyone who had its web address. Drafts were correctly hidden from the Reflections page, from search engines and from the AI-readable version — but the reflection’s own page had been left without the same check, so an unpublished draft would still open. It now behaves as though it isn’t there, exactly like an address that was never used. Editors who are signed in can still open a draft at its real address to review it before publishing.
- Nothing to do at your end. If you spotted a reflection with a missing picture, opening it now should be back to normal.
Version 2.20.0
July 23, 2026A plain-text version of our content, made for AI
- We want AI assistants to read our work as easily as people do. Every reflection and vignette now has a clean, plain-text (Markdown) version, made specifically for AI — add
.mdto the end of the address and you get just the words: the title, the writing, and the scripture, with none of the surrounding page furniture. - Why it matters. AI systems read this stripped-down version far more reliably and efficiently than a full web page — an independent check measured it at well under half the size. So when someone asks an AI about our reflections, it has the cleanest possible version to work from, and links back here.
- Reflections and vignettes are live now, with events and articles to follow. This is part of our commitment to being genuinely welcoming to AI, not just to people. Nothing to do at your end — the pages you read are exactly as before.
Version 2.19.4
July 23, 2026Making our content easier for AI assistants to find
- We want AI to read, use and cite our work. We are, and intend to stay, genuinely AI-friendly — our material is meant to be discovered and shared. We keep a small guide file that points AI assistants to our content, and we have expanded it to include our events, help pages, and this changelog.
- Some behind-the-scenes tidying too, so that our development and live sites are kept properly separate as far as search engines are concerned. Nothing on the live site looks or works any differently.
- Nothing to do at your end.
Version 2.19.3
July 23, 2026A few rough edges smoothed off
- The older changelog can be listened to again. When this page was split so each major version has its own page, the spoken version of the version 1 page stopped playing. That is fixed — the audio player is back on that page.
- Clearer prompts when preparing a reflection. On the editing side, if a reflection is saved without its dates set, the editor now says exactly that and takes you straight to the date fields, instead of a vague “couldn’t save” message.
- Saving a draft keeps your place. Saving a reflection as a draft now leaves you on the reflection you are working on, rather than jumping back to the list — and if artwork or a video is still being made, stepping away now asks first, so nothing is lost by accident.
- Nothing to do at your end.
Version 2.19.2
July 23, 2026Our internal audio tools are now team-only
- The tools we use to create the spoken version of a page are for our team. We tidied up the checks behind them so that only a signed-in team member with the right role can use them. This is routine housekeeping on the editing side of the site.
- The audio you can play on a page is completely unaffected. Listening to the spoken changelog, the help pages or the privacy page works exactly as it did before — this change is only about who can create that audio, never who can play it.
- Nothing to do at your end.
Version 2.19.1
July 23, 2026Security updates to sign-in, and making sure removed articles stay removed
- We picked up security fixes for the part of the site that handles signing in. Some security issues were published this week in software we rely on for logging in — not because of anything we changed, but because such issues are found and disclosed over time. We updated to the fixed versions promptly. If you are signed in, you do not need to do anything.
- A deleted article now disappears from the whole public site, not just the editing tools. Until now, deleting an article removed it from the place editors look, but the article’s own page, its listing on the publication, and the map we hand to search engines could all still show it. Deleting now means gone from every one of those places. Being careful here matters: the editing tools looked empty, which made it easy to believe the article was gone when it was not.
- The sitemap we give to search engines now keeps itself up to date. It used to be frozen at the moment the site was last rebuilt, so a newly added or newly removed page could take a while to be reflected. It now refreshes on its own.
- Nothing to do at your end.
Version 2.19.0
July 23, 2026Some of the older recordings carry more than the talk
- On some of the older sessions the recording runs on well past the end of the talk. The nasheed, the ziyarah and the discussion afterwards were all captured in one go. For the reading room we want the talk itself, so whoever is preparing a session can now listen, find the point where it ends, and set that as the ending.
- The complete recording is never thrown away. Choosing that point by ear means sometimes landing a little early or a little late — that is normal, not a mistake, so putting it right had to be quick. The full recording is always kept alongside, going back to it is instant, and nothing is ever lost by trying.
- Every correction is taken from the complete recording, never from the previous attempt. Had we not been careful about that, each correction would have shaved a little more off the talk, and every single step would still have looked correct at the time. We check it in the one way that can actually tell the difference: ask for a later ending than before and confirm the missing audio comes back.
- We check the recording that was actually saved, not that the tool said it worked. The tools involved will report success on all sorts of odd input, so afterwards we fetch the saved recording back, measure how long it really is, and treat anything unexpected as a failure — leaving the session exactly as it was rather than half-changed.
- Nothing has changed on the site yet. This is preparation work on the reading room, which is still being built. Nothing to do at your end.
Version 2.18.3
July 23, 2026This page is now one page per major version
- This page used to carry every release we have ever made — ninety of them. It has been growing since the beginning and nothing ever came off it. Last week it got large enough to defeat the machine that builds the site, which we patched by giving that machine more room. That was a plaster, not a repair: the page would have grown past the new limit too.
- So each major version now has its own page. This one keeps the current releases — everything from 2.0.0 onwards. The 1.x releases have moved to a page of their own, linked at the foot of this one. Each page is a fraction of the size, and a new major version starts a fresh page rather than adding to a pile.
- Every link anyone has ever shared still works. This was the part we were most careful about: a link to an older release now points at a page that no longer holds it, and a browser does not complain about that — it just quietly leaves you at the top, reading the wrong thing. Those links are now forwarded to the right page automatically.
- The spoken version follows the same split, so each page can be listened to on its own rather than as one very long recording. Nothing to do at your end.
Version 2.18.2
July 23, 2026This page had grown big enough to break our own workbench
- Nothing on the site has changed, and nothing you can see is different. This is a note about the page you are reading right now.
- The changelog has become the largest single page we have. It holds every release we have ever made, ninety of them, all in one place — and it had quietly grown past the point where the machine we build the site on could assemble it. That machine simply gave up part-way, which made a handful of unrelated things look broken for a while.
- Given more room to work, it builds again in thirteen seconds. That is the immediate repair, and we have written down plainly that it is a patch rather than a cure — the page gains a section every release, so the same wall is waiting further along.
- The proper answer is to give each major version its own page. We have measured what that would save and noted the one thing it must not break: every link anyone has ever shared to a particular release has to keep working. Nothing to do at your end.
Version 2.18.1
July 23, 2026Tidying the desk our editors work at
- Nothing on the site itself has changed. This is housekeeping on the screen our own team uses to write and publish — but the people using those tools are readers of the site too, so it is worth writing down.
- Things that belong together now sit together. The controls for our long study series and the controls for articles were in two separate boxes, despite doing much the same job through much the same machinery. They are now one, with a clear line between the two halves and each half keeping its own colour. The same has been done for our daily reflections and our illustrated stories.
- Two rows instead of three, every panel the same size. Less scrolling to reach anything, and a shape that stays tidy on a tablet as well as a desktop.
- Nothing to do at your end.
Version 2.18.0
July 23, 2026Bringing the study series across, without quietly losing any of them
- The tool that brings long study series into the reading room is now built. It reads the full list of published sessions, works out which series each belongs to and what number it is in that series, and shows all of it for a person to check before anything is brought across. Nothing is imported automatically, and nothing is imported without someone confirming it.
- The listing we read from does not always hand back everything it has, and it does not say so. Asked for the sessions one page at a time, it returned 138 of the 165 that exist — with no error, no warning and no gap you could see. A 68-part series would simply have shown 41 parts and looked complete. We now ask in heavily overlapping batches, which recovers all 165, and every check is compared against the one before it.
- Comparing the totals would not have been enough. If one session disappears in the same week two new ones are published, the total goes up and the loss is invisible. So we compare the sessions themselves, one by one, and say exactly which one has gone missing rather than only that the number moved.
- The recordings come across as audio. Each session’s talk is the speaker’s own recording, taken from the published video and kept as audio only. There is no synthetic narration anywhere in this, and there never will be. Pictures are copied across too, so a session does not depend on anything outside our own storage to keep looking right.
- Three things our own notes had recorded wrongly turned up while building it. The pattern we use to read session numbers missed four sessions; there are ten hand-written contents pages rather than eleven; and the way we read a session’s text needed a step nobody had written down. All three are corrected, and the checks that found them now run every time.
- Nothing has changed on the site yet. This is the machinery behind the reading room, not the reading room itself — that comes next. Nothing to do at your end.
Version 2.17.0
July 22, 2026Arabic and Farsi were being laid out the wrong way round
- Wherever Arabic, Farsi or another right-to-left script appears in a piece of writing on the site, it now reads right to left, as it should. Until now it was laid out left to right. The commonest case by far is a scripture passage set beside its English translation and a reference — and that mixed case is exactly the one that looked worst.
- We checked this against the whole collection rather than a sample. A little over four thousand quotations, of which nearly nine in ten mix the two scripts inside a single passage. That majority ruled out the simpler fix we might otherwise have reached for, which would have turned those passages round the wrong way instead of correcting them.
- A warning we had written to ourselves turned out to be wrong. Our own notes cautioned that Arabic headings would break the links in a contents list. Measured against the actual material, there is not one such heading in nearly five thousand. There is a real fault there — but it is caused by repeated English headings, and we would rather fix the thing that is actually broken than the thing we had assumed.
- Behind the scenes, the editing tools for a new reading room. Somewhere to arrange long study series into ordered sessions, group them into parts, and correct where each one belongs. Nothing is published through it yet — the reading room you would actually read in comes next.
- Nothing to do at your end.
Version 2.16.5
July 21, 2026An error message in our editing tools said more than it needed to
- Nothing a visitor could ever have seen. This message appeared only to signed-in members of our team, and only when a story’s video could not be produced. No content, account or personal information was involved.
- It described how our systems are put together — detail the person reading it could do nothing with, and which we have a standing rule against showing on any screen, our own included. The improvement we shipped yesterday introduced it; we would rather correct that the same day than let it sit.
- The message now says only what is useful: which panel needs attention and what to do about it. The technical detail still goes to our internal records, where it belongs and where it is actually read.
- Nothing to do at your end.
Version 2.16.4
July 21, 2026Replacing a picture in a story could lose it
- This one is about our own editing tools rather than the site you see — but it held stories up. When someone on our team regenerated a single panel of a picture-story, the replacement was created correctly, but the record of it was only held in the browser they were working in, and the previous picture had already been removed. If the page was reloaded before saving, the story was left pointing at a picture that no longer existed, and its video would not build.
- The replacement is now recorded the moment it is made, and the old picture is not removed until it has been.
- And when a picture genuinely is missing, we now say which one. Video production used to run for several minutes and then stop with a technical message naming an internal filename. It now checks every panel before it starts and says plainly which panel needs attention.
- Why mention an internal tool at all? Because it is why a story or two took longer to appear than it should have — and because the people using these tools are users of the site too.
- Nothing to do at your end.
Version 2.16.3
July 21, 2026The words under our story panels were our own working notes, not the story
- If you have read a picture-story on the site recently, you saw this one. Under each panel there should have been the line of the story that panel illustrates. Instead we were showing the description used to produce the picture — a flat account of what the scene should contain, meant for drawing it, not for reading. The story text had been there all along; we were simply displaying the wrong one of the two. Every story now shows the story.
- Busy places can look busy again. Wide establishing shots — a masjid at prayer, a street, a market — could previously only show one person, which made them feel oddly deserted. Those scenes may now include a few people in the background, seen at a distance or from behind. Scenes that follow a particular character are unchanged, so nobody’s face drifts between panels.
- We found a way our writing tools could quietly lose their sources. Before we generate a reflection or a story, we look up the relevant scripture passages so the result is grounded in them. If that lookup failed, the tools carried on regardless and produced something that read perfectly well but was no longer anchored to anything. It now stops and says so. This affects what we publish going forward — we cannot say retrospectively which past pieces were written during such a moment, and we would rather tell you that than imply a certainty we do not have.
- Story videos should fail to appear less often. A brief network hiccup while producing the narration used to abandon the whole video. It now simply tries again.
- Nothing to do at your end.
Version 2.16.2
July 19, 2026We were estimating our own running costs. Now we record what we were actually charged.
- Still nothing you will see — this is the second half of the correction described below, and like that one it changes no feature and no content.
- The previous fix put the costs in the right place. This one makes them true. Every figure we kept was worked out by our own code from a price list we maintained by hand. Price lists go out of date quietly — nothing breaks, the numbers just drift — and one of ours had been wrong by a factor of about thirty for some time.
- It turned out the supplier had been telling us the real amount all along, on every single request, and we had simply never read it. We do now. Our records are the amounts we were actually billed rather than our own arithmetic, and where we still have to estimate, the record says so plainly instead of quietly presenting a guess as a fact.
- Why this matters more than it sounds. These are the numbers we use to work out what we can afford to build for you next. A number that looks confident and is wrong is worse than no number, because you plan around it.
Version 2.16.1
July 19, 2026A correction to our own record-keeping
- This one changes nothing you will see. We keep internal records of what it costs us to run the tools behind the site. Those records had two faults, and we have corrected both.
- Some of that work was being attributed to the wrong place, and some was being recorded as costing nothing at all. No feature behaved differently, no content was affected, and nothing you have read, watched or listened to was touched by this. The fault was entirely in our own bookkeeping.
- Why mention it at all? Because we use those numbers to decide what we can afford to build next — and we would rather the record showed we had found it and fixed it than quietly patch it and say nothing.
- We have also started writing automated checks that run before any change reaches the site, beginning with the ones that would have caught this. It is a small start and we are not pretending otherwise, but it is the difference between finding a fault like this eventually and being told about it immediately.
- Nothing to do at your end.