Repository navigation
Conversation
pgherveou
added this pull request to stack #1304
October 7, 2026 14:53
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. |
Contributor
Bundle size reportCompared with
WebAssembly modules
Changed files (1)
Commit: 6bd6245 |
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-13, a release may fail Commit |
pgherveou
force-pushed
the
refactor/account-holder-sso
branch
from
October 12, 2026 10:25
340cc4e to
b2c9552
Compare
This was referenced Oct 12, 2026
pgherveou
force-pushed
the
refactor/account-holder-sso
branch
from
October 12, 2026 13:45
b2c9552 to
6816dde
Compare
Mechanical only: file renames, items moved between files and impl blocks, and handlers routed through ProductConnection. Does not build on its own; the next commit completes it.
pgherveou
force-pushed
the
refactor/account-holder-sso
branch
from
October 14, 2026 10:37
6bd6245 to
eaadd22
Compare
Collaborator
Author
|
Collapsed into #1302, which carries this work as separate commits. The branch stays as it is, and a backup is in backup/account-holder-*-2026-10-14-collapse. |
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.
Product account operations go through
HostAccounts<H>over anAccountHolderon both host roles.ProductAuthorityis removed.Before: each role object keeps its own grants, wallet access and prompts behind
ProductAuthority.After: one
HostAccounts<H>implementation; each role picks its account holderH.Paired request: reaches the phone's wallet through its SSO services, without the phone's
HostAccounts.Wallet and consent:
WalletAccountHolderowns the wallet state. Only its privatewith_keysreads the root entropy, checking the wallet activation under the same lock. ItsPersonhoodSignersigns insidewith_keys, so personhood entropy never leaves it.ProductConsentdecides account access and which reviews a product may skip, runs one permission prompt at a time, and keeps Allow once until restart, lock, wallet switch or a reset of that product.One host implementation:
HostAccounts<H>replaces bothProductAuthorityimplementations: product access, confirmations, grant acquisition and retention, delegated signing and provider selection exist once. Its kept grants live in a privateHostGrantStore.ProductRuntimeHost<H>splits into aProductConnection(adapters, permissions, channels) and aHostSession(login, logout, identity), and passes account work toHostAccounts. Product code passes itsProductContextand never builds a caller.//product//{id}key, which the host keeps and signs with.PairingHostandSigningHostbecome role roots. Native allowance keys last one wallet activation (GrantKeeping::Wallet); #1305 persists them.SSO:
RemoteAccountHolderis the paired host's account holder: it turns each wallet call into an SSO request and prompts nothing itself.SsoRequestServiceowns the paired session (login, selection, persistence, cross-tab sync, cleanup) and the outbound channel, and reports session changes to theHostAccountsthat keeps the paired grants.SsoResponderServiceowns the phone's side: pairing handshake, serve loop and duplicate detection on the Rust transport.SsoAccountHolderService, bound to the wallet activation that accepted it, with its own cancel list. It confirms each signing, transaction, VRF and allocation request, then calls the wallet directly and never uses the phone's grants.openSsoService; the host runtime no longer hashandleSsoRequest. The iOS SSO coordinator is updated in this PR.