Commit Graph

17 Commits

Author SHA1 Message Date
alexandrev-tibco 10f6d0ca20 Release 1.2.1: iCloud sync improvements + ASO multilingual metadata
iCloud sync:
- Force viewContext.refreshAllObjects() on remote change notifications so
  data from other devices is picked up immediately without app restart
- Call refreshFromCloudKit() on foreground to merge any changes made while
  the device was inactive
- Wait up to 10s for initial CloudKit sync on launch before showing onboarding
  (shows "Checking iCloud..." during the wait)
- New OnboardingICloudCheckView: shown on fresh installs with iCloud available,
  lets user restore from iCloud before starting onboarding from scratch

Localization:
- Added de, fr, it, ja, pt-BR lproj folders
- New iCloud onboarding strings in en + es-ES (+ button literals)

ASO metadata (fastlane):
- Updated en-US: new subtitle, keywords, description (fixed "no cloud sync"
  claim), promotional text, release notes
- Added full metadata for es-ES, de-DE, fr-FR, it, ja, pt-BR (63 files total)
- All keyword fields validated ≤100 Unicode chars

Infrastructure:
- Gemfile + Gemfile.lock for fastlane
- Scripts/archive_and_upload_appstore.sh for CI/CD

Version: 1.2.1 (build 7)

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
2026-03-25 11:54:35 +01:00
alexandrev-tibco c94974546f Fix widget gap: forward-fill months and use reference month date for batch update
BatchUpdateView now accepts a saveDate parameter. When saving from a past-month
check-in, the call site passes referenceDate.endOfMonth so snapshots are dated
within the correct month instead of today. For the current month, Date() is used.

Widget forward-fills missing month buckets (trend and category series) using the
most recent earlier month's value, preventing gaps when a check-in is done in the
following month.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-20 22:51:40 +01:00
alexandrev-tibco e3ec0ddb25 Fix progress bar period to start at first day of interval month
Period now starts at startOfMonth of the first month in the interval,
not 30 days before the deadline. For monthly: Feb 1 → Feb 28.
For quarterly: Jan 1 → Mar 31. Formula: startOfMonth(nextDate - (interval-1) months).

Feb 20 with next check-in Feb 28: 19/27 days ≈ 70% instead of 0%.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-20 22:45:59 +01:00
alexandrev-tibco b6314db314 Fix check-in progress bar always showing empty after completing check-in
Previous logic measured elapsed days from lastCompletionDate to nextCheckInDate,
so completing a check-in today reset the bar to 0/8 days instead of showing
how far through the full monthly period we are.

New logic: the bar represents the full interval (e.g. 1 month) ending at
nextCheckInDate, starting from nextCheckInDate minus that interval.
Today (Feb 20) with next check-in Feb 28 now shows ~74% progress
(23 of 31 days elapsed since Jan 28) instead of 0%.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-20 22:44:22 +01:00
alexandrev-tibco 28b662e5a6 Restrict contribution fields to detailed mode only
AddSnapshotView: restore inputMode == .detailed guard for contribution section.
BatchUpdateView: show contribution field per row only when the source's
account is configured with inputMode == .detailed.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-20 22:33:02 +01:00
alexandrev-tibco ce4bbd9676 Fix decimal parsing bug + contribution and pre-fill features
BUG FIX: parseDecimal ignored locale mismatch between currency and device.
CurrencyFormatter.locale(for: "EUR") could return any EUR locale (e.g.
en_IE with decimal='.'), causing "408857,62" to be parsed as 40,885,762.
New CurrencyFormatter.parseUserInput() uses digit-position detection:
a separator followed by ≤2 digits at the end is decimal, otherwise
it is a thousands separator. Fully locale-independent.

FEATURE: Contribution field now always visible in AddSnapshotView.
Previously gated behind inputMode == .detailed; now a toggle available
regardless of account mode.

FEATURE: BatchUpdateView pre-fills each text field with the source's
current value so the user only edits what changed. Adds an optional
contribution field per source row, persisted on save.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-20 22:29:26 +01:00
alexandrev-tibco 151eb0e662 Redesign achievements progress bar with milestone circles
Replaces the simple progress bar with a custom milestone bar showing
individual circles for each achievement, filled when unlocked with a
checkmark indicator.

Fixes #27

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-11 23:57:58 +01:00
alexandrev-tibco 5dc9eb109f Add monthly highlights: best and worst performing sources
Shows a highlights card with the best and worst performing sources by
percentage change, displayed between the summary and reflection cards.

Fixes #22

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-11 23:49:00 +01:00
alexandrev-tibco aceed608ed Show source value difference vs previous check-in (green/red coloring)
When a source has been updated this cycle, shows the value change from the
previous snapshot in green (increase) or red (decrease).

Fixes #21

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-11 23:47:49 +01:00
alexandrev-tibco 7d1eb874d8 Add prev/next navigation buttons to Monthly Check-in view
Adds chevron buttons to navigate between months, similar to Lose It Log view.
The next month button is disabled when already at the current month.

Fixes #20

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-11 23:46:54 +01:00
alexandrev-tibco 3a72a75e5c Progress bar: red when overdue, orange when 2-3 days from deadline
Fixes #13

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-11 23:41:20 +01:00
alexandrev-tibco 4761e2e5c8 1.1.0 feature work: Monthly Check-in, Charts, Goals, Share, Reviews
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-11 23:37:11 +01:00
alexandrev-tibco 2437dd647f Add tests for 1.1.0 features 2026-02-01 14:40:10 +01:00
alexandrev-tibco 0ddee49dd5 Tune app review prompt cadence 2026-02-01 11:35:36 +01:00
alexandrev-tibco edfd7a2a56 Add monthly check-in sharing 2026-02-01 11:32:20 +01:00
alexandrev-tibco e328767c4a Base fixes and test harness 2026-02-01 11:12:57 +01:00
alexandrev-tibco 7988257399 initial version 2026-01-15 09:24:06 +01:00