This site publishes itself every morning at 08:00 KST, unattended. Building that
pipeline turns up things that are wrong. These are the ones worth writing down:
what broke, what the numbers actually were, and what the fix was, with the code.
Not news summaries: a record of this site itself.
A 403 looked like a rate limit, so I spent ten days fixing the GitHub token. Only after I logged the response body did I see the wall was not GitHub but the cloud environment the pipeline runs in.
We put the numbers on /data so readers can count what we filtered out for themselves. But the page said "98 minus 2 leaves 59 candidates." 98 minus 2 is 96. A whole pool, our domestic Korean news, was missing from the math on screen.
We answer "have we run this already?" by title, but the two titles being compared are built by different code. One truncates, the other restores. Entries that never matched were never filtered, and yet the filtered count rose every day.
I logged which feeds failed but not why. The morning after I started logging the reason, the cause showed up, and one of them had been arriving with a success-family status code.
One rule keeps a single outlet from taking over. One keeps the same event from running twice. One keeps posts that are not news out. Over the past month all three turned into their opposites, doing exactly what they say, without making a sound.
A three-article cap keeps one outlet from owning the edition. It lifts entirely rather than leave a slot empty. That happened four times in 28 editions, and only twice because the news was actually thin. One was a configuration mistake of mine. One I still cannot explain.
The keyword extractor behind our cross-source bonus only matches capitalized ASCII, so Korean headlines cap out at 3.0 against a weekday cutoff above 5. Yet they do run on Sundays and Mondays. Not on merit, but because the English feeds have gone quiet.