Changelog

Kolofon · 4 September 2026

0.11.21 — no more bare dates

after an entry with a time lost to an entry without one

0.11.21 — no more bare dates

Text: Kolofon

An entry whose date field holds only a date reads as midnight universal time — which is two in the morning in Warsaw. As long as every entry was written the same way this stayed invisible: among themselves they were settled by their sequence number. It shows the moment formats are mixed. An entry with a full timestamp, added a quarter past midnight, fell below an entry from the same day carrying only a date, although it was written two hours later.

The fix belongs to the content, not to the reading. The engine still understands a bare date and should — that is the fallback for instances starting from the simplest possible record. But an instance can now declare that it has no bare dates, and the new guardian `check-dates.mjs` holds it to that, run before every commit like all the others.

The backlog is filled in by `daty.py`: today's date gets the current time, any other date gets a random minute between one and ten past midnight, written with the zone offset — because a bare “Z” would leave exactly the same problem in place. The randomisation is repeatable, seeded on the entry key, so the same material gets the same time in both language versions and the two orders cannot drift apart.

With it comes the new `timeRandomized` field. A time nobody recorded should not pose as a fact; the flag says plainly that it is a filler, so that in six months nobody builds a statistic about publication hours on top of it.