Repository navigation
Report precise wallet recovery checks and Keychain failures - #478
Draft
takemiyamakoto wants to merge 2 commits into
Draft
takemiyamakoto wants to merge 2 commits into
takemiyamakoto wants to merge 2 commits into
Conversation
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.
The recovery screen could show an old generic marker while a retry was failing at a more specific credential check. It now presents the latest verification phase and cause, a plain-language explanation, attempt time, and fixed-code observations for the existing scoped/global credential lookups, fallback decision, account count/schema, and failed Keychain operation with OSStatus. Unattempted checks remain explicit; copied details exclude wallet identifiers, key values, derivation strings, and arbitrary error text, and older diagnostic records still decode.
This changes diagnostics only: credential queries, cryptography, migration/signing decisions, and durable recovery-marker rules are preserved. The report distinguishes unavailable accessible signing material from an iOS read error and does not establish when credentials became unavailable or prove recovery of the reporting phone.
Validation: all 271 canonical Release wallet tests passed with zero failures or skips and identical before/after hashes for all 6,085 tracked files. Seven focused diagnostic/credential/UI tests, eight publication-contract tests, and contract lint also passed. The exact six-file tested runtime patch is integrated into the primary checkout with its existing index and unrelated changes preserved. Native build 2026091302 archived and passed signature/runtime checks; the actual GUI-prepared external IPA passed verification of its existing profile/certificate, entitlements, all ten unsigned native images, and non-signing resources. Build 2026091302 installed in place and launched after the existing Documents and Library contents were backed up and verified; the retained account count, address, public key, crypto type, and network type were unchanged afterward. Its fresh on-device report correctly identifies unavailable accessible signing material with no Keychain system-read error; restoring the original credentials still requires the matching phrase to be entered locally, and wallet recovery is not claimed. Apple accepted build 2026091302 at
2026-09-13T12:49:30Z, delivery714ddbbf-dff0-493c-bbbb-236025a5601e, with no upload errors and nine missing-dSYM “Upload Symbols Failed” warnings for bundled frameworks. The warning list and original logs are retained; processing and assignment to the existing public-link tester groups remain unverified.Runtime
b3a4a41dc740506a16823d7eca1a57ce082ae469; publication443b750041f8595996876c663b229e7ac3db6804. This follows #477 and supersedes its unuploaded build 2026091301 as the release candidate.