v1.3.0 — February 19, 2026

Read/Unread Tracking

  • Auto-mark as read — Stories automatically marked as read when tapped or viewed in detail
  • Blue dot indicator — Unread stories display a blue dot for quick identification
  • Visual dimming — Read stories appear slightly dimmed (lower opacity) for visual scanning
  • Unread count in title — Navigation bar shows "(X unread)" when unread stories exist
  • Segmented filter — All/Unread/Read filter with live counts in the table header
  • Mark All Read — ✓ button in nav bar to mark all stories as read with confirmation
  • Swipe to toggle — Swipe left on any story to toggle read/unread status
  • Persistent storage — Read status persisted via UserDefaults with automatic pruning (max 5,000 links)
  • Efficient lookups — O(1) read status checks via Set-based index
  • Change notifications.readStatusDidChange notification for reactive UI updates
  • 42 new tests — ReadStatusManager lifecycle, filter, count, persistence, notifications, edge cases

v1.2.0 — February 15, 2026

Multi-Feed Support

  • Feed Manager — New feed management screen via 📡 antenna icon in the navigation bar
  • 10 built-in presets — BBC World, BBC Tech, BBC Science, BBC Business, NPR, Reuters, TechCrunch, Ars Technica, Hacker News, The Verge
  • Custom feeds — Add any RSS/Atom feed by URL with validation
  • Feed toggling — Enable/disable individual feeds without removing them
  • Feed reordering — Drag-to-reorder feeds in edit mode
  • Multi-feed aggregation — Stories from all enabled feeds merged with duplicate detection by link URL
  • Persistent storage — Feed configuration persisted via NSSecureCoding
  • 35 new tests — Feed model, FeedManager CRUD, toggle, reorder, custom URL validation, reset

v1.1.0 — February 14, 2026

Bookmarks & Search

  • Bookmark and search functionality added

v1.0.0 — Initial Release

Initial Stable Release

  • RSS feed parsing — XMLParser-based RSS/XML reader, configured for BBC World News
  • Offline caching — Stories persisted via NSCoding / NSKeyedArchiver
  • Network detection — SCNetworkReachability-based connectivity checks with offline UI
  • Async image loading — Background-thread thumbnail loading with NSCache
  • Detail view — Full description with link to original article in Safari
  • Smart refresh — Avoids redundant network fetches on back-navigation

Bug Fixes (pre-release)

  • Fixed force-unwrap crashes on malformed feed data
  • Moved RSS feed fetching off main thread to prevent UI freezes
  • Fixed dead image-loading code — thumbnails now load from URL
  • Replaced deprecated Reuters RSS feed with BBC News
  • Added NSCache-based image caching to prevent redundant requests on scroll
  • Fixed redundant feed reload on back-navigation

Security & Quality

  • Replaced all force-unwraps with safe guard-let patterns
  • Migrated deprecated APIs (NSKeyedArchiver, UIApplication.openURL)
  • Switched to HTTPS for all network requests
  • Safe decoding in Story.init(coder:) to prevent crashes on corrupted archives
  • Comprehensive unit tests for model, XML parser, and view controllers
  • CI workflow, Docker build/push, GitHub Copilot agent setup