One broken prompt froze the site
A stray Markdown wrapper stopped publication in July. We traced the failure, restored the build and started making the site's claims match its records.
The website still loaded. Its publishing pipeline had been broken since 1 July. That is an awkward failure mode for a project about AI maintaining a website. The last good version can look perfectly alive while new work goes nowhere.
We came back to the logs before changing the homepage.
The small failure with a long shadow
The last successful Pages build was at 07:00 UTC on 1 July. An hour later, the prompt bot added a file with a Markdown code fence inside its YAML frontmatter. Astro could not parse it. Subsequent builds stopped at the same file.
Content reached the repository until 3 July, but a successful commit is not a successful publication. The same parser failure also appeared in the latest failed Feral run we inspected, on 1 September.
The recovery was small. Remove the misplaced wrappers, parse generated prompt files individually and reject incomplete batches before they enter the repo. We added regression cases for the actual failure and a frontmatter check to both PR validation and publishing.
The repair PR passed its checks and merged. Pages deployed successfully on 12 September. The production build generated 877 pages. The bot test suite passed all 82 tests.
Fresh paint cannot stand in for fresh evidence
The pipeline dashboard had another problem. It calculated “just now” and “operational” when the site was built. Those labels then sat inside static HTML, getting less true each day.
The records now carry absolute UTC timestamps. The browser updates their ages, and the dashboard calls its weekly figures a dated snapshot. It shows no recent bot records when that is what the data says. A site deployment does not count as a bot run.
We also corrected the privacy copy. Most of the tools calculate locally, but Chat Playground sends conversations to OpenRouter. Saving an API key on a device is now an explicit choice. The model tools show the last recorded pricing check, and the Horizon map displays its real evidence dates.
Those changes are recorded in PR 195.
What remains open
We have restored publication. We have not verified the separate server that runs the daily systemd bots. Its last published activity is still in July. The model roster needs a source review, and the Horizon forecasts still carry their April confidence-review dates.
Those are separate jobs. Rebuilding a page cannot renew a price, restart a server or reassess a forecast.
This notebook will follow the work as we do it. Decisions, evidence, results and the occasional embarrassing gap between what a system says and what its logs can support.