All checks were successful
ci / gate (push) Successful in 12m43s
No scheme choice anywhere. Create and restore no longer ask for ML-DSA-65 or ML-DSA-87, and the commands behind them take no scheme. A wallet that carries a phrase opens with an account under each scheme at its conventional path, ML-DSA-65 first and ML-DSA-87 labelled legacy, plus the file's own keypair when it sits at another path, de-duplicated by account id. A raw key such as crystal_alice keeps its one account. The default follows Quantus's own clients: quantus-cli's --scheme default, the mobile SDK's DilithiumSchemeExtension.current and the extension's DEFAULT_TYPE are all ML-DSA-65, and the extension already shows both accounts with no key type to choose. The keystore file stays quantus-cli's and records the ML-DSA-65 keypair; the rest is derived on every open. Any number of wallets open at once. The session holds a list of open wallets, each with its accounts and seed; unlocking adds one, locking takes a wallet name or locks all, signing finds the account in whichever wallet holds it, and one idle clock locks them all. Session status lists the wallets and a flat account list where every account names its wallet. The sidebar lists open wallets with a lock each, an "open another" page and "lock all"; accounts groups rows by wallet; send, receive and history pick from every account of every open wallet, grouped by wallet and labelled by scheme; the wormhole panel is per wallet. Driven on the dev node: crystal_alice open, the public dev phrase restored beside it with no scheme field, and its two accounts appeared, qzq29m9… (ML-DSA-65) and qzjrYTUnn… (ML-DSA-87, legacy), the addresses quantus-cli lists for that phrase. 5 DEV from crystal_alice to the legacy account, 2 DEV from it to its ML-DSA-65 sibling, both in blocks. Locking devphrase left crystal_alice signing while a transfer from devphrase's account was refused; lock all returned to the lock screen. Unit tests cover both-schemes derivation for every CLI fixture, side-by-side wallets, per-wallet lock and the shared idle rule; the secret-leak test passes with both signers held. Closes #65 Closes #66 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014ftBXYuba8ARhQeF74oUgW