diff options
Diffstat (limited to 'project_feedreader_feature_candidates.md')
| -rw-r--r-- | project_feedreader_feature_candidates.md | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/project_feedreader_feature_candidates.md b/project_feedreader_feature_candidates.md new file mode 100644 index 0000000..421e385 --- /dev/null +++ b/project_feedreader_feature_candidates.md @@ -0,0 +1,57 @@ +--- +name: project-feedreader-feature-candidates +description: "Candidate FeeDreader features sourced from NetNewsWire's open feature requests + Brent Simmons' 'After Fixin' the Bugs' post (2026-08-26) — for future discussion, not yet committed to BACKLOG.md" +metadata: + node_type: memory + type: project + originSessionId: dc4bccb0-7454-412c-9fcd-f9e336f62a74 + modified: 2026-08-29T21:13:03.407Z +--- + +Peter asked me to research NetNewsWire's (https://github.com/Ranchero-Software/NetNewsWire) +open feature-request issues plus Brent Simmons' blog post "After Fixin' the Bugs" +(https://inessential.com/2026/08/26/after-fixin-the-bugs.html, NNW down to 10 open bugs, +now facing 556 feature requests) for ideas relevant to [[project-feedreader]]. He ruled out +sync, social features, and unread-count changes as not interesting. Confirmed two things +against the actual FeeDreader code (as of 2026-08-27): + +- **Thumbnails/enclosures: already fully built**, matching Brent's own dependency chain + ("thumbnails depend on enclosure/Media RSS support"). `FeedParser.kt` parses + `media:thumbnail`, `media:content`, RSS `<enclosure type="image/*">`, Atom + `rel="enclosure"`, plus a first-`<img>` fallback → `ArticleEntity.imageUrl`, rendered as + both the list thumbnail and reader hero image. Worth testing against a Mastodon feed + specifically — Brent flags that as the case where the image lives only in the enclosure, + not the body. +- **Pause/disable a feed: not built at all.** No `isPaused`/`isEnabled` field anywhere in + `Entities.kt`/`Daos.kt`. NNW itself has two separate open, undesigned requests for this: + #3401 "Disable feed" (hide but keep, 2022) and #4708 "Pause feed setting" (stop fetching + temporarily, Aug 2025) — neither has maintainer commentary yet. Cheapest shape for us: a + per-feed `isPaused` bool, skipped during refresh, row shown grayed out rather than hidden + (fits the existing "Last fetch failed" virtual-section pattern). + +**Candidate feature list (not yet in BACKLOG.md):** +1. Regex filters — extend existing keyword mute/highlight to pattern matching. NNW's + oldest open feature request (#1864, since 2020). +2. Pause a feed — see above. +3. Limit posts/day from a noisy feed (NNW #4889) — inverse of the dead-feed-detection + backlog item: some feeds post too much instead of going quiet. Could reuse the same + per-feed cadence data. +4. "Last updated" timestamp on the article list (NNW #4964) — feed-freshness signal, + complements the stale-feed badge already planned in BACKLOG.md. +5. Timeline text-size setting (NNW #4925) — readability/accessibility. +6. Copy link / share with the highlighted quote (NNW #4793) — extends the existing + share-sheet target. +7. Per-feed JavaScript toggle (NNW #4788) — a scoped, explicit per-feed opt-in rather than + a global relaxation, so it doesn't undermine the app's JS-off-by-default security + posture ([[project_feedreader]] / CLAUDE.md quality gate item 5). +8. Don't autoplay animations/video (NNW #4738) — general version of the tap-to-play + pattern already built for YouTube embeds (see BACKLOG.md "YouTube embeds (done)"); + worth checking whether inline GIFs/`<video autoplay>` in regular articles still + autoplay through the WebView. + +**Why:** Peter wants a running list to reference next time he's thinking about new +FeeDreader features, not an immediate build — this is explicitly deferred triage. + +**How to apply:** Bring these up whenever Peter is discussing new FeeDreader features or +what to build next, rather than waiting for him to re-ask. Don't build any of these +unprompted. |
