Repository navigation
Conversation
pgherveou
added this pull request to stack #1304
October 7, 2026 14:53
Contributor
Bundle size reportCompared with
WebAssembly modules
Changed files (4)
Commit: ce2936b |
Contributor
|
CI Status: 24 required jobs green, 21 passed and 3 skipped by path filter. All job results
Signing credentials: failure as of 2026-10-15, a release may fail Commit |
pgherveou
force-pushed
the
refactor/account-holder-wallet
branch
from
October 12, 2026 10:25
d67c26b to
a46a0f1
Compare
pgherveou
force-pushed
the
refactor/account-holder-wallet
branch
from
October 14, 2026 22:33
1ef0662 to
ce70d75
Compare
Contributor
|
This pull request touches an app, which is not built by default. Add a label for each build you want:
Each starts as soon as it is added and follows the branch from then on. |
This was referenced Oct 14, 2026
pgherveou
force-pushed
the
refactor/account-holder-wallet
branch
2 times, most recently
from
October 15, 2026 09:35
0b41a0b to
763371e
Compare
pgherveou
force-pushed
the
refactor/account-holder-wallet
branch
from
October 15, 2026 21:34
763371e to
ce2936b
Compare
This branch has not been deployed
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.
This draft holds the account-holder work as thirteen commits on main. Each commit builds and passes the Rust workspace checks on its own and is meant to become its own pull request, landed in order.
refactor(truapi): split ProductRuntimeHost into ProductConnection and HostSession(in review as refactor(truapi): split ProductRuntimeHost into ProductConnection and HostSession #1440): connection state (product, adapters, permissions, channels, chain connection) lives inProductConnection, the product's account operations inProductAccountswith the product already bound, and login, logout and identity inHostSession. No behavior change.refactor(truapi): building blocks for account holders:RegistryUpdatefor ring-VRF registry writes,TestResourceControls, and a narrowerproduct_manifest. An unchanged registry snapshot is no longer rewritten.fix(truapi)!: account fixes ahead of account holders: a paired VRF request never reuses a local AutoSigning grant, a refused local allocation returnsRejectedoutcomes as RFC 0010 defines, and Bulletin checks the authorization size before submitting.refactor(truapi): SSO session and responder services:SsoRequestServiceowns the paired session and its outbound channel, andSsoResponderServicethe phone's handshake, serve loop and duplicate detection. No behavior change.feat(truapi): one ProductConsent for account access: account-access decisions, review-skip rules, Allow once and one prompt at a time live in one place per runtime.refactor(truapi): one HostGrantStore for kept grants: one store for kept grants on both hosts. A product reset bumps only the grant revision, so other products' work continues.refactor(truapi): move wallet code into its account-holder modules: the phone's wallet code moves unchanged intosigning_host/wallet_account_holder/, still asimpl SigningHost, so the next commit shows its changes as edits. No behavior change.refactor(truapi): WalletAccountHolder owns the active wallet: the wallet's lifecycle, keys and renewal live inWalletAccountHolder, and only itswith_keysreads the root entropy, checking the wallet activation each time. VRF and transaction signing check the session again after the review and the chain metadata fetch. A wallet change mid-renewal stops the pass and reports the remaining targets as failed.refactor(truapi)!: one SSO service per paired peer: each paired browser gets its ownSsoAccountHolderService, bound to the wallet activation that accepted it. Native wallets open it withopenSsoService, which replaceshandleSsoRequest, and the iOS app opens one per paired browser.refactor(truapi): RemoteAccountHolder for the paired host: the paired host's account holder turns each wallet call into an SSO request, and the paired session holds grant writes back while it changes.feat(truapi): renew kept Statement Store keys before submitting: a kept key is reused across UTC periods, and every submit signed with it first runs the renewal check against the chain on a signing host.refactor(truapi)!: HostAccounts replaces ProductAuthority:HostAccounts<H>over anAccountHolderconfirms requests and keeps grants on both hosts. Bulletin asks for an authorization increase before submitting instead of retrying after a rejection.feat(truapi)!: persist native allowance keys: native allowance keys survive restarts in protected platform storage, and iOS moves secret core values saved before this version into the Keychain.Design: Host account holder architecture.
Validation per commit: Rust workspace build, fmt, clippy
-D warnings, wasm32 checks, rustdoc and tests (locally only the macOS-onlymanaged_scripts_use_their_project_directory_when_selected_explicitlyfails). UniFFI bindings regenerate, the JS host tests pass and the iOS app builds for commit 13; the iOS app builds and its SSO tests pass for commit 9. Android checks did not run locally.Supersedes #1303, #1305 and #1306.