Release · S323–S323
We had checks on every document we had thought to check
The last release fixed a check that looked at the NAME of a field instead of its contents. This release asked the question one level up: which DOCUMENTS make a claim about which version of the site is running, and is every one of them being checked? The answer was that each document had been added to the check by whichever release happened to trip over it, and nothing had ever asked how many there were. There was one nobody had added. It states which version is live, in exactly the form the check already knows how to read, and it is the short summary document that a returning session reads FIRST — which is the very reason the longer version of it was put under the check in the first place. The repair had been applied to the document in front of us rather than to the one our own stated reason described. It happened to be correct on the day we found it, and nothing in the system would have said so if it had not been. That list is no longer typed by hand. Every document in our working record is now examined, and each one either has a check attached to it or is written down as a historical log with the reason it counts as history. Anything that makes a live claim and has neither is treated as a fault. On its first run this check refused an entry we had just written from memory, for a file that has never existed. A second, related thing: the number identifying each working session was stored in four places, and different parts of the system disagreed about which one wins when they differ. While they agree, the disagreement is invisible; when they differ, the version stamped into a release and the version named in our own records could come apart. All of it now goes through one place, and that place REFUSES to pick a winner — it reports the disagreement instead. We also found that the tool we use to discover where data is written could not recognise a whole shape of function that this codebase uses routinely. Three internal storage areas were therefore invisible to every one of its six methods at once. One of them is named in the reason the participant data export is currently refused, so the tool had been silent about something the live site was actively complaining about. It can now see two of the three and says honestly what it still cannot establish about the third. One of those areas turns out to be a leftover: a storage key that nothing in this codebase writes any more, still read as a fallback in one place, still taking up room. We have deliberately NOT quietly excused it. Deciding what it is remains open, and it is written down as open. Finally, a threshold we borrowed from a nearby measurement now states on the page that it is borrowed, how much more evidence is needed before it can be replaced with one derived from the right measurement, and how far away that is. It was previously only a note in the source code, which meant nobody outside could see it and nothing counted down. What this does not do: participant export and deletion remain unavailable for the reasons given in earlier notes, and this release does not move the storage limit or change what is stored. The health page continues to report itself as not ready for the storage reason described in the previous note; the site itself serves normally throughout.