Skip to content

chore(release): v0.9.5 release candidate#3487

Merged
CharlVS merged 4 commits into
mainfrom
dev
May 5, 2026
Merged

chore(release): v0.9.5 release candidate#3487
CharlVS merged 4 commits into
mainfrom
dev

Conversation

@CharlVS
Copy link
Copy Markdown
Collaborator

@CharlVS CharlVS commented May 5, 2026

Summary

This release prepares the 0.9.4 release line for mobile publishing as 0.9.5, keeping the app version at 0.9.5+0 while incorporating the final mobile-readiness work from dev. It covers the published SDK 0.6.0 roll, the in-app legacy wallet migration flow, the iOS publishing identity update, Gleec Dex branding, web publishing alignment, and refreshed dependency metadata.

New Features

  • Legacy Wallet Migration Flow ([@CharlVS], feat(migration): implement legacy wallet migration flow #3475) - Adds the app-side migration flow for discovering legacy native wallets, checking compatibility, preparing imports, integrating migrated wallets with auth/session state, and cleaning up migrated legacy data from settings.
  • SDK 0.6.0 Integration - Aligns the SDK submodule to the published komodo-defi-sdk v0.6.0 release commit ccc855082ee5026683188751484eed5342602698 and keeps the root lockfile aligned with the SDK package versions used by the app.

SDK Updates

This release integrates komodo-defi-sdk v0.6.0 with the mobile publishing package set bringing:

  • Legacy Wallet Migration Support - Adds the komodo_legacy_wallet_migration package and supporting auth/framework hooks for discovering, verifying, importing, and cleaning up legacy wallet data.
  • TRON/TRC20 Readiness - Hardens TRON activation, TRC20 handling, transaction history through Tronscan, explorer URL support, and TRX market-data coordination.
  • SIA Readiness - Finalizes SIA activation and withdrawal handling for the mobile release line.
  • Balance, Fee, and Market Data Hardening - Adds balance recovery mode, richer fee information, cached spot-price continuity, CoinGecko failure cooldowns, icon-precache hardening, and numeric JSON compatibility.

Bug Fixes

UI/UX Improvements

Platform-Specific Changes

iOS

Android

Web

Technical Improvements

  • Legacy Migration Test Coverage ([@CharlVS], feat(migration): implement legacy wallet migration flow #3475) - Adds unit/widget coverage for legacy app settings migration, legacy wallet migration, migration compatibility UI, cleanup UI, and fiat preference defaults.
  • Release Metadata Refresh - Keeps the app release name at 0.9.5+0, aligns the SDK submodule with SDK 0.6.0, refreshes dependency resolution, and aligns the Dart SDK floor with the generated lockfile at >=3.11.0 <4.0.0.

Validation

Release prep PR validation completed before merge:

  • flutter pub get --offline
  • dart pub get --enforce-lockfile -C sdk
  • flutter analyze --no-fatal-warnings --no-fatal-infos exited 0 with existing warning/info backlog
  • flutter test test_units/main.dart

Full Changelog: 0.9.4...0.9.5

DeckerSU and others added 4 commits May 5, 2026 21:37
chore(ios): switch bundle ID to com.GleecDEX.wallet and team to B52ZC…
* chore(sdk): update submodule for legacy wallet migration scaffold

* feat(migration): add legacy wallet migration dependency to app

* feat(migration): implement legacy wallet migration with compatibility dialog

Add end-to-end legacy wallet migration flow that detects native legacy
wallets and guides users through a compatibility dialog to set a valid
KDF wallet name and password before migrating.

Key changes:
- AuthBloc: add AuthLegacyMigrationRequested event with non-critical
  step isolation so metadata/asset failures don't block login
- WalletsRepository: legacy wallet detection, seed decryption, name
  sanitisation, native-secret extraction, and post-migration cleanup
- New PreparedLegacyMigration model and LegacyAppSettingsMigrationService
  for reading legacy shared-preference data
- IguanaWalletsManager: intercept legacy wallet sign-in and present the
  LegacyMigrationCompatibilityDialog before dispatching migration
- SecuritySettings: add LegacyMigrationCleanupPlate for incomplete
  native cleanup visibility
- zHTLC config dialog: expose "recent transactions" sync policy option
  consumed during migration
- Translation strings for all new migration UI copy

* feat(fiat): persist default fiat currency preference across sessions

Store the user's selected fiat currency in local storage so it survives
bloc resets and app restarts. On initialisation the bloc hydrates from
storage; on selection it writes through immediately.

- Add fiat_default_preference.dart with load/persist helpers
- FiatFormBloc: hydrate on construction via new event, write on select
- FiatFormState.initial: accept optional pre-selected fiat currency
- Resolve selected fiat against the loaded fiat list to avoid stale refs

* chore(android): migrate MainActivity to com.gleec.gleecdex package

Move the Android MainActivity from the old com.komodoplatform.atomicdex
package to com.gleec.gleecdex to match the updated application ID.

* chore(ios): update bundle identifier to com.GleecDEX.wallet

Align the iOS PRODUCT_BUNDLE_IDENTIFIER across Debug, Profile, and
Release configurations to the new com.GleecDEX.wallet identifier.

* test: add unit tests for legacy migration and fiat preference

Cover the new migration and fiat-preference features:
- LegacyAppSettingsMigrationService parsing and edge cases
- FiatDefaultPreference load/persist round-trip
- Legacy native wallet migration integration scenarios
- LegacyMigrationCleanupPlate widget rendering
- LegacyMigrationCompatibilityDialog validation and flow

* chore(sdk): roll SDK to 26a077b

* feat(wallet): add legacy wallet migration flow

- move legacy migration handling into the parent app auth and
  wallet manager flows, including already-migrated wallet routing
- finalize restore and migration metadata in the background so
  login can complete without blocking on non-critical steps

* fix(migration): address PR review findings for legacy migration safety

P1: Make legacy linkage metadata write a hard requirement by removing
the try-catch that silently swallowed setMigratedLegacySource failures.
Failures now propagate to the outer catch, aborting the migration and
preventing the user from being logged into a wallet with no source-link
metadata (which would allow duplicate migrations).

P2: Fix cleanup status to reflect the actual outcome regardless of
wallet type. Previously, non-native legacy wallets always got 'complete'
status even on partial cleanup failure, suppressing follow-up handling.

* fix(sdk): replace dargon2_flutter with pointycastle for WASM compatibility

dargon2_flutter's web plugin uses JS interop APIs incompatible with
Flutter WASM builds. Replaced with pointycastle's pure-Dart Argon2
implementation which works on all platforms. Removes 7 transitive
dargon2 packages from the dependency tree.

* chore(sdk): roll SDK to include dargon2 -> pointycastle migration

* fix(auth): address PR review for watcher suppression and migration rollback

P2: Allow metadata-enriched watcher updates through after optimistic
login. The early return in _onAuthChanged was suppressing all same-wallet
updates, including post-finalizer metadata changes (cleanup status,
activated coins). Now only suppresses when incoming metadata has no new
or changed values vs the current optimistic state.

P1: Roll back SDK session when pre-login migration metadata write fails.
After auth.register succeeds but linkage metadata write throws, sign out
the freshly registered user before emitting error state to avoid leaving
SDK auth and UI auth out of sync.

* fix(auth): address PR review findings for cleanup race and SDK probe

Replace timeout-wrapped cleanup-then-persist sequence in legacy
migration with inline try-catch so the persisted cleanup status
always reflects the actual outcome instead of racing against a
5-second Future.timeout that cannot cancel the underlying I/O.

Roll SDK submodule to af9c5b7 which hardens the RPC readiness
probe against transient transport errors and adds platform guards
to readWalletSecrets.
* chore(release): prepare 0.9.5

* chore(release): align Dart SDK floor

* fix: sync Apple pod dependencies
@github-actions
Copy link
Copy Markdown

github-actions Bot commented May 5, 2026

Visit the preview URL for this PR (updated for commit 523407e):

https://walletrc--pull-3487-merge-9kazl2dq.web.app

(expires Tue, 12 May 2026 20:52:51 GMT)

🔥 via Firebase Hosting GitHub Action 🌎

Sign: f66a4ff03faa546f12f0ae5a841bd9eff2714dcc

@CharlVS CharlVS merged commit 78b1d05 into main May 5, 2026
13 of 15 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants