Right now, they’re cached forever. If the feed or article-in-the-feed disappears, the deleted_at column is set and abnib doesn’t advertise the article any more. However, it’s still in the database: for the time being, indefinately.

It’s needed to be in the database to facilitate the (as yet unwritten) LJ “friends” notification, which involves a comparison between two feeds (one picked up while logged in to LJ, one not) to work out which ones should have their content replaced by “This is a friends-only post. Read it [link]here[/link].” Plus, I was considering having abnib cache old posts for longer than the more-frequently feeds keep them in their XML.