fix(ios): consolidate migration-safe production release - #1303
Open
takemiyamakoto wants to merge 30 commits into
Open
fix(ios): consolidate migration-safe production release#1303takemiyamakoto wants to merge 30 commits into
takemiyamakoto wants to merge 30 commits into
Conversation
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
Signed-off-by: Makoto Takemiya <takemiya@soramitsu.co.jp>
Signed-off-by: Makoto Takemiya <takemiya@soramitsu.co.jp>
Pin the reviewed v7.0.0 action commit. Its bundled wrapper uses the live codecovsecops Keybase account after the v5.5.2 codecovsecurity URL began returning HTTP 404. Extend the fail-closed contract with an adversarial regression for the retired action. Signed-off-by: Makoto Takemiya <takemiya@soramitsu.co.jp>
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## develop #1303 +/- ##
============================================
+ Coverage 31.43% 57.06% +25.63%
============================================
Files 462 170 -292
Lines 19656 73273 +53617
============================================
+ Hits 6179 41814 +35635
- Misses 13477 31459 +17982
🚀 New features to boost your workflow:
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Consolidates the reviewed transaction, migration-crash, universal-wallet, TON, Iroha, signing, and CI hardening into one production candidate. The Core Data boundary registers a bounded secure fail-closed transformer before startup, distinguishes corrupt persisted archives from legitimate nil, and lets existing migration sanitizers durably repair affected arrays without changing model hashes or weakening tests.
Current immutable candidate:
2e45e55dc03ad904598e730cfb5994fb5c1072dc2a07bae502b5b2d232856d53182147001baa0b1c0fd6fd2f0a0eafa8e4e6b4d84678b985d7633467The first hosted consolidated run exposed two real
ChainRegistryTestsobserver-registration races. Parent0fd6fd2f0a0eafa8e4e6b4d84678b985d7633467replaced that ambiguous Core Data fixture with an isolated in-memory repository plus a condition-bound observable, retained the real registry/connection-pool assertions, and passed 100/100 repeated executions.A subsequent complete local run found a second real compatibility defect: Foundation's
JSONEncoder.sortedKeysordersquotedFeeNanotonsandquoteEndpointOrigindifferently across supported OS versions. The same test binary produced legacy SHA-256b3d3d3d094dd14e4990e20f2ae569af11c02c50d6d9269d773ff591d1cda4500on iOS 17.2 and current SHA-2563238980e4f69c2fdd20fa2666a713771b4bec2ee4154255f154f827679a05067on iOS 26.2. That could make a persisted signed-bearer journal fail closed after an OS upgrade.This successor removes runtime-dependent serialization. New records use an explicit UTF-8 byte comparator and deterministic JSON escaping. Decode accepts exactly the current canonical form or the one observed iOS 17 legacy ordering, then still reconstructs and validates every quote, BOC, address, message hash, and Ed25519 signature. Unknown fields, duplicate/noncanonical encodings, arbitrary key permutations, cross-sender records, and corrupt bearer material remain rejected.
Exact verification completed locally:
The prior full local run was 1000/1001 solely because it exposed this OS-dependent journal hash. A complete exact-successor rerun and hosted checks are in progress and are not pre-claimed here.
Earlier verification retained by this successor includes an optimized Release suite (412/412), focused corrupt-archive and migration suite (20/20), Core Data gate (6 positive + 47 adversarial), simulator rehearsal (2 positive + 39 adversarial), TestFlight publication audit (1 positive + 69 adversarial), and signing/entitlements/project-structure/TODO/branch gates.
The App-Store-signed
4.2.0 (2026.7.28)archive is bound to ancestor57002dfb474e52df223fa07be476a15990e8fccb; it predates this production journal fix and is superseded. A new exact signed archive, external TestFlight upload, processing, public-group assignment, and Apple-delivered physical-device upgrade evidence remain separate release gates and are not claimed by this PR.