diff options
| author | Peter Stone <thepeterstone@gmail.com> | 2026-07-22 16:15:32 +0000 |
|---|---|---|
| committer | Peter Stone <thepeterstone@gmail.com> | 2026-07-22 16:15:32 +0000 |
| commit | 2c04d2dbef2e36025a4b795291117ad208fba411 (patch) | |
| tree | c08a1e1e1e4eed22dea962cdf2e7060dc3f83d26 | |
| parent | d8ce4b3c0f383e844b125d2d3abd618715bb3c89 (diff) | |
Add backlog note: feed health (recency/frequency, dead-feed detection)
Captured while migrating 108 feeds from Inoreader, which surfaced ~19
feeds manually flagged dead over there with no equivalent detection in
this app yet.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01EZ7ikw2ukGJFTHE3bJS7zL
| -rw-r--r-- | BACKLOG.md | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/BACKLOG.md b/BACKLOG.md new file mode 100644 index 0000000..6e95f7b --- /dev/null +++ b/BACKLOG.md @@ -0,0 +1,36 @@ +# Backlog + +## Feed health: recency/frequency tracking + dead-feed detection + +**Motivation:** migrating 108 feeds from Inoreader surfaced ~19 feeds the +user had manually flagged "dead?" over there — there's currently no way +for this app to tell that on its own. Want automatic detection instead of +relying on manual tagging carried over from another tool. + +**What's needed:** +- Track each feed's normal posting cadence (e.g. median interval between + the last N articles' `publishedAt` — already stored on `ArticleEntity`, + no new fetch required, just a read-side computation). +- Surface a "stale" indicator on the feed list when a feed has gone + quiet for meaningfully longer than *its own* historical cadence — not + a fixed global threshold. A feed that normally posts yearly shouldn't + be flagged after 3 quiet months; a feed that normally posts daily + should be flagged after a couple of quiet weeks. +- Treat "feed URL itself is broken" as a distinct, stronger signal from + "author's just gone quiet": `FeedEntity.lastError` already records + fetch failures (404s, parked domains, etc.) — a feed with several + consecutive failures is a different case than a live, fetchable feed + that simply has no new posts. + +**Rough shape (not yet built):** +- Compute per-feed on read (no new table needed at first): take the last + N `publishedAt` values for a feed, find the median gap, compare against + time since the most recent post. Flag if the current gap is some + multiple (e.g. 3x) of the historical median. +- `FeedListScreen`: a small badge next to the feed row when flagged, + distinguishing "quiet" (posting-cadence signal) from "broken" + (`lastError` signal) since they call for different user action (wait + it out vs. go look for a replacement feed). +- Out of scope for now: any automated "find where the author moved" + logic — that's a manual research task when a feed's actually declared + dead, not something to build detection for. |
