# Changelog

## Score

- CAI 40 → 40 (+0.2)
- Rubric changed (rubric-2026.09.11 → rubric-2026.09.18) — scores are not directly comparable.

## Lenses

- Code Health 85 → 84 (-0.5)
- Architecture 93 → 82 (-10.8)
- Maturity 64 → 65 (+0.0)
- Readiness 48 → 46 (-2.1)
- Security 43 → 52 (+9.3)
- Domain Modelling 91 → 91 (-0.2)
- Accessibility 23 → 23 (+0.0)
- Performance 60 (new)

## Resolved (73)

- Boundary-crossing change coupling: WMFYearInReviewBodyView.swift ↔ YearInReviewCoordinator.swift (WMFComponents/Sources/WMFComponents/Components/Year in Review/Views/WMFYearInReviewBodyView.swift)
- Boundary-crossing change coupling: WMFYearInReviewContributorSlideViewModel.swift ↔ YearInReviewCoordinator.swift (WMFComponents/Sources/WMFComponents/Components/Year in Review/View Models/WMFYearInReviewContributorSlideViewModel.swift)
- Boundary-crossing change coupling: WMFYearInReviewScrollView.swift ↔ YearInReviewCoordinator.swift (WMFComponents/Sources/WMFComponents/Components/Year in Review/Views/WMFYearInReviewScrollView.swift)
- ClassTooLong: WMFYearInReviewViewModel (WMFComponents/Sources/WMFComponents/Components/Year in Review/View Models/WMFYearInReviewViewModel.swift)
- ClassTooLong: YearInReviewCoordinator (Wikipedia/Code/YearInReviewCoordinator.swift)
- Documentation: no project overview (README.md)
- Duplicated block (10–11 lines × 2) (WMFComponents/Sources/WMFComponents/Components/Shared/Toasts/WMFToastPresenter.swift)
- Duplicated block (12 lines × 2) (WMFComponents/Sources/WMFComponents/Components/Year in Review/View Models/WMFYearInReviewIntroV3ViewModel.swift)
- Duplicated block (12 lines × 3) (WMFComponents/Sources/WMFComponents/Components/Donate Form/WMFDonateViewModel.swift)
- Duplicated block (12 lines × 5) (WMFComponents/Sources/WMFComponents/Components/Donate Form/WMFDonateViewModel.swift)
- Duplicated block (12–14 lines × 2) (Wikipedia/Code/WMFAccountCreationViewController.swift)
- Duplicated block (13 lines × 2) (Wikipedia/Code/YearInReviewCoordinator.swift)
- Duplicated block (14 lines × 2) (WMFComponents/Sources/WMFComponents/Components/Shared/Toasts/WMFReadingListToastPresenter.swift)
- Duplicated block (15–16 lines × 2) (WMFComponents/Sources/WMFComponents/Components/Year in Review/View Models/WMFYearInReviewViewModel.swift)
- Duplicated block (18 lines × 2) (WMFComponents/Sources/WMFComponents/Components/Profile/WMFProfileViewModel.swift)
- Duplicated block (18–19 lines × 2) (WMF Framework/Widget/WidgetController.swift)
- Duplicated block (21 lines × 2) (WMF Framework/Widget/WidgetController.swift)
- Duplicated block (21 lines × 2) (WMFComponents/Sources/WMFComponents/Components/Donate Form/WMFDonateViewModel.swift)
- Duplicated block (21 lines × 2) (WMFComponents/Sources/WMFComponents/Components/Profile/WMFProfileViewModel.swift)
- Duplicated block (5 lines × 2) (WMFComponents/Sources/WMFComponents/Components/Year in Review/Views/Shareable Slide Views/WMFYearInReviewSlideLocationShareableView.swift)
- …and 53 more

## New (178)

- ArticlePeekPreviewViewController.contextMenuItems (cognitive 36) (Wikipedia/Code/ArticlePeekPreviewViewController.swift)
- ArticlePeekPreviewViewController.contextMenuItems (cyclomatic 23) (Wikipedia/Code/ArticlePeekPreviewViewController.swift)
- Boundary-crossing change coupling: WMFYearInReviewView.swift ↔ YearInReviewCoordinator.swift (WMFComponents/Sources/WMFComponents/Components/Year in Review/WMFYearInReviewView.swift)
- ClassTooLong: HtmlUtils (WMFComponents/Sources/WMFComponents/Utility/HTMLUtils.swift)
- ClassTooLong: WMFActivityTabView (WMFComponents/Sources/WMFComponents/Components/Activity Tab/WMFActivityTabView.swift)
- Duplicated block (10 lines × 2) (WMFComponents/Sources/WMFComponents/Components/Settings/Home/For You/Whats Driving/Your Interests/WMFHomeFeedInterestsSettingsView.swift)
- Duplicated block (10 lines × 2) (Wikipedia/Code/UIViewController+Extensions.swift)
- Duplicated block (10–11 lines × 2) (WMFComponents/Sources/WMFComponents/Components/Activity Tab/WMFActivityTabInfoCardView.swift)
- Duplicated block (10–11 lines × 2) (WMFComponents/Sources/WMFComponents/Components/Activity Tab/WMFImpactViews.swift)
- Duplicated block (10–12 lines × 2) (Wikipedia/Code/ViewControllerRouter.swift)
- Duplicated block (11 lines × 2) (Widgets/Widgets/FeaturedArticleWidget.swift)
- Duplicated block (11 lines × 2) (Wikipedia/Code/TalkPageReplyComposeContentView.swift)
- Duplicated block (11 lines × 3) (WMFComponents/Sources/WMFComponents/Components/Donate Form/WMFDonateViewModel.swift)
- Duplicated block (12 lines × 2) (WMFComponents/Sources/WMFComponents/Components/Shared/Page/WMFPageRow.swift)
- Duplicated block (12 lines × 2) (WMFData/Sources/WMFData/Extensions/URL+API.swift)
- Duplicated block (12 lines × 7) (WMFComponents/Sources/WMFComponents/Components/Donate Form/WMFDonateViewModel.swift)
- Duplicated block (12 lines × 8) (WMFComponents/Sources/WMFComponents/Components/Settings/Account/WMFAccountSettingsView.swift)
- Duplicated block (13 lines × 6) (WMFComponents/Sources/WMFComponents/Components/Settings/Account/WMFAccountSettingsView.swift)
- Duplicated block (13–14 lines × 2) (Wikipedia/Code/DiffController.swift)
- Duplicated block (14 lines × 2) (WMF Framework/MWKDataStore+LegacyPageViews.swift)
- …and 158 more

## Changes since last survey

- 218 commits — 202 feature/other, 16 fixes

## By area

- (repo) — 76 commits
- WMFComponents/Sources — 54 commits
- Wikipedia/Code — 37 commits
- WMFData/Sources — 21 commits
- WMFLocalizations/Sources — 9 commits
- WMF Framework/Widget — 4 commits
- Wikipedia/Localizations — 3 commits
- (root) — 2 commits
- .github/workflows — 2 commits
- Wikipedia.xcodeproj/project.pbxproj — 2 commits
- Wikipedia/assets — 2 commits
- WMF Framework/WMFFaceDetectionAdapter.swift — 1 commit
- WMFComponents/Package.swift — 1 commit
- WMFComponents/Tests — 1 commit
- WMFData/Tests — 1 commit
- Wikipedia/Resources — 1 commit
- WikipediaUnitTests/Code — 1 commit

## Notable commits

- fix: Camel case fix
- fix: Fix Kartographer map requests on iOS
- fix: Fix Xcode 27 compile failure
- fix: Fix crash when the image info response has no pages
- fix: Fix empty states
- fix: Fix for iPad
- fix: Fix illustration for semantic search
- fix: Fix the VoiceOver order and focus in the search results
- fix: Fix the retain cycle in the Search settings bindings and type the callbacks
- fix: Fix theming
- fix: Merge pull request #6036 from wikimedia/bugfix/T355134
- fix: Merge pull request #6098 from slpaulson/423204-fix-activity-customization-close-button-alignment
- fix: Merge pull request #6208 from wikimedia/feature/T437359/fix-entry-point-illustration
- fix: Merge pull request #6224 from wikimedia/fix/kartographer-map-referer
- fix: Merge pull request #6229 from wikimedia/bugfix/T439445/image-info-empty-response
- fix: Revert "Remove YIR settings"
- change: 2026 -> 2025
- change: ADDS app open, new install onboarding start
- change: Add 2026 YiR coordinator to activity tab
- change: Add Rive Library
- …and 198 more
