Thirty-one items reached Done this week and none went to Won't Do, against twenty-five the week before. Seven of the thirty-one closed on the Sunday the last entry was filed, after it had gone up — six of them CronCal's, and one of those the answer to a question that entry had left open — so they are counted here rather than there. Much of the rest came down to where a check gets its answers from.
Last week's entry held an upgrade back until a product question had an answer. The library behind CronCal's Quartz dialect had reached a new major version that changes what an expression means — it accepts a day-of-month and a day-of-week together where its predecessor refused them, and fires on either — so the same line now has two correct answers, depending on which version the reader's scheduler runs. The answer came that Sunday evening: two dialects. Quartz 3 and Quartz 4 now sit side by side, and plain Quartz still means the older, so a link anybody has already shared keeps the meaning it had when they shared it. One project cannot reference two major versions of the same package, so the newer engine is vendored as source: ten upstream files with only the namespace changed, each pinned by its hash, and a script that re-fetches the release and lists anything newer, since automated dependency updates cannot see source. The converter refuses to carry a step counted from a named day, such as FRI/2, between the two, and says why: it means different days in each. Two hundred and forty-six parsing cases and fifty-four firing cases from the new version's own tests passed on the first run.
That is also how the last engineering item on CronCal's acceptance checklist was met. It asked for every dialect to pass the canonical test suite, sourced from each library's own tests, and until this week the parsers had been checked only against cases written here. They are now checked against 950 rows generated from the Unix reference implementation's tests, 140 curated from Quartz's, and — since a major cloud provider publishes no test suite for its dialect — 39 taken from its own documentation. Cases written here test what their author thought of; a reference implementation's own suite tests what its maintainers were bitten by. Each corpus is pinned to the exact version the application ships, and a test fails when the two disagree, so no dependency bump lands until its corpus has been refreshed with it. That is deliberate. The last major version to arrive changed what an expression means.
Mutation testing — breaking the code on purpose to see whether any test notices — had been blocked since June. The tool could not run on the test platform this suite uses, and the one workaround tried then scored exactly zero, which turned out to be a fault in the tool rather than a finding about the tests. A newer release added a preview runner for that platform, and it was tried the way a note written the week before said it should be: smallest project first, and results checked before they were believed. Mutants were being killed by named tests, which ruled out the failure seen in June. Applied to the source by hand, one reported survivor passed the whole suite, so it was real; two others failed seventeen tests and two, so they were not. The runner reuses test processes between mutants, which makes its verdict unreliable for anything held in static state — two identical runs disagreed about the same nineteen — so those members are excluded, with a comment citing the upstream issue, and ordinary tests cover them instead. The cloud dialect's parser went from 80 per cent to 100, all 122 mutants detected, through twenty-seven gaps closed with tests and nine mutants marked equivalent in the code, each with the reason no test could ever kill it.
— On borrowed judgement —Our own tests check what we thought of. Somebody else's check what we did not.
With those in, CronCal's acceptance checklist was signed off against production on Thursday, every item re-run at a single commit. It has been amended four times since April, each time for a recorded reason, and last week's transfer budget is already earning its place: the home route downloads 3,464 kilobytes against 3,500. The headroom halved this week and the second Quartz engine is half the reason, which is the budget working — the next dependency will have to be argued for. The launch posts were parked. CronCal will be found by search rather than announced, so the domain was verified with the search engines and its sitemap submitted.
Two domains moved to a reject policy for mail this week, for opposite reasons. CronCal's sends no mail at all, so it now says as much: a sender policy that authorises nobody, a reject policy above it, and a null MX record telling anyone who tries to deliver there that nothing is listening. Straight to reject is right for a domain with no legitimate mail to break. An independent garage's domain does send real mail, from its contact form, so it sat at quarantine while the aggregate reports came in. Every report showed only its own mail, aligned, and on Wednesday the policy went to reject; a test submission afterwards passed every check. The ticket stays open for another fortnight of reports before anybody calls it finished.
The retained veterinary practice's enquiry and registration forms now work on the preview, and keep nothing. Each submission is relayed through a sending account and a spam check held in the practice's own name, to the practice's own inbox, and is stored nowhere on the way. They were tested with real submissions from a desktop and a phone, and judged by the headers of what arrived rather than by the green tick on the page: every message authenticated as the practice's own domain, passed the stricter check a mail filter applies to outside mail claiming to come from inside, and landed in the inbox; a reply went to the enquirer, as it should. Every way of being refused — the honeypot, validation, a missing spam token, no JavaScript, a post with no body at all — was exercised without a message being sent. The phone found the one thing no harness would have: it offered a human birthday for a dog's date of birth. The pet fields no longer accept autofill, and the label says whose birthday it wants.
The site build closed the next day. An automated accessibility check now finds nothing on any of eighteen page templates, and contrast was measured on every rendered text node — the text over the hero photograph against the photograph itself, not the colour the stylesheet assumed. The first performance run put the home page at 69 on a throttled phone, and the cost was decoration: two stacked drop shadows on the logo and a blur behind the chips, repainted through the entrance animation, were worth a second and a half of blocking time. With one modest shadow, and a tint where the blur had been, it scores 96 and weighs 388 kilobytes. No image or video encoder is installed on the machine that builds it, and none was installed: a headless browser drew forty-five images onto a canvas and handed back its own WebP encoding, 27 per cent smaller overall with the JPEGs kept as fallback, and the operating system's own encoder took the tour video from 31 megabytes to nine. The host then turned out to answer a request for part of a file with the whole of it, so the video could not be scrubbed and would not play on an iPhone at all. It now downloads once, on the first press, and plays from memory — seekable everywhere, for a short wait before it starts. The practice has approved the design and content, and what remains before launch is mostly the handover and the move of the domain.
In progress across every project stands at eight, as it did a week ago: one item closed, one opened.
Looked at together, the week's checks mostly borrowed somebody else's judgement: a reference implementation's own tests, a mail filter's verdict read out of the headers, a phone filling in a form the way phones do. Even the mutation tool, which exists to test the tests, had its verdicts tested by hand before any of them were believed. Checks written here are good at confirming what was already believed here. The most useful ones this week were written by somebody who believed something else.