Conversation
There was a problem hiding this comment.
Pull request overview
This PR introduces the initial “What’s New” system for the iOS app: a small engine + models + SwiftUI view to present version/platform-scoped native release notes, with persistence for “seen” releases and entry points from app launch and Settings.
Changes:
- Add
WhatsNewEngine, models, and an (empty) catalog to decide which release notes to show per app version/platform. - Present “What’s New” on app launch (over the
WebViewController) and add a Settings entry to open the latest applicable release. - Persist “seen” release IDs in
SettingsStore, add localizations, and add unit tests covering selection logic and persistence.
Reviewed changes
Copilot reviewed 11 out of 11 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| Tests/App/WhatsNew/WhatsNewEngine.test.swift | Adds unit tests for engine selection logic, release ID stability, and persistence of “seen” releases. |
| Sources/Shared/Settings/SettingsStore.swift | Stores and updates a persisted set of “seen” What’s New release IDs in app-group UserDefaults. |
| Sources/Shared/Resources/Swiftgen/Strings.swift | SwiftGen output updated to include new L10n.WhatsNew accessors. |
| Sources/App/WhatsNew/WhatsNewView.swift | Adds the SwiftUI “What’s New” UI to display release items and mark as viewed. |
| Sources/App/WhatsNew/WhatsNewModels.swift | Adds version/platform/item/release models and stable releaseID computation. |
| Sources/App/WhatsNew/WhatsNewEngine.swift | Implements release selection (releaseToShow, latestRelease) and “mark seen” behavior. |
| Sources/App/WhatsNew/WhatsNewCatalog.swift | Adds the catalog entry point for defining native “What’s New” releases (currently empty). |
| Sources/App/Settings/Settings/SettingsView.swift | Replaces the Settings “What’s New” behavior with a native sheet flow (currently gated on catalog content). |
| Sources/App/Resources/en.lproj/Localizable.strings | Adds English strings for the new “What’s New” view title and version format. |
| Sources/App/Frontend/WebView/WebViewWindowController.swift | Adds automatic “What’s New” presentation after app launch once the web view is ready. |
| HomeAssistant.xcodeproj/project.pbxproj | Wires new source files into the app target and adds the new test file to the unit test target. |
Agent-Logs-Url: https://github.com/home-assistant/iOS/sessions/d06d2fbf-7b3b-4534-aee0-56023dee1876 Co-authored-by: bgoncal <5808343+bgoncal@users.noreply.github.com>
|
Just as a heads up, I was blocked by some firewall rules while working on your feedback. Expand below for details. Warning Firewall rules blocked me from connecting to one or more addresses (expand for details)I tried to connect to the following addresses, but was blocked by firewall rules:
If you need me to access, download, or install something from one of these locations, you can either:
|
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #4664 +/- ##
=======================================
Coverage ? 44.07%
=======================================
Files ? 280
Lines ? 17028
Branches ? 0
=======================================
Hits ? 7505
Misses ? 9523
Partials ? 0 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
Summary
This PR adds the foundation to set and display "What's new" screen linked to app version.
Screenshots
Link to pull request in Documentation repository
Documentation: home-assistant/companion.home-assistant#
Any other notes