Track app updates: NEW badges, release notes, and a Changes tab - #98
Open
StuartCameronCode wants to merge 2 commits into
Open
StuartCameronCode wants to merge 2 commits into
StuartCameronCode wants to merge 2 commits into
Conversation
Adds an optional sinceAppVersion field to FilterSchema and ParameterDefinition, and a WhatsNewService that badges anything tagged with it whenever the tag is newer than the version the user last updated from. Badges persist across every launch of the current app version and only advance the next time the app itself updates, tracked via a separate "last run version" marker distinct from the comparison baseline. Rendered via a shared NewBadge widget in both the pass list (filter level) and the dynamic parameter widgets (property level). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014GLXdGLfPwgYjW1AkonGqN
- UpdateAvailableDialog now displays the fetched release body instead of discarding it. - Settings gains a "Changes" tab: a vertical list of every app release (UpdateChecker.listReleases, filtered to vX.Y.Z tags only) with a "NEW" badge via WhatsNewService, and lazy per-version fetching of release notes (UpdateChecker.fetchReleaseNotes) on first selection. - Release notes render through a new small hand-rolled ReleaseNotesText widget (headings, lists, bold, inline code) instead of raw markdown text or a markdown package dependency. - Fixed Scripts/run-debug-macos.sh: the old xcodebuild-piped-through-grep step swallowed real build failures and silently fell back to launching a stale cached app bundle. Replaced with a direct `flutter build macos --debug` (needed on newer Flutter, which resolves several plugins via Swift Package Manager rather than CocoaPods) and real exit-code checking. - Bumped app version to 1.2.0. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014GLXdGLfPwgYjW1AkonGqN
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
sinceAppVersion, and get a "NEW" badge (in the pass list and in the settings panel) for every launch of the app version they shipped in, via a newWhatsNewService— the badge tracking survives repeated launches and only advances on the next real update.UpdateAvailableDialognow shows the fetched release notes instead of discarding them.WhatsNewService), with that version's notes fetched lazily the first time it's selected and cached afterward.ReleaseNotesTextwidget — headings, lists, bold, inline code — rather than raw markdown text or a new markdown package dependency.Scripts/run-debug-macos.sh: its oldxcodebuild | grep || truestep silently swallowed real build failures and fell back to launching a stale cached app bundle. Now callsflutter build macos --debugdirectly (needed on newer Flutter, which resolves several plugins via Swift Package Manager rather than CocoaPods) with real exit-code checking.Test plan
flutter analyzeon every touched file — clean (only pre-existing unrelated deprecation infos)flutter test --exclude-tags heavy— full suite green aside from pre-existing local-environment gaps (missingdeps/macos-arm64bundle, unrelated to this change)whats_new_service_test.dart: fresh install, migration from a build predating this tracking, first-launch-after-update, badge persistence across repeated launches, and the next real update clearing old badgesfilter_schema_curation_test.dartextended to lintsinceAppVersionformatrun-debug-macos.sh; verified against the running process and the compiled Dart kernel that the new Changes tab, release notes rendering, and version bump are actually present (not a stale cached build)Not included: a
Podfile.lock/Runner.xcodeproj/Runner.xcschemediff thatpod install/flutter build macosproduced locally, migrating several plugins from CocoaPods to Swift Package Manager integration. That's a real toolchain-version-driven shift (this machine's CocoaPods is newer than what the project was last built with) worth a deliberate decision and its own testing across CI, not something to bundle in here.🤖 Generated with Claude Code
https://claude.ai/code/session_014GLXdGLfPwgYjW1AkonGqN