In scheduler.py, _check_issues() collects new issues across all repos and only calls _save_known_issues() once at the end of the loop. If an exception occurs mid-loop (e.g., a Telegram send failure or GitHub API error on the second repo), the known-issues state for already-processed repos is lost. On the next scheduler run, those issues will be treated as new again, causing duplicate notifications.
Suggested fix: Call _save_known_issues(known) after processing each repo inside the loop, so that progress is checkpointed incrementally. Alternatively, wrap the per-repo logic in its own try/except so one repo's failure doesn't prevent saving state for others.
Identified by minbot code review
In scheduler.py, _check_issues() collects new issues across all repos and only calls _save_known_issues() once at the end of the loop. If an exception occurs mid-loop (e.g., a Telegram send failure or GitHub API error on the second repo), the known-issues state for already-processed repos is lost. On the next scheduler run, those issues will be treated as new again, causing duplicate notifications.
Suggested fix: Call _save_known_issues(known) after processing each repo inside the loop, so that progress is checkpointed incrementally. Alternatively, wrap the per-repo logic in its own try/except so one repo's failure doesn't prevent saving state for others.
Identified by minbot code review