Skip to content

Commit cbf3a70

Browse files
glarueclaude
andcommitted
Bump to 0.4.1 build 135 (sync timestamps: Status entry + phase-timeline steps)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
1 parent daf7c8d commit cbf3a70

3 files changed

Lines changed: 11 additions & 9 deletions

File tree

iOS/App/Info.plist

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
<key>CFBundleShortVersionString</key>
2525
<string>0.4.1</string>
2626
<key>CFBundleVersion</key>
27-
<string>134</string>
27+
<string>135</string>
2828
<key>ITSAppUsesNonExemptEncryption</key>
2929
<false/>
3030
<key>NSAppTransportSecurity</key>

iOS/fastlane/beta_changelog.txt

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,12 @@
1-
0.4.1 — fixes the inconsistent auto-sync behavior on reopen.
1+
0.4.1 (build 135) — sync timestamps + the auto-sync fixes from build 134.
22

3-
Reopening the app after it had been idle behaved differently depending on whether iOS had killed it (cold) or just backgrounded it (warm), and a sync that got backgrounded mid-run could suspend, resume later, die on a stale server fetch, and leave "last sync details" showing a confusing partial run (e.g. "Preparing 20m 6s", orphanSweep ~1,183,000ms, everything else blank). This build addresses all of it:
3+
New in this build:
4+
- The "Last sync details" link on the Status page now shows how long ago the last sync ran ("· 1 min ago"), so it's clear at a glance without opening the sheet.
5+
- The phase timeline in Sync detail now shows each step's start time (e.g. "Preparing 11:10:08"), next to how long it took.
46

5-
- Reopen after idle (cold OR warm) now does the same thing: one catch-up sync, only when the initial scan is complete, nothing's already syncing, and it's been more than 5 minutes since the last successful sync.
6-
- Backgrounding mid-sync cleanly abandons the in-flight foreground sync instead of letting it suspend→resume into a "20-minute" zombie.
7-
- "Last sync details" now always reflects the last sync that actually completed — an interrupted/failed run rolls back to the previous one instead of replacing it with a partial timeline. (Tapping Stop does the same.)
8-
- A cancelled/failed sync stays eligible to retry on the next reopen (we don't pretend we have fresh data).
7+
Also carries everything from build 134 (the reopen/auto-sync consistency work):
8+
- Reopen after idle (cold or warm) does the same thing: one catch-up sync, only when it's been more than 5 minutes since the last successful sync.
9+
- Backgrounding mid-sync cleanly abandons the run instead of letting it suspend→resume into a "20-minute" zombie.
10+
- "Last sync details" always reflects the last sync that actually completed — an interrupted run rolls back to the previous one instead of showing a partial timeline.
911

10-
To test: leave the app idle for a while, reopen it (a few times, after varying idle durations), and check that the sync animation only fires when it should and that "last sync details" always shows a complete run.
12+
To test the timestamps: run a sync, open Sync detail, and confirm each phase row shows a sensible start time; back on Status, confirm the "Last sync details · N ago" reads right and updates after a fresh sync.

iOS/project.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ targets:
4747
properties:
4848
CFBundleDisplayName: cairn
4949
CFBundleShortVersionString: "0.4.1"
50-
CFBundleVersion: "134"
50+
CFBundleVersion: "135"
5151
# Required for PhotoKit access. The string is shown in the iOS
5252
# permission prompt and on the app's Settings page — keep it honest
5353
# and specific so reviewers and users understand what we do with it.

0 commit comments

Comments
 (0)