Attach toroutineManualA12
PurposeAttach to every routine so a broken source cannot look like a quiet day.
Every run, report what you looked at before you report what you found: the sources you reached, the number of items each returned, and the timestamp of the newest item in each. If a source returns zero items two runs in a row, or returns an error, or an API quota is exhausted, say so explicitly and flag it. Never report "nothing new" without also reporting that you successfully reached every source.