Original release notes
This was originally a TestFlight release. It was submitted to the App Store as the 7.1.3 release version on 22 Aug 2026.
Changes since 7.1.2:
- Overhauled Feedly syncing to prevent the request floods that could get users temporarily banned - syncing pauses when Feedly reports rate limiting, fetches only what changed since the last sync, caps article downloads per refresh, and directly refreshes a few feeds each sync to backfill articles missing from Feedly's aggregate stream
- Fixed the Feedly mark-as-read backlog that could grow forever and re-send the same statuses - sent statuses are recorded as they succeed, and statuses Feedly can no longer accept (articles past its 31-day marker limit) are dropped
- Fixed Feedly folder and feed bugs - renaming a folder during a refresh could delete it, restoring a deleted folder restored nothing, a failed move could leave a feed in two folders, same-named folders collapsed into one, and right-to-left and untitled feed names were rewritten every sync
- Fixed bug where a Feedly feed the server no longer knows about could never be deleted
- Made Feedly sign-in and token refresh more robust - canceling on the consent page no longer shows an error, expired tokens refresh reliably, and removing the account always removes its tokens from the Keychain
- Used the published dates Feedly reports for articles, so a newly added feed's archive is no longer dated all today
- Paused Reader API syncing when the server reports too many requests, honoring its retry time - and Inoreader additionally conserves its API quota by skipping status downloads when near its daily limit
- Sent queued article statuses for Inoreader on every status sync, so read and starred changes no longer wait out the quota throttle
- Fixed folder creation for Reader API accounts (FreshRSS, BazQux, The Old Reader) - new folders no longer disappear before a feed makes them real on the server
- Fixed Reader API article ID encoding that could make article downloads fail
- Used conditional GET for Reader API tag and subscription lists
- Posted real errors to the Error Log from Reader API status syncing, and kept an unread fetch failure from skipping the starred fetch
- Fixed bug where article titles, author names, and feed names from FreshRSS could show full-width versions of & < >
- Fixed NewsBlur folder syncing aborting on a missing folder, applied server-side feed updates, and preserved locally edited feed names
- Checked iCloud account status before syncing - feeds still refresh, without repeated error alerts, while iCloud is unavailable (such as when new Terms and Conditions need accepting, which now shows a clear message), and syncing resumes automatically when iCloud comes back
- Fixed bug where an iCloud feed moved between folders could disappear until the destination folder synced
- Fixed iCloud sync progress leaks that left refresh wrongly showing as in progress
- Fixed bugs in Feedbin, Feedly, NewsBlur, and Reader API accounts where a status refresh could briefly revert just-made read and starred changes
- Fixed bug where sending an article's read status could delete its queued starred status
- Made statuses queued when the app was killed get sent at next launch
- Fixed bug where a feed could show a phantom unread count that came back after reading articles in other feeds
- Fixed bug where feeds could lose their names and display as Untitled
- Preserved custom feed titles from imported OPML across refreshes
- Repaired a feed's stored ID when a sync service reports a different authoritative one
- Allowed accounts with the same username on different servers
- Showed the account name and type in sync error messages, and stopped showing sync decoding errors as theme import errors
- Fixed bug where refreshing on return to foreground could fail with timeouts for every feed when networking wasn't ready yet
- Stopped skipping feeds on the next refresh when the previous attempt failed with a connectivity error
- Stopped caching failed downloads, so retrying a feed right after a timeout tries the network instead of reporting the feed not found
- Fixed bug where a download callback that started a new download of the same URL was silently dropped
- Used a browser user-agent string for image and theme downloads
- Fixed bug where finishing a refresh could wrongly complete unrelated Activity Log activities, such as an in-progress feed subscribe
- Fixed feed discovery bugs caused by slashes in unquoted HTML attribute values
- Added a feed-finding special case for relay.fm/blog
- Supported Atom xml:base for resolving relative URLs
- Extracted the article body from feeds that put a full HTML page in an article
- Kept the current article when adding a feed - showing the Add Feed sheet no longer clears the selection
- Updated smart feed unread counts on app activation and at the day change
- Removed punctuation and symbols when indexing search text, so words in curly quotes (for instance) are findable
- Scrolled the selected timeline item fully into view when it was only partially visible
- Fixed bug where timeline rows could collapse to a single truncated line for both title and body, ignoring the number-of-lines setting
- Fixed bug where the date could be clipped in timeline rows with no feed name or byline
- Fixed bugs where timeline rows could stop responding to taps
- Fixed bug where the timeline could briefly show large titles in the navigation bar
- Fixed bug where feeds-list rows could overlap or cover the wrong row when toggling Hide Read Feeds
- Fixed bug where the feeds list could select or scroll to the wrong row after the feeds list changed
- Fixed feeds list animation glitches with disclosure triangles and unread counts
- Made tapping the already-selected feed navigate to it again
- Made go-to-feed work when the feed is filtered out of the feeds list
- Made dragging a feed from account to account a copy rather than a move, matching the Mac version
- Fixed bugs where articles could open scrolled to the middle instead of the top - reader view articles, and articles opened via Handoff or deep links
- Fixed article layout issues caused by running the layout script twice
- Recovered from WebKit content-process termination, so articles no longer come up blank after the system reclaims the web views
- Fixed text selection in a footnote within a footnote
- Fixed mailto links that were already percent-encoded showing a literal %20 in the subject line
- Preserved the aspect ratio of fixed-size iframes when the article width shrinks them
- Hid Mailchimp newsletter social icon walls and social-share icon blocks whose unsized SVG icons rendered at full width
- Sized inline SVG icons that depend on stripped stylesheets - Tailwind classes and Material for MkDocs markup
- Zeroed negative side margins on tables so they stay inside the article
- Kept absolutely positioned feed content from escaping the article body and overlapping the title
- Hid the Slashdot discussion iframe that showed a cookie-consent banner in the article view
- Made tapping an image that's a link open the link instead of zooming the image - tapping a plain image still zooms it, and tapping the feed icon opens Feed Info
- Fixed blank screen after dismissing a full-screen image
- Fixed bug where a slow image download could open the image viewer after you'd left the article
- Stopped taps on an embedded video's controls from opening the video URL in a browser
- Fixed crash when entering fullscreen video while the article was re-rendered or swiped away
- Fixed crash when swiping between articles
- Added a special case for blog.naver.com to Reader View
- Fixed bug where the Reader View button could disappear from the article toolbar
- Reduced the flash of white when opening an article link in the in-app browser in dark mode
- Fixed bug where opening the app from a notification could fight with state restoration at launch
- Saved and restored the timeline width between runs on iPad
- Fixed arrow-key navigation between panels in two-panel and collapsed layouts
- Made the l key respect the setting for confirming mark-all-read
- Added a Clean Up keyboard shortcut
- Fixed the Mark All as Read confirmation appearing centered when triggered by keyboard shortcut
- Fixed crash when ending a search while the split view expands (iPad)
- Fixed crash adding a feed when search is showing
- Replaced the legacy Add Feed Siri intent with an App Intent so it appears in Shortcuts again
- Shared the article URL as the primary share-sheet item so Shortcuts receives input
- Replaced the share extension's form with a custom form
- Fixed Handoff showing "No selection" after the source device was locked
- Handed off the web page instead of the article while the in-app browser is open
- Made VoiceOver announce the article-view feed icon as a Get Feed Info button
Changes in this build:
- Fixed bug where feeds could lose their names and display as Untitled
- Fixed crash in the feeds list triggered by two folders with the same name
- Fixed crash adding a feed when search is showing
- Fixed bug where timeline rows could stop responding to taps
- Fixed bug where the feeds list could select/scroll to the wrong row after feeds list changed
- Fixed feeds list animation glitches with disclosure triangles and unread counts

