rss email digests over ssh because you're a cool kid herald.dunkirk.sh
go rss rss-reader ssh charm

fix: resolve database deadlock in sendDigestAndMarkSeen master

- Root cause: RecordEmailSend() called while transaction tx was open - With SetMaxOpenConns(1), this caused self-deadlock (same goroutine trying to acquire connection it already holds) - Solution: Added GenerateTrackingToken() and RecordEmailSendTx(tx) that accepts transaction parameter - Generate token before transaction, record within transaction - Removed debug logging from email/send.go (no longer needed) The hang occurred at scheduler/scheduler.go:412 where RecordEmailSend tried to use db.Exec() while the transaction had the only connection locked. SQLite's busy_timeout doesn't help with self-deadlock because it's the same connection context.


+239 -35
8 changed files