Release history

Every version of every app released on the App Store: when it shipped, the official release notes, and the technical changes behind it. 36 releases across 8 apps.

CountUp Tally Counter Widget

App Store · 8 releases

VersionDateRelease notes (App Store)Technical changes
1.5.010 Oct 2026tag dateiPhone Duo support. Unfold your Duo and CountUp shows your counters and the open counter side by side; tap a counter in the list to switch without leaving the screen. On the outer display and in landscape, the counter screen now fits without clipping.

CountUp no longer shows ads, for anyone.

Settings has a new More apps from us section.

Fixes and polish throughout.
10 changes
  • 1.5.0: iPhone Duo What's New, version bump, pending 1.4.1 work
  • Duo frames: portrait split with selected row; notes
  • Give the Duo inner portrait detail pane more room
  • Make the selected counter row obvious in the Duo split list
  • Show which counter is selected in the Duo split list
  • Fit the counter screen on short landscape displays
  • Duo App Store frames, creative asset scripts, 1.5.0 metadata
  • Show list and counter side by side on the unfolded iPhone Duo
  • asc: 1.4.0 prepared in App Store Connect, build 120 attached, review notes match the shipped build
  • aso: en-GB and en-AU listings for 1.4.0, multi-locale ASC scripts
1.4.03 Oct 2026tag dateTemplates: start a new counter from Workout, Inventory, Habit, Baby, Sports, Classroom, Warehouse, Prayer or Gardening. Each one fills in the name, color and goal for you. Templates are free and appear on first launch and whenever you add a counter.

Custom sounds (Pro): choose a count sound for each counter from a new set of sounds, and preview it before you pick.
5 changes
  • feat: en-US source with en-GB and en-AU localizations, US spelling throughout
  • fix: free users hear the count sound (bundled click replaces system sound 1104)
  • feat: v1.4.0 templates (free) and custom sounds (Pro)
  • aso: 1.4.0 metadata - Templates and Custom sounds (Pro)
  • aso: 1.3.2 submitted for review - What's New generic, build 115 attached
1.3.23 Oct 2026tag dateGeneral improvements and bug fixes.
12 changes
  • fix: widget taps reach every widget, the app and the Watch; widget links open the current value
  • feat(settings): say what Pro switches on instead of "Thank you for buying it"
  • fix(watch): the Watch asks for the phone's state; phone session starts at launch
  • fix(watch): phone is the source of truth; Pro reaches the Watch complication
  • feat(screenshots): 1.3.2 App Store screenshot pipeline and sets
  • feat(watch): primary + button on the counter face
  • fix: plus works on a negative counter; turning negatives off resets them
  • fix: decrement floor reads the saved allow-negative flag, not an injected AppSettings
  • chore: 1.3.2 across all targets, and 1.3.2 App Store metadata
  • feat: bigger hero count and a minus button on both sides of it
  • fix: "Allow negative values" toggle now sticks, so minus counts below zero
  • Simplify CLAUDE.md, remove stale NEXT_SESSION.md
1.3.130 Sep 2026tag dateGeneral improvements and bug fixes.
4 changes
  • chore: 1.3.1 across all targets, and 1.3.1 App Store metadata
  • fix: tapping a counter widget opens that counter (cold and warm launch)
  • fix: Lock Screen widget tap no longer crashes on launch (paywall sheet missing CounterStore)
  • docs: pointer to team working model (DECISION-138)
1.3.028 Sep 2026tag dateGeneral improvements and bug fixes.
11 changes
  • aso: 1.3.0 What's New is now generic - "General improvements and bug fixes."
  • chore: 1.3.0 (build 22) across all targets
  • chore: prepare_asc_version.rb can create the version, and sends keywords, name and subtitle
  • fix: no hardcoded price - an unknown price is an error state with Try again
  • aso: point the 1.3.0 ASO notes at the renamed checker path
  • aso: 1.3.0 metadata - versionString set, folder renamed to AppStore/1.3.0, What's New
  • docs: CLAUDE.md covers RevenueCat, Firebase env split and Package.resolved rule
  • fix: Pro copy claims only watch-face complications, the Watch app is free
  • chore: attach CountUp.storekit to the CountUp scheme's Run action (09_LESSONS L1)
  • feat: RevenueCat purchases and Firebase Analytics replace StoreKit 2 layer and TelemetryDeck
  • aso: next-version metadata draft (name, subtitle, keywords, copy)
1.2.026 Sep 2026tag dateWIDGETS, REBUILT

Setting up a widget used to mean typing an ID into a box. Now you pick your counter from a list and make the widget yours:

- Appearance: your counter's color, tinted, mono, or vibrant
- Buttons: plus and minus, plus only, or none
- Tap adds: your counter's step, or 1, 5, or 10
- Goal progress on or off

There are more widgets to choose from, too. A new large Home Screen widget puts your count inside a goal ring with your last seven days underneath. A whole group now fits on the Home Screen or the Lock Screen, combined total and all. And on iOS 18 you can put a CountUp button in Control Center or on your Action Button and count without unlocking your phone.

GROUPS ARE AN ACTIVITY, NOT A FOLDER

Leg Day. Class 4B. Sunday service. A group and its counters are one card on the Home screen now: the combined total is the big number, with one progress bar for the whole activity, and every counter underneath has its own plus button — so you can tally a whole session without opening anything. Everything a group can do lives in one menu instead of behind a long press.

Groups are identified by an emoji you choose instead of a color, and that emoji follows the group everywhere: the list, the counter's own screen, and when you're moving counters in or out.

ALSO NEW

- A short walkthrough the first time you open the app, ending with your first counter set up
- A redesigned Settings screen, easier to read and easier to find things in
- A rebuilt Pro screen that shows you the actual widgets, filled in with your own counters and your own lifetime count
- You can choose a group right in the New Counter and Edit Counter sheets, instead of going looking for it afterwards
51 changes
  • chore: build 21, 1.2.0 release-prep notes
  • design: iPad 13" set in the same screenshot system
  • design: screenshot heroes per frame, device table in build_frames.py
  • fix: History chart draws exactly 7 day bars (Week) and 5 week bars (Month)
  • fix: stop the widget safety-net refresh from starving cross-widget reloads
  • chore: build 20, iPad before/after captures, 1.2.0 notes for iPad
  • feat: best-effort iPad layout - readable columns and a bigger hero count
  • fix: ship the alternate app icons from the asset catalog so iPad gets 152/167
  • design: rebuild the 1.2.0 App Store screenshot set as one system
  • feat: push 1.2.0 metadata and replace every screenshot set on ASC
  • fix: push a widget count to every widget, not just the one that was tapped
  • feat: reproducible App Store screenshot capture, incl. composed widget frames
  • fix: stop a widget stranding on a stale count after a widget-driven change
  • docs: rewrite the 1.2.0 store metadata against the real free/Pro line
  • fix: do not raise the rating prompt during a screenshot session
  • fix: en-US spelling in user-facing strings
  • fix: cross-fade the onboarding Continue transition, and let the last page multi-select
  • fix: remove the paywall gallery auto-advance, and sink the legal links
  • fix: stop the counter sheet jumping when the Group row is tapped
  • docs: handover for the 1.2.0 metadata, screenshots and submission session
  • feat: group emoji everywhere a group appears, and a Group row on the counter sheet
  • feat: first-run onboarding, and actually asking for reviews
  • feat: free widgets are one small Home Screen widget; everything else is Pro
  • fix: widget timelines deadlocked on the main actor, so every widget stayed a placeholder
  • fix: widgets rendered only the placeholder skeleton, never real data
  • fix: small-screen and Dynamic Type clipping across the redesigned screens
  • redesign: group emoji identity, gallery paywall, settings pass
  • redesign: groups as activities on Home, and a configurable widget system
  • chore: bump build number to 11; progress ledger for DECISION-122
  • redesign(widgets): full pass on every family - goal progress + clearer roles
  • redesign(groups): trim the group-header chrome on the Counter List
  • redesign(P2): restore the large tap zone on the Active Counter screen
  • docs: 1.2.0 README - build #78, TestFlight + iPad/Watch screenshot notes
  • style: remove em dashes from ScreenshotSupport comments (factory rule 11)
  • aso+screenshots: 1.2.0 Groups-release ASO refresh, new iPhone screenshot set
  • redesign: doc updates, build 10, delete-undo per-item, tap-not-Button rows
  • redesign: Counter Groups - collapsible sections, tap-to-add membership
  • refine: clarify counter group hierarchy
  • redesign: refine home and counter detail
  • fix: complete iPad icon and layout support
  • fix: make counter drag reorder reliable
  • fix: live drag feedback for cross-group moves + Group control visible on P2
  • fix: same-group drag reorder broke after gating .onMove behind Edit Mode
  • fix: cross-group drag-and-drop was blocked by a gesture conflict, not target reliability
  • fix: make counter-to-group drag-and-drop actually work
  • docs: update AppStore/1.2.0 README - build 68 status, stuck build 67 note
  • redesign: Counter Groups as inline collapsible sections (no detail screen)
  • docs: update AppStore/1.2.0 README with build/TestFlight status
  • chore: bump version to 1.2.0 (build 5)
  • feat: v1.2.0 Counter Groups + Contact Us + single-counter widget
  • feat: v1.1.0 "Count From Anywhere" - interactive widget + app icon picker
1.0.128 Jul 2026tag dateDeleting a counter now updates your counter total immediately, and Undo reliably restores it during the undo window.
This update also includes stability improvements.
4 changes
  • fix: open CountUp App Store review page
  • fix: restore counter deletion undo
  • chore: remove XCUITest UI test targets (flaky/simulator-contention, replaced by manual accessibility pass per factory policy)
  • Remove passkit from entitlement
1.0.017 Jul 2026tag dateNo release notes entered.
58 changes
  • Fix test4LockScreenWidget's coordinate-based navigation for larger devices
  • Sync goal/target to watch and show goal progress on the watch face
  • Use Apple's native Button(role: .close) for dismiss on iOS 26+
  • Replace ambiguous dismiss-button styling; remove Terms of Use from Settings
  • Make watch face colorful and surface a visible decrement button
  • Match watch app icon to the main app icon (remove circle)
  • Standardize modal dismiss buttons: top-left, Apple-style hierarchical icon
  • Add dismiss button to History sheet; show seconds in session times
  • Remove em-dash from IAP description; remove circle from app icon
  • Fix vertical alignment of counter cards without goals
  • Fix paywall dismiss button contrast in light mode and remove redundant accessibility label
  • Use gradient badge for History empty state, matching counter list
  • Add gradient badge empty state; move counter count to a section header; fix goal-row alignment and progress bar
  • Register SettingsIconChip.swift in project.pbxproj
  • Add colored icon chips to Settings rows
  • Make paywall CTA a two-line button emphasizing one-time purchase
  • Add colored icon chips to paywall feature list; drop unimplemented sound feature
  • Redesign PaywallView header with a live gradient ticker
  • Add dev-only settings/paywall screens to screenshot harness for verification
  • Let counters start above zero; enlarge decrement tap target; show goal in list row
  • Remove ATT, fix More Apps link, and improve counter list UX
  • Rewrite App Store screenshot capture harness for real simulator captures
  • Rework free/Pro gating: ads-funded free tier, Pro reserved for premium extras
  • Fix stale complication on active-counter switch; wire counter color into complications
  • Add real watchOS watch-face complications extension
  • Wire Watch on-device decrement to a reachable minus button
  • Add App Store screenshot automation harness
  • chore: remove xcodegen; make CountUp.xcodeproj the standalone source of truth
  • chore: new AdMob IDs, Beta Pro toggle, UITest scaffold, v1.0.0
  • fix: wire global "allow negative" setting into per-counter decrement floor
  • style: remove all em dashes from source files
  • feat(settings): add icons, merge More Apps into ABOUT, fix BETA flags and banner ad
  • fix: anchor runtime Info.plist keys in project.yml so xcodegen can never drop them
  • fix: restore AdMob App ID, ATT desc, URL scheme stripped in 35504d7
  • chore: add ITSAppUsesNonExemptEncryption=false to all targets
  • fix: resolve 3 ITMS App Store validation errors
  • [countup] Fix ASC submission warnings: valid UILaunchScreen + all 4 orientations
  • fix: resolve 6 ITMS App Store submission errors
  • [icon] Fix app icon PNG — re-render from SVG source (was broken color space / all-white)
  • fix: add WKApplication to project.yml so xcodegen preserves it in CI (ITMS-90906)
  • [dev] Add BETA ad-skip guard and DEBUG Pro simulation tools
  • fix: add WKApplication key to Watch Info.plist, fix archive prep (ITMS-90906)
  • [ci] Fix ci_post_clone: add root Package.resolved and HOMEBREW_NO_AUTO_UPDATE
  • [ci] Fix Xcode Cloud workflows — correct schemes and distribution targets
  • [icon] New app icon — bold indigo + symbol
  • Add Beta scheme and Xcode Cloud workflows (TestFlight + App Store)
  • [countup] Fix WidgetKit install error — remove NSExtensionPrincipalClass from widget Info.plist
  • feat: update CountUp app, ads, and widget config
  • [urls] Fix privacy, support, and review URLs — Sam
  • [icon] Add real app icon -- Mia
  • fix: add app icon + fix Info.plist for App Store submission
  • fix: add TelemetryDeck SPM dependency to CountUp project
  • [admob] wire real App ID and ad unit IDs
  • [analytics] wire real TelemetryDeck App ID
  • [fix+analytics] Review blockers + TelemetryDeck — CountUp
  • [signing] team GT3X4ZRWJZ, automatic signing (all 3 targets)
  • [build] CountUp v1.0 scaffold — Sam
  • Initial commit — CountUp iOS app scaffold

SubSnap Subscription Tracker

App Store · 4 releases

VersionDateRelease notes (App Store)Technical changes
1.3.010 Oct 2026tag dateSubSnap now supports iPhone Duo. On the inner display, Home, Stats and Calendar sit side by side, and the app works in landscape. Spelling now matches your region everywhere, including notifications. Plus small fixes and polish.
3 changes
  • feat(1.3.0): iPhone Duo support, built with Xcode 27.1
  • Add en-AU and en-GB strings to the 1.2.1 build
  • Add en-AU and en-GB App Store localizations (v1.2.1)
1.2.01 Oct 2026tag dateSubSnap 1.2 is our biggest update yet.
• A fresh new look across the whole app
• New widgets: what renews next on your Lock Screen, a countdown ring, and a large Upcoming widget (Pro)
• Choose which subscription or category a widget follows
• A faster start: pick your services and see your yearly total in seconds
49 changes
  • fix(ui): one canvas on every screen, stop cropping Home chip shadows
  • fix(1.2): light-mode card contrast, en-US only, Pro hides Restore, catalog sheet + glass controls
  • chore(release): bump to 1.2.0 for TestFlight
  • fix(redesign): paywall render review - pinned CTA capped at AX2 with footnote in scroll at AX, close button on ctaTint glass (AA both modes), carousel page sized by a hidden content template, top-cropped illustrations, hero grows at AX, unclipped card shadow
  • chore(redesign): paywall free-state renders (cap dark/light, settings, SE AX5) for review
  • feat(redesign): paywall - full-bleed hero, HYBRID benefits carousel, pinned CTA
  • fix(redesign): settings - free-state Restore on ctaTint glass (bare white was ~2:1), hero capped at AX2, subtitle wraps
  • feat(redesign): settings - Pro hero header card, icon tiles, segmented alert timing, -screenshotFree DEBUG seam
  • fix(redesign): stats - equal-height tiles and top-aligned mix legend (Grid), tile eyebrow capped at AX1, comments trimmed
  • fix(redesign): stats render review - side-by-side hero, two-line lens label, AX caps, mix legend alignment, ranked rows, rounded money
  • feat(redesign): stats - donut-lens hero, category bars, summary tiles, billing mix (TDD), ranked list
  • fix(redesign): calendar renewals chip tinted ctaTint (AA on the light hero end); month nav abbreviates at AX sizes
  • feat(redesign): calendar - month hero with renewal strip, tiled month grid, selected-day card
  • fix(redesign): detail insight cards pair up in a Grid so each row shares one height
  • feat(redesign): subscription detail - brand-wash hero, Keep it / Mark cancelled on glass, insight grid, manage link, rail history
  • feat(onboarding): Liquid Glass buttons; breakdown rows stack at AX sizes
  • fix(redesign): Still using it? strip uses system-sized glass buttons; stacks full-width at AX sizes
  • fix(redesign): glass contrast - Keep is prominent, cycle control is one track with a tinted morphing selection
  • feat(redesign): iOS 26 minimum + Liquid Glass foundation; Home and catalog controls on glass
  • refactor(onboarding): drop the invisible measuring twin; safeAreaInset already reserves the pinned height
  • fix(onboarding): at AX sizes only buttons pin; footnotes scroll with content, pinned type capped at AX2
  • fix(onboarding): controls always pinned to the bottom; page content scrolls at large text sizes
  • fix(redesign): catalog wall AX layout (stacked header, list rows, wrapping actions), tile price hugs name
  • feat(redesign): catalog wall 2-up actions + priced 3-col grid; bottom mini-form with trial toggle
  • feat(redesign): Home Mix A+B - full-bleed hero, Next 7 days strip, bento, grouped timeline
  • feat(redesign): native TabView replaces AuroraDock; pure HomeSummary model
  • feat(onboarding): five-page flow per approved mockups, existing-user gate, one finish()
  • feat(onboarding): pure OnboardingModel + funnel wire names + onboarding permission call
  • feat(widgets): subsnap:// deep link - locked widgets open the paywall
  • feat(widgets): Next Renewal ring + inline and Upcoming widgets with AppIntent configuration (widget binary only)
  • feat(widgets): Aurora 2.0 widget views (shared with app), SubSnap widget restyled on midnight entries
  • feat(widgets): pure timeline logic - projection, configuration, totals, ring progress, midnight entries
  • feat(widgets): snapshot v2 with raw values, exact price round-trip, deep-link routes
  • Fix IMPORTANT: harden select_firebase_project.sh against prod mis-tagging
  • Fix IMPORTANT: charged purchases never show an error; refunds honoured in-session
  • Fix CRITICAL: swap FirebaseAnalytics for FirebaseAnalyticsCore to drop IDFA SDKs
  • chore: RevenueCat console setup complete; real public SDK key replaces placeholder
  • feat: Firebase Analytics replaces TelemetryDeck; stable wire names
  • fix: guarantee Firebase configures before any stored-property init
  • feat: Firebase (beta default, prod on v* tags) + Remote Config plumbing
  • fix: stale local scan can't undo a purchase; 1.x mirror migration
  • chore: exclude design tooling from SwiftLint
  • design: Aurora 2.0 mockups (phone + iPhone Duo), kit, renders, draft index
  • fix: close Pro downgrade timing holes and override leak in StoreService
  • feat: route Pro through RevenueCat with a local StoreKit safety net
  • chore: ignore superdesign tmp
  • feat: entitlement resolver + backend protocols, project-edit script
  • chore: Firebase beta/prod projects + iOS app configs for 1.2.0
  • docs: pin onboarding selection cap to freeSubscriptionCap
1.1.125 Jul 2026tag dateBug fixes and improvements.
12 changes
  • Remove ads entirely, bump to 1.1.1 (DECISION-080)
  • Refine paywall carousel, review prompts, and dock spacing
  • fix: dock overlap in Pro mode and simplify onboarding preview cards
  • fix: polish settings export and dock spacing
  • fix: move dock inset to shared navigation stack
  • Refine screenshot import review UI
  • fix: resolve dock overlap and add screen polish
  • fix: polish import dates and service icon rendering
  • fix: smooth catalog keyboard dismissal
  • Add AU/GB localization and use system locale defaults
  • Refine SubSnap live activity expanded layout
  • Refine SubSnap stats, calendar, import, and detail flows
1.1.013 Jul 2026tag dateNo release notes entered.
31 changes
  • Refine Stats chart contrast and accessibility
  • Fix import mapping and icon resolution
  • Add receipt photo import to add form
  • Fix Live Activity service icons
  • fix: enforce free-tier cap on the Custom add form
  • fix: resolve tiered iCloud+ catalog matches deterministically
  • fix: enforce free-tier cap on screenshot import saves
  • v1.1: screenshot import review flow, TelemetryDeck analytics, catalog expansion
  • Update production AdMob app/banner unit IDs
  • Refine onboarding previews and remove page hint
  • Refresh onboarding visuals and accessibility
  • Polish onboarding and settings
  • feat: fix paywall layout and prep xcode cloud workflows
  • chore: remove orbit wording from categories
  • Refine notification settings and locale polish
  • Update light mode app icon to match dark mode
  • feat: refine reminders and product surfaces
  • feat: add Orbit-style categories and locale preferences
  • Fix dock spacing and upgrade paywall visuals
  • Add beta Pro override and tighten ad gating
  • Refine subscription flows and app icons
  • Add premium SubSnap app icon options
  • fix(catalog): compact wall header so search bar pins under the title
  • fix(build): rename 1-char variable in ServiceIconTile, regen project
  • feat(subsnap): F20 3-card skippable onboarding, first-run only (DECISION-046)
  • feat(subsnap): F24 staggered list entrance + one-shot due-pill pulse (DECISION-046)
  • feat(subsnap): F23 cancel celebration upgrade (DECISION-046)
  • feat(subsnap): F22 hero total count-up animation (DECISION-046)
  • feat(subsnap): F21 catalog 50->79 entries + luminance-aware glyph colour (DECISION-046)
  • Remove ATT per DECISION-043: AdMob npa=1 unconditional, factory-wide no-ATT rule
  • Initial commit

Hue Check Color Picker

App Store · 9 releases

VersionDateRelease notes (App Store)Technical changes
2.0.011 Oct 2026tag dateHue Check now supports iPhone Duo.

- Portrait and landscape on both displays, with the camera, photos and palettes side by side on the inner display.
- Bug fixes and reliability improvements.
52 changes
  • Paywall: stack Yearly and Monthly vertically, weekly line inside the Yearly box
  • Paywall: feature carousel and side-by-side Yearly/Monthly cards (factory paywall standard)
  • Settings: beta builds no longer scroll ~750pt past the last row
  • Paywall: compact layout, all benefits visible without scrolling, bar reaches the home indicator
  • Onboarding: Pro users no longer jump to Home when swiping to the last page
  • Onboarding: side-by-side layout on short landscape screens (headline was cut off)
  • Settings: "More apps from us" section with cross-promo rows and real icons
  • Duo: localised header and search results creatives (8 languages, 11 localizations placed)
  • TestFlight notes: Duo section for RC, new beta notes
  • ASC metadata: iPhone Duo copy in all 11 locales (description paragraph, What's New bullet)
  • Duo: store screenshots (outer + inner landscape), header and search creatives, builder
  • Duo: fill-zoom fixture also bleeds under side rail and clips in stacked layout
  • Duo: screenshot fixtures (fill-zoom photo, camera reticle override), clip wide photo canvas
  • Duo: paywall side column on wide landscape, wider photo controls
  • Duo: landscape, rotation-aware camera mapping, adaptive wide layouts
  • docs: iPhone Duo design, folded into 2.0.0 (why: build 94 is stale anyway)
  • Simplify CLAUDE.md
  • docs: pointer to team working model (DECISION-138)
  • ASO pass on the 2.0.0 listings; drop free-tier claims the hard paywall made false
  • Reopen hard-gated users on the onboarding flow's paywall slide
  • Remove the onboarding camera page; the paywall step is a normal slide with dots
  • Make the paywall the last onboarding step; remove Skip; fix the loading state
  • Drop the trial timeline card; state the charge date once; show yearly savings
  • Gate new installs behind the paywall (A/B, default hard); emphasise the trial
  • Record that Xcode Cloud's main build picked the beta Firebase project
  • Split Firebase into beta and prod; only App Store tag builds report to prod
  • Submit first-time subscriptions with their version; record build 94
  • Record the 2.0.0 release state, Operator blockers and release-day steps
  • Upload the subscription review screenshots; both subscriptions ready
  • Prepare the 2.0.0 App Store version and upload its 11 listings
  • Honour the DEBUG Pro override on pushed RevenueCat updates too
  • Commit and publish the Remote Config template with its 2.0.x condition
  • Wire the paywall framing flag through Remote Config
  • Add PaywallFramingResolver: the in-app half of the 2.0.x version gate
  • Replace TelemetryDeck with Firebase Analytics
  • Give every analytics event a legal Firebase name, and test all of them
  • Translate the 2.0.0 paywall into all 11 locales; drop the one-time copy
  • Present the paywall after first-run onboarding, never to updaters or Pro
  • Rebuild the paywall around a yearly/monthly selector, to Guideline 3.1.2
  • Add PaywallPricing: every paywall figure derived from the store price
  • Add the subscription group and 1-week trials to the local StoreKit config
  • Rewrite ProEntitlementManager over RevenueCat plus a local StoreKit scan
  • Add the entitlement resolver: an outage never downgrades a payer
  • Create the 2.0.0 subscriptions in App Store Connect
  • Revise 2.0.0 pricing: $1.99/mo, $14.99/yr, 1-week trial
  • Add Firebase project config to the app target
  • Record IAP key validated in RevenueCat
  • Record RevenueCat Phase 0 config
  • Hand off 2.0.0 at the Phase 0 gate
  • Document the release pipeline and delete two dead scripts
  • Submit 1.5.0 for review
  • Record the tagged build: ASC 89 attached, RC notes set
1.5.025 Sep 2026tag dateHue Check now speaks your language - and it introduces itself the first time you open it.

- The app itself is translated, not just its App Store page: Spanish, Latin American Spanish, French, German, Brazilian Portuguese, Japanese, Simplified Chinese and Vietnamese, alongside US, British and Australian English. Every screen, button and setting.
- New here? A short five-screen walkthrough runs the first time you open the app, so you know what Hue Check does before you point it at anything. It ends by asking for the camera, with a clear way to work from photos instead if you would rather not grant it.
- Seen it already? You will not see it again, and you can replay it any time from Settings.

The 2,300+ color names themselves are still English.
18 changes
  • Bump the build to 16
  • Rebuild the 1.5.0 screenshots, each locale in its own language
  • Finish the localisation: 81 missed strings, and en-US was reading British
  • Rewrite the 1.5.0 release notes around the localisation
  • Localise the app into 11 languages
  • Add TestFlight notes for the 1.5.0 internal builds
  • Stop the last onboarding page snapping mid-drag: no structural changes at the paging threshold
  • Fix the lag on the last onboarding page; give the first page motion; replay on return
  • Prepare the App Store Connect 1.5.0 package (listing only, no screenshots)
  • Fix four onboarding layout defects found by rendering the flow
  • Replace drawn onboarding heroes with generated photography
  • Fix substring false positive in onboarding copy test; bump to 1.5.0 (15)
  • Add first-run onboarding, funnel instrumentation, and a real review policy
  • Design: first-run onboarding flow for v1.5.0
  • set_testflight_notes.rb: filter by build audience
  • README: record the v1.4.0 tag and what is left for a human
  • Add attach_build.rb: attach an App Store eligible build to a version
  • Add release-candidate TestFlight notes for the v1.4.0 tag build
1.4.010 Sep 2026tag dateImport a photo and Hue Check now pulls out its whole palette for you - dominant, supporting and accent colors - free for everyone.

- Automatic palette from any photo. Tap a color to see exactly where in the photo it came from, then save the ones you want in one go.
- Export a single project on its own, instead of your whole library. (Pro)
- Set a project as your save target from the project itself, so new colors land where you are already working.
- Each project now shows its palette as a scrollable strip, so three or four projects fit on screen instead of one.
- Tap the large swatch to copy its hex, or press and hold any color for a full-size look.
- Color names and hex codes are now readable on every swatch, light or dark. Pale colors used to print white on white.
- Cleaner dark mode and better contrast throughout.
17 changes
  • Rebuild all 11 locales' screenshots with the real photographs
  • Use real photographs in the camera and palette screenshots
  • Use American spelling in the app UI and the en-US listing
  • Fix the Notes keyboard trap, and lead the screenshots with the camera
  • Localise the 1.4.0 App Store listing into 11 languages
  • Add a reusable TestFlight notes script and the v1.4.0 notes text
  • Upload v1.4.0 metadata and screenshots to App Store Connect
  • Add v1.4.0 marketing screenshots and the script that builds them
  • Palette rail: only fade the trailing edge when it actually overflows
  • Bump build to 14 for the v1.4.0 TestFlight upload
  • Tidy ExtractedPaletteView: use the tested isReady accessor, drop a no-op
  • v1.4.0: App Store copy leads with automatic palette extraction
  • v1.4.0: fix Palette mode layout at accessibility text sizes
  • v1.4.0: automatic palette extraction from an imported photo
  • v1.4.0 release prep: version bump, metadata, 6.9in screenshots
  • v1.4.0: paywall restructure, settings and readout polish
  • v1.4.0 "Refined": design system, swatch contrast fix, Projects redesign
1.3.029 Jul 2026tag dateProjects are here. Organize saved colors, choose a Camera or Photo save target, add notes, and revisit the source image and sampled point behind a color. Also includes accessibility and reliability improvements.
13 changes
  • fix: filter unsupported project emojis
  • Improve project editor and upload v1.3.0 metadata
  • Fix project schema migration checksums
  • Improve project editing experience
  • v1.3.0: finalize first-save prompt and ASO metadata
  • v1.3.0 Day 7: harden accessibility and release build
  • v1.3.0 Days 5-6: source context and analytics
  • v1.3.0 Day 4: active-target carry-over + Color Detail assign/note
  • Update app version to v1.3.0
  • v1.3.0 Day 3: Project Detail screen
  • v1.3.0 Day 2: sectioned Palette re-layout
  • v1.3.0 Day 1: add Project model + versioned v1->v2 SwiftData migration
  • Add v1.2.2 App Store listing assets and ASC helper scripts
1.2.217 Jul 2026tag dateBug fixes and improvements.
4 changes
  • fix: keep CMYK single-line and dedupe palette saves
  • fix: improve detail panel contrast
  • Correct v1.2.1 What's New to a generic bug-fix line
  • Add v1.2.1 App Store listing assets
1.2.114 Jul 2026tag dateBug fixes and improvements.
9 changes
  • Fix HueCheck Pro price display and bump 1.2.1
  • chore: bump build number to 9
  • fix: don't sample until a gesture resolves as a genuine tap
  • test: fix wrong invariant in PhotoZoomGeometry unscaledPoint test
  • fix: replace magnifier loupe with pinch-zoom, fix Info panel light-mode contrast
  • chore: bump build number to 8
  • fix: correct stale AdMob unit ID on Palette and Settings banners
  • fix: tone down loupe magnification, restore standalone Photos button
  • feat: draggable crosshair magnifier loupe + Photos button relocation (DECISION-064)
1.2.010 Jul 2026tag dateSample any photo, not just the live camera.

- Import Photo: pick any picture from your library and tap a pixel to get its exact color, same hex, RGB, HSB, and named-color detail as the live camera, plus one tap to save it to your palette.
- New "Choose Photo Instead" button on the camera permission and camera-denied screens, so you can start sampling colors even if you never grant camera access.
- Camera preview now pauses and resumes properly when you background the app or switch tabs, for smoother live sampling and less battery drain.
5 changes
  • chore: bump version to 1.2.0 (build 7)
  • docs: add v1.2.0 App Store listing assets
  • feat: photo library eyedropper with color-managed sampling
  • fix: stabilize camera and add analytics
  • chore: update Hue Check AdMob production IDs
1.1.06 Jul 2026tag dateThis version has some minor improvements:
- The default crosshair position now sits higher in the camera view, centered in the usable space above the detail panel.
- Settings now includes Contact Us option so you can reach out to us for any feedback or feature requests.
4 changes
  • Add ASC version status helper
  • Refine Hue Check 1.1.0 release notes
  • Prepare Hue Check 1.1.0 release
  • fix(hue-check): address app review and settings issues
1.0.027 Jun 2026tag dateNo release notes entered.
37 changes
  • fix(camera): restart session on tab switch without reconfiguring
  • chore(hue-check): bump build number to 3
  • fix(hue-check): stop camera on tab switch, request review after 2nd save
  • chore(hue-check): bump build number to 2 for App Store submission
  • chore(hue-check): add DEBUG-only Pro override for screenshot sessions
  • feat(hue-check): remove ATT/IDFA, switch AdMob to always non-personalized
  • fix(hue-check): pre-submission polish - pinch zoom, ad placement, ATT, Terms removal
  • feat(hue-check): paywall feature mockup cards + AdMob loading placeholder
  • fix(huecheck): show ads in beta/TestFlight builds, move palette banner into content
  • fix(hue-check): swipe-to-delete, headline typography, paywall card order, swatch cell height
  • fix(hue-check): real app icon in paywall, visual carousel, settings icon consistency, BETA toggle, AdMob zero-height fix, camera overlap fix
  • fix(hue-check): user-friendly IAP error message + attach StoreKit config to scheme
  • fix(hue-check): replace safeAreaInset with overlay to fix iOS 26 scroll overrun
  • fix(hue-check): remove ATT, fix crosshair tap, paywall carousel, palette border, npa=1
  • docs: update Xcode Cloud workflow YAML docs to match ASC API config
  • style: remove all em dashes from source files
  • fix: 6 UI/UX issues — crosshair detection, touch area, scroll, settings icons, restore/more apps
  • [huecheck] Tap-to-reposition crosshair (Pro) + BETA Pro toggle
  • [icon] Fix app icon PNG — re-render from SVG source (was broken color space / all-white)
  • fix: regenerate app icon from SVG source (was all-white)
  • [ads] Wrap ad blocks in #if !BETA; add DEBUG Developer section to Settings
  • fix: remove alpha from large app icon (ITMS-90717) + fix build errors
  • [ci] Fix ci_post_clone: add cd to CI_PRIMARY_REPOSITORY_PATH
  • [workflows] Fix Xcode Cloud workflow YAML files — factory standard
  • [camera] Keep screen awake while camera screen is active
  • [icon] New app icon — spectrum color wheel + teal eyedropper
  • Add Beta scheme and Xcode Cloud workflows (TestFlight + App Store)
  • [feat] Pinch zoom, glass readout card, real AdMob SDK, TelemetryDeck API
  • [urls] Fix privacy, support, and review URLs — Sam
  • [icon] Add real app icon -- Mia
  • fix: add app icon, fix Info.plist for App Store submission
  • [admob] wire real App ID and ad unit IDs
  • [analytics] wire real TelemetryDeck App ID
  • [analytics] Add TelemetryDeck analytics — Hue Check
  • [signing] team GT3X4ZRWJZ, automatic signing
  • [build] Hue Check v1.0 scaffold — Sam
  • Initial commit — Hue Check iOS app scaffold

Memivo Photo Review

App Store · 3 releases

VersionDateRelease notes (App Store)Technical changes
2.0.13 Oct 2026tag dateA refreshed App Store listing so Memivo is easier to find.

- Your photos still never leave your iPhone.
2 changes
  • memivo 2.0.1: version bump for ASO listing refresh (no code changes)
  • Simplify CLAUDE.md/AGENTS.md
2.0.029 Sep 2026tag dateMemivo 2.0 is a bigger, calmer Memivo.

- Try Memivo Pro free for a week. Unlimited swipes, video review and smart filters, with a monthly or yearly plan.
- Start free with 30 swipes to see how it feels.
- A new welcome tour shows how Memivo works before it asks for your photos.
- A fresh look: month tiles by year, round Keep and Trash buttons, and a Review Tray that shows how much space you are about to free.
- A new membership card in Settings, and a replay of the welcome tour.
- Your photos still never leave your iPhone.
27 changes
  • fix(memivo): month tile overlap, drop first-use tutorial gate, remove dead code
  • fix(memivo): smart filter row fades per card on scroll instead of a static mask
  • memivo: es-MX locale script, --locale for screenshot upload
  • fix: no Photos alert before the permission page; paywall only on user action and always closeable
  • fix(memivo): keep PaywallViewModel across re-renders; Rate link targets the live app; 2.0.0 version + ASC prepare script (P8)
  • feat(memivo): screen polish - Settings membership card, round swipe buttons, month tiles, tray hero, earned review asks (P7)
  • feat(memivo): onboarding pager, Photos pre-prompt after the paywall, root cover (P6)
  • feat(memivo): paywall rebuild - plans first, trial copy, framing, later link (P5)
  • feat(memivo): soft gate, 30-total free allowance, root decision, locked paywall (P4)
  • feat(memivo): Firebase Analytics Core + Remote Config in, TelemetryDeck out (P3)
  • fix(memivo): RevenueCat deadline, superseded refresh settles, unconfigured SDK guard (P2 review)
  • feat(memivo): EntitlementStore purchases/restores via RevenueCat, initial-resolution wait, app wiring
  • feat(memivo): RevenueCat backend + composite entitlement resolver
  • feat(memivo): local entitlement scan offline-safe, monthly-aware
  • feat(memivo): entitlement snapshot merge and local/remote fact mappers
  • refactor(memivo): generalise entitlement models beyond yearly, split files
  • chore(memivo): P2 tooling - project file registration helper, bounded test runner
  • docs: Memivo P1 live state - monthly product, RevenueCat built, Firebase done
  • docs: pointer to team working model (DECISION-138)
  • docs: Memivo 2.0.0 P0 picks recorded, review-ask rework specified
  • design: Memivo 2.0.0 P0 baseline captures + 25 Superdesign variants for Operator picks
  • docs: Memivo 2.0.0 final gate decision - soft paywall, 30 total free swipes
  • build(memivo): bump CURRENT_PROJECT_VERSION to 3 for TestFlight
  • fix(memivo): critical live-test bugs - smart filter mask width, month card placeholder size, verify onboarding
  • chore(memivo): bump build number to 2 for v1.1.0 countup TestFlight build
  • feat(memivo): count-up animation for Review Tray summary stat
  • feat(v1.1.0): onboarding carousel, live free-swipe countdown, Tutorial photo fix
1.0.04 Aug 2026tag dateNo release notes entered.
77 changes
  • Revise paywall copy: monthly-equivalent pricing, "Upgrade to Unlimited" eyebrow
  • feat: replace App Store icon with Photo Stack Lift concept
  • fix: restore rounded corners on Review Tray cells after overflow clip
  • fix: clip Review Tray cells to their square bounds
  • fix: Home smart-filter row no longer clips legible text at either edge
  • fix: force true square Review Tray cells regardless of photo aspect ratio
  • docs: Xcode Cloud workflows now live for Memivo (ciProduct + both workflows confirmed via API)
  • docs: correct Xcode Cloud workflow STATUS blocks for the new Memivo app record
  • copy: retire PhotoSweep-era "sweep/clean" tone for Memivo's Review/Calm voice
  • rebrand: PhotoSweep -> Memivo (Curato Labs)
  • fix: keep home title above free swipe meter
  • fix: expand review summary done target
  • fix: soften privacy policy link
  • feat: adopt native PhotoSweep navigation
  • fix: localize PhotoSweep swipe polish
  • feat: polish PhotoSweep review experience
  • feat: redesign PhotoSweep Pro paywall
  • fix: refine PhotoSweep swipe experience
  • fix: polish PhotoSweep review experience
  • fix: Home grid thumbnail crop, swipe-card jump, and native nav bars
  • docs: record Polish Round 2 and Round 3 merges in release state notes
  • fix: move Home's per-appearance library regroup + smart-filter counts off the main actor
  • fix: real card-stack reveal, no-scroll swipe screen, edge-swipe fix, video swipe, Home/Settings large-title + Settings restyle
  • fix: Home grid overlap, swipe aspect-fit + preload, tray/settings polish
  • fix: resolve full-screen viewer view builder
  • fix: polish PhotoSweep media and review tray layouts
  • fix: extend Home month-card scrim for Dynamic Type legibility
  • fix: avoid repeated Home thumbnail asset lookups
  • fix: make foreground Home refresh derive from completed fetch
  • docs: log video-duration field as a separate follow-up task
  • docs: log fix/post-launch-polish-2026-07-25 -> main merge and update release state notes
  • chore: remove PhotoSweepSnapshotTests target and swift-snapshot-testing dep
  • fix: full-bleed AppIcon-1024, crop out mockup padding and shadow
  • docs: log build/v1 -> main early merge and update release state notes
  • docs: approve Task 17 after independent review
  • feat: app wiring - navigation, Tutorial gate, PhotoLibraryChangeObserver lifecycle, TelemetryDeck, cross-promo, DEBUG state menu (F24, F27, L7, L11)
  • docs: approve Task 16 after independent review
  • feat: First-use Tutorial + Settings replay (F8-F10, A2-A3, A6-A10)
  • docs: approve Task 15 after independent review; fix fake-GREEN record:.all in test_purchasing
  • Update Paywall
  • feat: Paywall screen - carousel, dual offering, full state machine, L3 defect checklist (F20-F22)
  • docs: approve Task 14 after independent review
  • feat: Settings screen - Pro status, stats, privacy, cross-promo, about (F22-F24)
  • docs: approve Task 13 after independent review
  • feat: Review Tray screen - grouped grid, restore, pinned delete CTA (F13-F15, A12)
  • docs: add tool-agnostic PhotoSweep build-track resume procedure
  • docs: approve Task 12 after independent review
  • feat: Swipe Session screen - continuous drag wash, limit card, a11y (F8-F12, F16-F18, A2-A3, A8-A9, A12)
  • fix: show midnight-reset copy when the daily free-swipe limit is reached
  • feat: add Home screen with snapshot coverage (F1-F7, F19, A1, A4-A11)
  • docs: approve Task 10 after independent review
  • feat: add AA-reconciled design tokens
  • fix: complete lazy home size estimation
  • feat: add v1 smart filters and home state
  • feat: add review tray batch deletion state
  • fix: refresh swipe session gates and progress
  • feat: add persisted swipe session state machine
  • fix: preserve QA entitlement overrides across refreshes
  • feat: EntitlementStore StoreKit 2 dual-product state machine (F20-F22, L3)
  • fix: reconcile cleaned baseline after external deletion
  • feat: PhotoLibraryService with authorization state and reconciliation (F3-F7, F25, L7)
  • docs: add POC conformance gate and tutorial task
  • docs: note internal TestFlight group receives builds from both workflows
  • docs: mark Xcode Cloud TestFlight + App Store workflows live (ids F5AE7F0B-C4E2-4865-8439-FF7B282621CB, 26299fe3-a3cd-4242-ba88-20801e484c80)
  • chore: generate production AppIcon.appiconset from Window Lift concept (DECISION-075)
  • docs: patch Task 12 (Swipe Session) for POC-locked drag-feedback + video-control contract (DECISION-078)
  • feat: add Xcode Cloud Beta build configuration, scheme, and CI workflow docs
  • docs: cite HTML POC as interaction reference; reaffirm Smart Suggestions stays out of v1 scope
  • feat: PhotoAssetProviding abstraction + MonthGroupingService (F1, L7)
  • feat: DailyCounterService for the free 50/day swipe limit (F16)
  • docs: clarify Window Lift icon + AA color reconciliation, design-doc.md wins on hex conflicts
  • chore: add PhotoSweep design guide pointers
  • fix: strengthen MonthProgress upsert test to actually exercise the unique constraint
  • feat: SwiftData models + persistence controller (schema v1 baseline)
  • Add local StoreKit config for sandbox testing (yearly + lifetime Pro)
  • [scaffold] checked-in Xcode project, bundle id com.proappslab.photosweep, no ads
  • Initial commit

MathPuzzlr Daily Math Puzzle

App Store · 1 releases

VersionDateRelease notes (App Store)Technical changes
1.0.01 Aug 2026tag dateNo release notes entered.
120 changes
  • docs(progress): record dismiss control consistency
  • fix(ui): unify dismissal controls
  • docs(progress): record navigation double-chrome fix
  • fix(navigation): remove duplicate toolbar chrome
  • docs(progress): record navigation stability audit
  • fix(settings): stabilize theme navigation and button chrome
  • docs(progress): record toolbar and celebration polish
  • fix(board): polish toolbar controls and win celebration
  • docs(progress): record Strict Mode rename and tutorial integration
  • fix(settings): grow Strict mode info button to 44x44 tap target
  • feat: rename Hard Mode to Strict Mode, add tutorial slide
  • docs(progress): record compact board layout
  • fix: compact board layout and Puzzle Lab picker
  • docs(progress): record feedback batch 3 integration
  • fix: batch3 review findings (Hard Mode resume gate, locked-row VoiceOver)
  • fix: feedback batch 3 (epoch, Hard Mode gate, Theme nav, countdown)
  • docs(progress): record screenshot re-shoot and ASC upload
  • docs(progress): record privacy/support page deployment
  • docs(progress): record fix/archive-paywall-copy integration
  • fix(archive): restore full-history Pro browsing, fix locked-teaser copy
  • docs(progress): record Xcode Cloud signing fix and ASC metadata audit
  • docs(progress): record ad-removal task and App Store metadata checklist
  • fix(paywall): drop now-false ad-free claim from theme benefit card
  • feat(ads): remove GoogleMobileAds/GoogleUserMessagingPlatform entirely
  • docs(progress): record epoch/iCloud-sync task and main/build/v1 reconciliation
  • fix(sync): dispatch iCloud change handler on main + cover local-absent load
  • feat(sync): add iCloud key-value sync for local player data
  • fix(epoch): anchor puzzle epoch to real 2026-08-01 launch date
  • Fix emdashes
  • feat: polish MathPuzzlr daily and beta experience
  • fix(build): register Telemetry source
  • fix(settings): make rows fully tappable
  • feat(lab): add Puzzle Lab progression foundation
  • fix(assets): register BrandMark scale variants
  • docs(roadmap): define MathPuzzlr version milestones
  • chore: pin TelemetryDeck package
  • docs(progress): record TelemetryDeck and roadmap integration
  • feat(analytics): add TelemetryDeck signals and product roadmap
  • docs(progress): record Task 18 integration
  • fix(ads): wait for entitlement resolution before banners
  • feat(ads): AdMob adaptive banner on Results + Settings (L4, npa=1)
  • docs(progress): record feedback batch 2 integration
  • fix: complete feedback batch sheet and practice polish
  • docs(progress): record AppIcon fix integration
  • fix(assets): set real Tile Trio app icon (was blank placeholder)
  • docs(progress): record batch-1 polish fixes, flag AppIcon gap as next priority
  • fix(polish): move puzzle epoch, wire streak chip, real version/build, Contact Us
  • docs(progress): close out visual-fidelity pass (VF1-VF6), consolidate open items
  • fix(a11y): whole-pass accessibility and contrast audit
  • docs(progress): record VF5 integration, minor-findings backlog, VF6 next
  • feat(settings): brand settings and adaptive paywall
  • docs(progress): record VF4 integration, close-identifier/scale-factor fix, VF5 next
  • fix(progress): restore close-button identifiers and fix guess-row text scaling
  • feat(progress): brand stats and archive surfaces
  • chore: remove MathPuzzlrUITests target (no more UI tests, factory policy)
  • docs(progress): record VF-FIDELITY-1 integration and residual visual gaps
  • feat(design): rounded typography and illustrated backgrounds
  • docs(progress): record VF3 integration and accessibility5-override environment regression
  • feat(results): restore celebratory reward styling
  • docs(progress): record VF2 integration, StoreKit attempt-4 findings, billing note
  • fix(board): resolve accessibility5 overlap and VF2 review findings
  • feat(board): restore branded Tile Trio game shell
  • docs(progress): record StoreKit attempt-4 (H3 confirmed) and VF2 review/fix status
  • docs: record real TelemetryDeck AppID/org namespace for Task 19
  • docs(progress): record visual fidelity VF1 approval
  • fix(design): resolve CTA contrast by theme
  • fix(design): enforce branded component contrast
  • feat(design): add shared Tile Trio visual foundation
  • docs(progress): record Task 17 approval + visual-fidelity gap finding
  • fix(paywall): remove hardcoded Pro price fallback, correct report citation
  • feat(paywall): Paywall sheet with L3 states and L5 load matrix
  • docs: record fabricated-citation lesson from Task 17 report
  • docs(progress): defer StoreKit test-session bug, two failed attempts recorded
  • docs(progress): record Task 16 approval + Archive design confirmation
  • fix(settings): remove hardcoded Pro price fallback, show loading state instead
  • feat(settings): Settings sheet, reminders, theme picker, tutorial replay
  • docs(progress): record Task 15 approval
  • feat(archive): Archive sheet with Pro gate and per-day markers
  • docs(progress): record fix/test-baseline integration + new StoreKit purchase-flow test bug
  • fix(test): correct FeedbackTests duplicate-symbol fixture
  • fix(test-config): bundle StoreKit config into MathPuzzlrTests target resources
  • docs: add CLAUDE.md/AGENTS.md resumption rules for agentic sessions
  • docs(progress): record test-baseline investigation + in-progress fix status
  • docs(progress): record Task 14 approval
  • fix(streak): guard invalid ClosedRange in repairableGap on day 1
  • feat(stats): Stats sheet, dashboard, streak-repair banner
  • docs(progress): record Task 13 approval
  • fix(results): register ShareCardTests in MathPuzzlrTests target
  • feat(results): Results sheet, share card, reward loop (descriptor/strip/milestone/celebration)
  • docs(progress): record Task 12 approval
  • fix(board): restore daily navigation and reveal motion
  • feat(board): Board screen, root wiring, interactive tutorial
  • docs(progress): record Task 11 approval
  • fix(app): validate streak repairs
  • feat(app): BoardViewModel game state machine + AppEnvironment
  • docs(progress): record Task 10 approval
  • fix(tests): import StoreKitTest for SKTestSession
  • fix(design): fit keypad digits on compact screens
  • feat(design): TileView + KeypadView primitives
  • fix(infra): safely own StoreKit observer task
  • fix(infra): cancel StoreKit observer safely on deinit
  • feat(design): color/typography/spacing tokens and themes
  • feat(infra): StoreKit 2 entitlement + product service
  • fix(infra): preserve original completion timestamp
  • feat(infra): JSON store, game clock, preferences
  • fix(tests): use nonthrowing reward result maps
  • feat(engine): domain models, streak derivation/repair, reward derivations (descriptor/strip/milestones)
  • feat(engine): two-pass feedback + hard-mode hint binding
  • docs(progress): record pre-merge build status
  • test: fix generation benchmark assertion
  • fix(engine): fail safely when puzzle generation exhausts
  • feat(engine): bounded generator + daily provider with 365-day dedup
  • feat(engine): SplitMix64 PRNG and weekday difficulty templates
  • docs(progress): record Task 23 checkpoint
  • docs(ci): record Xcode Cloud workflow configuration
  • feat(ci): add Beta build configuration and MathPuzzlr Beta scheme for Xcode Cloud
  • fix(project): nest Engine group under existing Sources group in add_source.rb
  • feat(engine): equation grammar, tokenizer, evaluator
  • chore: add unit + UI test targets and StoreKit config
  • Initial MathPuzzlr scaffold from ios-app-template

NoiseNest Brown Noise Sleep

App Store · 2 releases

VersionDateRelease notes (App Store)Technical changes
1.0.324 Jul 2026tag dateFixed a bug where Rate NoiseNest and See All Our Apps could show a connection error. Small visual polish to the info sheet.
6 changes
  • chore: bump to 1.0.3, prep next store release
  • fix: correct Rate App link and cross-promo remote URL
  • remove passkit entitlement
  • Fix info sheet side edges
  • Refine info sheet glass background
  • chore: migrate to new AdMob account for 1.0.2 release
1.0.28 Jul 2026tag dateNo release notes entered.
21 changes
  • feat: refine mix, icons, and backdrop polish
  • Refine color info and onboarding copy
  • feat: refine home calm UI and prep 1.0.1 release
  • tons of small fixes
  • Fix home layout and smooth playback transitions
  • Enable iPhone landscape for testing
  • chore: update NoiseNest AdMob ids
  • fix: polish home layout and now playing artwork
  • feat: refresh alternate icons and polish home layout
  • fix: polish home, paywall, and now playing UX
  • Polish player alignment and promo icon fallbacks
  • feat: refresh NoiseNest onboarding and premium UI
  • fix(audio): rebalance green/blue noise gain to stop constant clipping (FB1)
  • fix(a11y): contrast, Dynamic Type truncation, and VoiceOver trait fixes
  • Fix Paywall Dynamic Type truncation at large text sizes (A3)
  • Revert "Fix repo regression: restore project.yml as XcodeGen source of truth"
  • Fix repo regression: restore project.yml as XcodeGen source of truth
  • Fix iPad orientation support for CI validation
  • latest changes
  • commit files
  • Build: complete Audio/Services/Models and Views layer for NoiseNest v1

Milestones Age & Life Events

App Store · 5 releases

VersionDateRelease notes (App Store)Technical changes
2.0.129 Jun 2026tag dateBug fixes and improvements.
3 changes
  • chore(agecalc): add v2.0 screenshot harness views (timeline, persondetail, addanniversary, silvershare)
  • fix(agecalc/v2.0): Later section renders empty despite correct event count
  • fix(agecalc/v2.0): Timeline tab bar icon missing when selected
2.0.029 Jun 2026tag dateYour anniversaries, down to the minute.

Milestones now tracks every date that matters - not just birthdays. Weddings, sobriety milestones, work anniversaries, graduations, the day you brought a pet home. Each type generates the moments that count, in its own way.

1. Anniversary milestones
Add wedding dates, sobriety milestones, work anniversaries, graduation days, pet adoptions, and more. 11 predefined types plus Custom, each with its own milestone engine. Wedding anniversaries follow the traditional named ladder: Paper at 1 year, Silver at 25, Golden at 50, Diamond at 60. Recovery milestones track 30 days, 60 days, 90 days, 1 year - the counts that matter most. Up to 3 anniversaries free, unlimited with Pro.

2. Exact time of birth and events
Add the hour and minute to any birthday or anniversary. The live counter becomes precise to the second: 34 years, 7 months, 12 days, 4 hours, 22 minutes, 18 seconds. Exact time is free for everyone.

3. Events Timeline - new tab
A new Timeline tab shows every birthday and anniversary across all your people in one chronological feed, grouped by This Week, This Month, and Later. Share any event in one tap. Enable per-event notifications with Pro.

4. Settings tab
Settings now has its own tab in the bottom bar - always one tap away.

5. Grouped milestones
Generated milestones now group under each base event, with an expand/collapse control to keep the timeline clean.

All existing data migrates automatically. No action needed.
15 changes
  • chore(agecalc): bump build number to 62 for v2.0.0 App Store submission
  • test(agecalc/v2.0): add AC-005.7 DST-tolerant countdown target tests
  • fix(agecalc/v2.0): sync Milestone.date+title on birthdate edit (AC-003.2/AC-003.3)
  • feat(agecalc/v2.0): grouped milestones + showGeneratedMilestones toggle (Item 6)
  • feat(agecalc/v2.0): Settings tab - move Settings into 3rd tab bar slot (Item 7)
  • feat(agecalc/v2.0): Pro anniversary cap, paywall carousel card, notification service extension
  • feat(agecalc/v2.0): Events Timeline - populated, grouped, share + notify per row
  • feat(agecalc/v2.0): Add/Edit Anniversary flow + person detail Anniversaries section + time-of-birth picker
  • feat(agecalc/v2.0): tab bar (Home|Timeline stub) + MilestoneService anniversary extension + time-aware countdown
  • feat(agecalc/v2.0): SwiftData migration v1->v2 + 14 migration tests + ModelContainer update
  • fix(agecalc/v2.0): remove unlisted day-365 from DefaultGenerator; update year-1 test
  • feat(agecalc/v2.0): generator engine + all 7 generators + 15 unit tests
  • feat(agecalc/v2.0): Milestone model, MilestoneKind, AnniversaryType constants
  • chore(agecalc/v2.0): bump version to 2.0.0 (all targets, project.yml)
  • fix(milestones): v1.2.1 UI polish - pill indicator, birthday share/notify, share card copy, retention milestones
1.2.122 Jun 2026tag dateRedesigned home card - see your age as a live ticking counter, with totals for days, hours, minutes, and seconds updating in real time.

Milestones and birthdays now share a single unified list, so the "Next Event" box always matches what you see in the detail view.

Six new long-life milestones for adults: 2,000 Weeks, 20,000,000 Minutes, 15,000 Days, 1.5 Billion Seconds, 20,000 Days, and 2 Billion Seconds - so you always have something to look forward to.

Switching between people is now simpler: tap an avatar in the strip at the top.
9 changes
  • chore(agecalc): bump CURRENT_PROJECT_VERSION to 61 for v1.2.1 TestFlight build
  • feat(agecalc/v1.2.1): milestone-model restructure + swipe removal (DECISION-031)
  • feat(home): DECISION-030 v1.2 home refinements - soonest-event box, cycle progress, People screen, no-clip hero
  • chore(agecalc): bump version to 1.2.0 (build 2)
  • fix(agecalc/v1.2): fold full milestone list + per-milestone toggles into Notifications paywall card
  • test(agecalc/v1.2): v1.2 logic unit tests + UI-test hero-tap fixes
  • feat(agecalc/v1.2): Pro paywall carousel with realistic previews + pinned footer
  • feat(agecalc/v1.2): Settings as modal sheet, Restore row, DEBUG-only Simulate Pro
  • feat(agecalc/v1.2): redesigned Home hero, per-person band, avatar-strip nav
1.1.019 Jun 2026tag dateSharing, fixed and beautiful.

- Share cards are redesigned: cleaner and calmer, with the milestone number as the star. Looks great in both light and dark.
- Sharing now works first tap, every time.
- Share any milestone, including ones you have already reached - not just upcoming ones.
- Decade birthdays now label correctly (3 decades, 4 decades...).
- Upcoming birthday rows now show a color dot matching each person.
29 changes
  • fix(v1.1): wire CFBundleShortVersionString to MARKETING_VERSION 1.1.0
  • fix(ci): remove SnapshotTesting to unblock Xcode Cloud AppStore workflow
  • fix(v1.1): revert CURRENT_PROJECT_VERSION to 1 to let Xcode Cloud auto-number
  • chore(v1.1): bump version to 1.1 build 42, fix comment, include SCREENSHOT_SUBDIR
  • agecalc: fix Xcode Cloud Package.resolved drift (sync root with test deps)
  • agecalc: add swift-snapshot-testing baselines for key screens
  • feat(v1.1): share card v3 warmth pass (emoji chip, bigger avatar, per-type eyebrow)
  • fix(v1.1): eager-render share card so cold-launch first tap is never blank + correct footer app icon
  • feat(v1.1): share card v2 redesign (dark + light)
  • feat(v1.1): share on passed milestones, decade label, birthday color dot
  • fix: share card renders on first cold tap
  • fix: sync Simulate Pro dev flag to widget App Group state so Pro widgets unlock in Beta testing
  • test(notifications): cover configurable lead-times + new -d<D> identifiers
  • feat(notifications): configurable reminder lead-times + full centralization
  • test: notification scheduling decision cases
  • fix: clean notifications on delete + decouple per-milestone reschedule
  • test: seed a real photo through the production widget thumbnail in DEBUG harness
  • fix: widget photos - store small thumbnail and collapse age timeline to daily entry
  • feat: informative lock screen widget locked state
  • refactor: single Settings Pro banner, remove redundant Pro Widgets section
  • feat: pro-unlock carousel in paywall with non-cropped widget previews
  • fix: brand mark transparent corners, no white halo in dark mode
  • test: add DEBUG settings harness screen for QA verification
  • feat: gate medium/upcoming/lock-screen widgets behind Pro with in-app preview
  • fix: blur and dim share card background so text stays legible
  • fix: point More Apps to the App Store developer page
  • fix: remove ATT and UMP consent, serve non-personalized ads (no IDFA)
  • fix: flatten app icon PNGs to RGB so the icon renders on device
  • fix: widget avatar sync, small widget render, upcoming deep link + grouping
1.013 Jun 2026tag dateNo release notes entered.
55 changes
  • test: add DEBUG marketing-screenshot harness for App Store frames
  • fix: drop notification hour sentinel and wire paywall retry to productLoadState
  • ui(share-card): depth numeral, emoji glow, honest footer
  • ui(add-person+upcoming): swatch selection, Tomorrow, dates, AA chips
  • ui(detail): emoji row icons, NEXT progress bar, calmer action list
  • ui(paywall+settings): conversion-focused paywall, honest Pro gating
  • ui(home): celebration confetti, milestone progress, hero polish
  • ui(widgets): shared accent gradient, AA contrast, fix name leak
  • test: add AgeCalcTests unit test target for AgeCalculator
  • chore: cleanups for entitlements, cross-promo URL, em dashes
  • feat: wire production AdMob identifiers
  • fix: order startup as ATT, UMP consent, then ads SDK init
  • fix: reload widget timelines on Pro change and retry product load
  • fix: stop notification scheduler wiping per-milestone requests
  • fix: correct milestone date math with reference-date injection
  • style: remove all em dashes from source files
  • ui: green capsule for active Notifying button state
  • ui: improve readability and navigation header across Home and Upcoming Birthdays
  • fix(agecalc): regenerate project.pbxproj via xcodegen — replace fake UUIDs
  • fix(milestones): update share card QR code to real App Store URL
  • feat(milestones): make share card free for all users
  • fix(milestones): share card photo+QR, notify me wiring, widget clipping, settings cleanup
  • chore: add ITSAppUsesNonExemptEncryption=false to all targets
  • [agecalc] Fix widget icon/text sizes and spacing
  • [milestones] Fix widget/UI issues: avatar headers, upcoming birthdays redesign, medium widget layout, widget deep links, small widget data fallback
  • [agecalc] Fix widget empty-state bug + redesign widgets + add Upcoming Birthdays feature
  • Add ITSAppUsesNonExemptEncryption=false to Info.plist
  • Fix HomeView toolbar layout, inline Add Person, widget sync, date picker UX
  • [agecalc] Add light/dark app icon variants and swiftlint config
  • [agecalc] Fix delete confirmation dialog anchoring to person row
  • [agecalc] UI polish batch: widget design, avatar display, card layout, paywall UX
  • [agecalc] Trigger TestFlight beta build
  • [milestones] Fix avatarPalette widget scope, update support email
  • test: add UITest screenshot capture target for App Store screenshots
  • ci: retrigger Xcode Cloud build (local Debug + Beta both pass)
  • [review] Fix Stage 6 non-blocking issues (polish + perf)
  • [review] Fix Stage 6 blockers before App Store submission
  • ci: add Xcode Cloud workflow YAMLs and ExportOptions plists
  • dev: expose Simulate Pro flag in Beta (TestFlight) builds via BETA compilation condition
  • rebrand: rename app display name to Milestones, home title to My People
  • feat(widget): use person's accent colour + redesigned small/medium widget layout
  • fix: 10 app-side issues — photo crop, URLs, Pro flag, accessibility, formatting
  • fix(itms): move orientation/launch-screen/displayName into project.yml so xcodegen doesn't wipe them on CI
  • fix(widget): add CFBundleDisplayName to satisfy ITMS-90360
  • fix(itms-90474): add UISupportedInterfaceOrientations~ipad to Info.plist
  • fix: WidgetCenter.current → WidgetCenter.shared
  • fix(ci): commit Package.resolved and restore it after xcodegen generate
  • [agecalc] Eve — Xcode Cloud ci_scripts + shared scheme
  • [agecalc] Sam — fix launch screen, modal layout, photo avatar, widget edges + config, AdMob
  • [agecalc] Mia — app icon 1024×1024 (orange + cake + 10K)
  • Fix ATT crash and TelemetryDeck initialization
  • Fix compile errors after SPM package resolution
  • Add Xcode project, entitlements, xcconfig, and assets
  • Initial scaffold — AgeCalc — Milestone Tracker
  • Initial README

Angry Math 1 second

App Store · 4 releases

VersionDateRelease notes (App Store)Technical changes
1.2.313 Jul 2026ASC datev1.2.3 - Bug Fixes and Improvements

This update includes small bug fixes and general improvements to keep the experience smooth and reliable.
Source history not in this workspace.
1.2.26 Jul 2026ASC dateThis update includes small bug fixes and general improvements to keep the experience smooth and reliable.Source history not in this workspace.
1.2.122 May 2026ASC datev1.2.1 - Pro, Practice Mode, Themes, and More

Pro is here. One upgrade unlocks Practice mode, removes banner ads, and opens 9 visual themes with font options. No subscription. Upgrade once, keep everything.

PRACTICE MODE (PRO)
Choose your difficulty, set your own per-problem timer, and drill without leaderboard pressure. Build real speed before you go live. Super Hard difficulty is included.

VISUAL THEMES AND FONTS (PRO)
Pick from 9 color themes - including the new Parchment theme - with a live preview before you commit. Pair with your choice of font for a setup that feels personal.

SOUND
Five distinct soundpacks to choose from. Same pressure, different vibe.

MULTIPLAYER POLISH
Rematch now requires both players to agree before the next round starts. A live status indicator shows whether your opponent is still in or already timed out.

WIN/LOSE OVERLAYS
Local 2-player now shows a crown on the winner, an X on the loser, and a draw icon when it ends level.

KEYCHAIN SYNC
Your player name and local high scores survive a reinstall and transfer automatically to a new device via iCloud Keychain.

DETAILS
- Reset Progress in Settings - clear all saved data and start fresh
- New Record badge animates on Game Over when you beat your personal best
- Time's Up! flash distinguishes timeout from wrong answer
- Darker gameplay backgrounds for a more immersive feel
- Button press animations on all main controls
- Review prompt appears after 5 completed games
Source history not in this workspace.
1.0.02 May 2026ASC dateNo release notes entered.Source history not in this workspace.