# Changelog

## Baseline

- First survey — no prior run to compare against. CAI 21.

## Lenses

- Code Health 56
- Architecture 69
- Maturity 62
- Readiness 18
- Security 0

## Changes since last survey

- 300 commits — 181 feature/other, 119 fixes

## By area

- Modules/Account — 83 commits
- Mac/MainWindow — 23 commits
- Technotes/Status.md — 15 commits
- Shared/Article Rendering — 14 commits
- iOS/Article — 14 commits
- xcconfig/common — 14 commits
- iOS/MainTimeline — 12 commits
- Appcasts/netnewswire-beta.xml — 11 commits
- Technotes/ReleaseNotes-iOS.markdown — 11 commits
- Modules/Images — 7 commits
- iOS/MainFeed — 7 commits
- Modules/RSCore — 6 commits
- iOS/Resources — 6 commits
- Mac/Preferences — 5 commits
- Mac/SafariExtension — 5 commits
- Modules/RSWeb — 5 commits
- iOS/SceneCoordinator.swift — 5 commits
- Modules/RSParser — 4 commits
- Technotes/ReleaseNotes-Mac.markdown — 4 commits
- iOS/RootSplitViewController.swift — 4 commits

## Notable commits

- fix:  Don't open a browser when WebKit reports a tap on an embedded video's controls as a link activation targeting the media source. Fixes #3788.
- fix:  Treat statuses selected for an in-flight send as still pending, so a concurrent status refresh can't revert unsent local changes.
- fix: Add Clean Up command to global keyboard shortcuts in hopes it will work around whatever is going on with this keyboard shortcut not firing. Side effect: adds shortcut to iOS. Fixes #5294.
- fix: Add tests verifying angle-bracketed plain-text titles display literally. Verifies that #722 was already fixed.
- fix: Allow accounts with same username on different servers — compare API endpoint when there is one. Fixes #4377.
- fix: Bound Feedly's stream ID walks by date and page count instead of walking the entire history every sync. Fixes #3949.
- fix: Cap Feedly article downloads per sync, downloading updated articles first and the rest on later syncs. Fixes #3949.
- fix: Capture the articles to mark before showing the Mark All as Read confirmation, so switching folders during the alert doesn’t mark the wrong folder. Fixes #5359.
- fix: Change title for can’t-add-feed message. Fixes #3799.
- fix: Check iCloud account status before syncing — refresh feeds without alerts while the account is unavailable, and resume syncing automatically when it comes back. Fixes #4115.
- fix: Clear undo stacks on all windows after sidebar drag accept drop. Fixes #3583.
- fix: Coalesce Folder unread-count recalculation using CoalescingQueue. Run pending unread count updates before going to next unread. Fixes #5373.
- fix: Constrain timeline scrolling to legal range to top row isn’t under the toolbar. Fixes #5358.
- fix: Consult the icon downloaders ahead of the session cache so a newly arrived feed icon replaces a stale one. Fixes #5376.
- fix: Create a special case for the Relay blog relay.fm/blog for the feed finder. Fixes #5299.
- fix: Create new webview when loading a new article if currently scrolling, so scrolling doesn't carry over to new article. Fixes #4170.
- fix: Dealt with a race condition that could result in the timeline having large titles in the navbar. Fixes #5138.
- fix: Declare UTF-8 in the HTML written to the pasteboard. Fixes #3978.
- fix: Defer ending a search until after the search-bar dismissal transition, to avoid a UIKit crash when the split view expands with search active. Fixes #5385.
- fix: Defer the pending article page flush until the swipe transition has finished, to avoid a UIKit assertion crash. Fixes #5384.
- …and 280 more
