Skip to content

Releases: momentmaker/pancakemaker

v1.7.2

27 Apr 12:14
v1.7.2
d077f3e

Choose a tag to compare

Fixed

  • Cross-route expense orphans — Dashboard QuickAdd no longer lets you accidentally pair a Business category with a Personal panel (or vice versa); the panel now derives automatically from the selected category's route. Existing orphaned expenses (e.g. a Business → Travel expense that showed $0 on the category page but appeared in the detail view as "Unknown Panel") are healed automatically on app load. Subtle p/b markers in the Dashboard category dropdown disambiguate same-named categories across routes.

v1.7.1

31 Mar 14:53
v1.7.1
e681470

Choose a tag to compare

[1.7.1] - 2026-03-31

Fixed

  • Sync indicator stuck on "Syncing" forever — circuit breaker now shows "Sync error" after 3 failures, manual retry bypasses it, and periodic retry with exponential backoff keeps sync alive

Changed

  • Upgrade GitHub Actions to v5 and Node.js 22

v1.7.0

24 Mar 15:09
v1.7.0
c88e7b6

Choose a tag to compare

[1.7.0] - 2026-03-24

Added

  • Mobile decimal keyboard for amount input — QuickAdd now uses inputMode="decimal" for a cleaner numpad without spinner arrows
  • One-click expense duplicate — copy any expense with the same category, amount, currency, and description, dated to today

Changed

  • Update README.md

v1.6.1

01 Mar 03:19
v1.6.1
6c34ec8

Choose a tag to compare

[1.6.1] - 2026-02-28

Fixed

  • Sync status stuck at "Local" after page reload for authenticated users — SyncContext now reads the engine's actual initial status instead of hardcoding "local"
  • Auto-sync on app startup when authenticated — engine now fires an initial sync in start() when a JWT token is present

v1.6.0

01 Mar 03:01
v1.6.0
abe61d5

Choose a tag to compare

[1.6.0] - 2026-02-28

Fixed

  • Reduce dashboard DB queries from 8+ to 2 — derive all stats from current + previous month expenses to prevent iOS Safari WASM JIT crash
  • Simplify sync engine — remove interval timer, focus handler, and delayed start; sync now only fires after login or CRUD operations

v1.5.8

01 Mar 02:39
v1.5.8
d6b3601

Choose a tag to compare

Fixed

  • Batch sync pull with yields to prevent iOS Safari WASM JIT crash — process entries in groups of 20 with main-thread yields between batches
  • Remove reactive sync triggers from all write paths — sync now fires via 5-min interval, focus event, manual button, or after auth login
  • Delay initial sync by 3 seconds to let the app render first
  • Detect crash loops (restart within 60s) and defer sync to next interval
  • Circuit breaker: disable sync after 3 consecutive failures

v1.5.7

01 Mar 01:53
v1.5.7
48620ec

Choose a tag to compare

Reverted

  • Revert all changes from v1.5.2–v1.5.6 (iOS PWA crash fixes) — introduced regressions in regular browser mode
  • All source files restored to v1.5.1 state

v1.5.6

01 Mar 01:48
v1.5.6
800d3c3

Choose a tag to compare

Fixed

  • Chunk sync entry application into batches of 20 with browser yields between batches to prevent Safari WASM JIT thrashing (known wa-sqlite issue where sustained WASM execution causes 300-500% CPU spikes and WKWebView crashes)
  • Yield to main thread between push and pull operations and before notifying UI of new data

v1.5.5

01 Mar 01:01
v1.5.5
6173624

Choose a tag to compare

Fixed

  • Break iOS PWA crash-restart loop — detect rapid restarts and disable sync for the session to prevent infinite WKWebView crashes
  • Delay initial sync by 3 seconds after startup to let WASM/IDB settle before making network calls
  • Batch pull writes in SQLite transactions to reduce IDB contention (N individual writes → 1 transaction)
  • Disable sync after 3 consecutive failures to prevent runaway retry loops

v1.5.4

01 Mar 00:42
v1.5.4
83f4ca3

Choose a tag to compare

[1.5.4] - 2026-02-28

Fixed

  • Remove WAL journal mode and disable deferred IDB purge to prevent iOS standalone WKWebView crashes after idle