Repository navigation
Release v1.4 - #241
Merged
Merged
Release v1.4#241
Conversation
Version 1.4 puts every action under your thumb: swipe a reminder right to complete it, left to skip it, or up to open the action menu. A directional arrow guide now rides along with the card as you drag, so you can see which action you are about to trigger before you let go. Pulling down anywhere on the list refreshes it with a branded blue panel and a spinner that stays up just long enough to read as feedback, on the main list as well as the empty and all-done screens. The action-menu button on the phone, Mac, and Apple Watch now shows an ellipsis so it is easier to find, and this release fixes swipes that used to drift the card diagonally or start a refresh while you were only moving sideways.
- Write captures under <lang>/<class>/ (was <class>/<lang>), with numbered language folders in App Store order: 1-en, 2-zh-Hans, 3-fr, 4-de, 5-ja, 6-es - Capture the iPhone class on iPhone 17 (6.3", 1206 x 2622) instead of iPhone 18 Pro Max (6.9", 1320 x 2868); rename the class to iphone-6.3 and rewrite the committed wallpaper slot fixtures to match - Clear build/appstore-screenshots at the start of every run so a stale device-major tree cannot linger beside the new layout - Accept 1206x2622 / 1179x2556 in the size check, and fix the --help sed range that was truncating the header
iOS stems gain numeric prefixes (1-main-dark ... 6-no-reminders-dark) so the listing's drag-over order is the file-name sort order, and a new 4-options-reminder-dark shot captures the Settings Reminder subscreen. Output device folders are numbered in App Store order: 1-iphone, 2-ipad, 3-watch. class_folder() maps them; the internal class labels stay unchanged because they key the committed wallpaper slots. The watch class joins the default CLASSES. It was opt-in, so a bare ./scripts/appstore-screenshots.sh only ever captured iOS and capture_watch was never reached. Watch stems renumbered to 1-main / 2-more / 3-all-done / 4-no-reminders. Adds the --ui-testing-open-settings-reminder launch seam (LaunchArgument.openSettingsReminder, SettingsRoute, navigationDestination) so the harness can reach the Reminder subscreen simctl cannot tap. LaunchArgumentTests cover flag detection, flag distinctness, and opensSettings().
Periphery under Xcode 27 misses $-projection-only @State and reported the navigation path as unused, failing the stage-fatal Periphery stage of ./scripts/test.sh before any test ran. ci.yml also pins xcode-version 27.0, so this reproduces in CI too. The property is used, so a periphery:ignore would be wrong (and is itself a finding on 3.5+). Instead give it a direct read: clearing the seeded route on disappear, matching the ContentView.isShowingSettings precedent. Also means a re-presented Settings opens at its root rather than a stale subscreen.
The reRanksAfterSilentFallbackClearsTheDigest poll expired at the 20 s bound and then failed its 'emitted.count == 3' expectation, even though 'ranker.callCount == 2' passed — the coordinator re-ranked correctly, only the third onRankingUpdated emission missed the horizon. The test passes at ~20.7 s on a quiet host, so 20 s had no headroom. Pre-existing timing marginality: the file is unchanged on main and the release branch touches no SingleThreadCore code. Widening the poll bound is the same remedy the suite has applied before (79c6346, 5d27438).
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.
Version 1.4 puts every action under your thumb: swipe a reminder right to complete it, left to skip it, or up to open the action menu. A directional arrow guide now rides along with the card as you drag, so you can see which action you are about to trigger before you let go. Pulling down anywhere on the list refreshes it with a branded blue panel and a spinner that stays up just long enough to read as feedback, on the main list as well as the empty and all-done screens. The action-menu button on the phone, Mac, and Apple Watch now shows an ellipsis so it is easier to find, and this release fixes swipes that used to drift the card diagonally or start a refresh while you were only moving sideways.
Internal
1.3 → 1.4, buildCURRENT_PROJECT_VERSION 4 → 5, all 14 occurrences inSingleThread.xcodeproj/project.pbxproj(iOS app, watch app, widget, macOS, test targets) kept in lockstep. No xcconfig/Info.plist/VERSIONsources.SwipeGestureaxis railing, down → refresh moved off the card onto the pull surface (a99a9468,136dfd4d,e2a8c439).PullToRefreshModifieracross the list, empty and all-done screens, with a minimum 0.6 s hold (1d829e30,1dfb6583,a6936c33); refresh state read directly (9f9864ed); horizontal swipes no longer drift the card (fe9c7543).00af1093) and watch (f7f261d7); macOS left-swipe opens the menu and the iOS skip a11y label is conditional (9953e202,3bebf2a8,0a693d5f), alanvardy-var-1131.xcode-27image, run-gate/AGENTS updates, QRSPI artifacts.make format+make lintpass (0 violations). No heavy gate: version strings feed no compiled or test-asserted path.