What's Changed
- test(android): add emulator UI and functional journey suite by @callebtc in #197
- Fix/android ios parity checklist by @asmogo in #203
- wallet ui visual review skill by @asmogo in #198
- Translate restore failures into wallet copy by @asmogo in #200
- Fix seed phrase TalkBack semantics by @asmogo in #202
- Surface onboarding startup failures by @asmogo in #199
- Drive Home receive beat from explicit payment events by @asmogo in #209
- Label the wallet startup loading state by @asmogo in #208
- update list by @asmogo in #211
- Keep Receive usable without a mint by @asmogo in #207
- Align Home action hints with unified flows by @asmogo in #210
- Validate custom onboarding mint URLs by @asmogo in #201
- Gate Android wallet flows on runtime readiness by @asmogo in #204
- Add iOS Wallet no-mint empty state by @asmogo in #206
- Honor preferred primary balance unit on Android home by @asmogo in #205
- Honor preferred unit on send confirmation by @asmogo in #212
- Preserve payment facts through Send terminal states by @asmogo in #217
- Support fiat-primary unified Send entry by @asmogo in #215
- Explain iOS payment route changes by @asmogo in #214
- Use platform-neutral payment warnings by @asmogo in #216
- Show Cashu Request fee estimates on Android by @asmogo in #213
- Support fiat-primary entry for ecash by @asmogo in #218
- Show the actual P2PK target during Android receive by @asmogo in #227
- Show Cashu token memo before receiving by @asmogo in #228
- Preserve receive-later token memos by @asmogo in #229
- Default Cashu requests to any mint by @asmogo in #225
- Fix receive-later memo test compilation by @asmogo in #232
- fix(android): report settled receive fee by @asmogo in #230
- Warn before receiving from unknown mints by @asmogo in #224
- Update receive fee test for P2PK lock state by @asmogo in #233
- Confirm P2PK recipients on Android by @asmogo in #220
- Unify Cashu Request Nostr readiness by @asmogo in #222
- Improve lock ecash accessibility copy by @asmogo in #221
- Support fiat-primary Bitcoin receive entry by @asmogo in #235
- Preview custom mint info during onboarding by @Supremesv715 in #231
- Authenticate before enabling App Lock by @asmogo in #239
- Use user-facing Lightning address language by @asmogo in #246
- Add Lightning address initialization feedback by @asmogo in #247
- Warn before exposing the Nostr private key by @asmogo in #245
- Give key generation destructive semantics by @asmogo in #244
- Use payment language for manual Lightning check by @asmogo in #243
- Require a choice for missing custom Nostr keys by @asmogo in #240
- Audit and sanitize crash reports by @asmogo in #238
- Explain the purpose of Nostr relays on Android by @asmogo in #237
- Correlate Cashu Request success to linked payments by @asmogo in #234
- Surface Nostr identity mutation failures by @asmogo in #242
- Complete identity replacement warnings by @asmogo in #241
- Show fees on claimed ecash receipts by @asmogo in #223
- improve review skill by @asmogo in #250
- update list by @asmogo in #248
- Honor preferred unit on generated invoice details by @asmogo in #236
- Fix Android onboarding mint previews by @asmogo in #251
- fix receive unit by @asmogo in #253
- Add P2PK recipient scanning on Android by @asmogo in #219
- Add manual sent ecash status checks by @asmogo in #226
- fix: commit pending custom mint URL on onboarding Continue by @Supremesv715 in #249
- Let onboarding headlines wrap; align Android add-mint row with iOS; swap Coinos for Chorus by @swedishfrenchpress in #252
- Android mint detail: iOS parity for metadata, payment rails, and actions by @asmogo in #258
- Search transaction and request memos on iOS by @asmogo in #255
- Add mint discovery retry and unify recovery copy by @asmogo in #257
- Android Wallet Connect reset warning: mention recovery requires sharing new code by @asmogo in #261
- Save device key nickname on change, not just keyboard Submit by @asmogo in #262
- Android currency sheet: show relative BTC price updated time by @asmogo in #263
- Keep iOS WebSockets toggle independent of invoice/token polling by @asmogo in #270
- Standardize zero-fee wording by meaning across iOS and Android by @asmogo in #269
- iOS Settings: read app version from bundle metadata by @asmogo in #265
- Android privacy: disable periodic invoice checks when incoming checks are off by @asmogo in #267
- iOS QR codes: VoiceOver Copy/Share actions matching the context menu (Android parity) by @asmogo in #266
- Align privacy-setting copy on concepts, timing, and consequences by @asmogo in #268
- Show only the spinner while a payment is sending by @swedishfrenchpress in #260
- fix: restart incomplete onboarding, keep original seed; stop seed-grid flicker (#172) by @swedishfrenchpress in #259
- Standardize receive-success language across Android receive terminals by @asmogo in #264
- Tick 10 parity items with fixes in review by @asmogo in #271
- One connect-a-mint sheet for both platforms by @swedishfrenchpress in #274
- Sheet navigation contract: replace-not-stack, back lands on the wallet by @swedishfrenchpress in #275
- Android Settings: move App Lock to Backup & Security, match iOS Privacy screen by @swedishfrenchpress in #276
- Serialize iOS wallet operations and recover interrupted payments by @asmogo in #273
- Animate the receive sheet's input hint on both platforms by @callebtc in #278
- Speed up Android tab transitions 2x by @callebtc in #283
- Hug the content in every iOS content-fit sheet by @swedishfrenchpress in #281
- Android Nostr settings: iOS layout parity, relay validation, reveal-sheet nsec by @swedishfrenchpress in #282
- README: explain the product, add fresh iOS + Android screenshots by @swedishfrenchpress in #286
- Match Android already-redeemed failure to iOS, drop row dividers app-wide by @swedishfrenchpress in #285
- Require iOS and Android feature parity in agent guidance by @callebtc in #289
- Typography: reify the type system in code on both platforms by @swedishfrenchpress in #288
- Inline errors: one contract, two native expressions by @swedishfrenchpress in #292
- Smooth every payment success/error state transition by @callebtc in #279
- Unify payment error states across iOS and Android by @callebtc in #280
- Fix mint discovery add flow on iOS and Android by @callebtc in #290
- Add-mint flow: shared vocabulary, and sheets that size to a layout that happened by @swedishfrenchpress in #295
- Onboarding restyle: fixed chassis, ambient ASCII terrain, and a handoff that erodes by @swedishfrenchpress in #293
- docs: normalize README screenshot widths by @callebtc in #296
- docs: add SECURITY.md policy by @ye0man in #294
- unblock cold start from iCloud KVS sync by @Supremesv715 in #291
- Update CDK bindings to v0.18.0-rc.0: native transaction lifecycle + NUT-16 by @asmogo in #298
- chore: set app version to 0.3 on iOS and Android by @asmogo in #300
- Resume, don't restart, the Android UI suite when the emulator dies by @asmogo in #303
- Skip clipboard auto-receive for spent tokens on iOS and Android by @asmogo in #302
- Re-arm the QR scanner whenever its camera surface reappears by @asmogo in #301
- chore: bump Android versionCode to 5 by @asmogo in #304
- Fix iOS mint selector tap area on Receive and Send by @asmogo in #305
New Contributors
- @Supremesv715 made their first contribution in #231
- @ye0man made their first contribution in #294
Full Changelog: v0.2.2...v0.3.0