Repository navigation
feat(ui): use a Polkadot App account locally from the debug panel - #362
Merged
Merged
Conversation
The wallet read gets a 5 s budget, failure reasons are a closed set, a failed identity save is reported once as identity-save, and a failed switch back shows an inline error.
…-host does The signing host in @parity/truapi-host 0.24.0 has no permission authorization methods, so every product mount threw and the app showed "Domain can't be reached". A local wallet core now keeps the statuses in memory for the page. Remove signing-host-permissions.ts when the upstream release lands.
Resolution, Archive, Diagnostics and Wallet are not about TrUAPI calls, so they become top-level tabs beside a TrUAPI tab that holds the event list, timeline, filters and detail pane. Lists, buttons, tabs, filters and the detail pane's generic parts move into shared components.
Contributor
Bundle Size ReportEager path (module entry + modulepreloaded chunks):
Chunks over 500 KB:
All files
Commit: 99a60a2 |
Contributor
⚡ Performance ReportCold StartOverall: 🔴 regressed | p50: 7.72s → 11.74s (+52.1%) | p95: 8.52s → 12.75s (+49.6%) | Mann-Whitney: z=4.40 ✅ significant Phase breakdown
Warm StartOverall: 🔴 regressed | p50: 427ms → 532ms (+24.6%) | p95: 528ms → 558ms (+5.7%) | Mann-Whitney: z=3.81 ✅ significant Phase breakdown
Lukewarm Start (different site, same session)Overall: 🔴 regressed | p50: 10.22s → 14.85s (+45.2%) | p95: 10.66s → 17.31s (+62.4%) | Mann-Whitney: z=4.40 ✅ significant Phase breakdown
Commit: 99a60a2 | Outliers (>2x best) discarded before stats |
Views now compose shared parts instead of their own styles: Pane, Stack, Columns, Inline, Bar, Note, EmptyState, CodeBlock, CopyValue, TextArea, ErrorText, LinkButton, Resizer and the event parts (Timestamp, DirectionArrow, MethodTag, LayerBadge). The resizers split into the generic Resizer and the panel's edge and splitter integrations. The panel reopens on the last picked tab, kept in localStorage like the dock. A local wallet offers Replace, which takes another phrase, and Forget, which goes back to Polkadot App, in place of a single "Use Polkadot App".
… test gets room on CI Storybook now registers the truapi signing worker plugin, as the host does, so its build resolves the local wallet's worker import. Stack reads its form handler inside the event handler, which silences a Solid untracked-read warning.
replghost
added a commit
that referenced
this pull request
Oct 12, 2026
Brings the restacked PolkaVM runtime (#185 at 483646a, main with the #362 local signer, old browser test wallet removed) under the JamPeerTransport layer. - bridge.ts: keep the JAM WebTransport-unavailable notice import; the sandbox checker panel is now loaded lazily by the parent, so its eager import is dropped. - README: take the parent's local-truapi paragraph and SDK provenance text; the JAM permission and transport documentation is unchanged. - vendor: re-vendor host-rust-core #1010 at its recorded revision c2908ec3 with the standard upstream build-wasm.mjs (web: runtime; testing: wasm-signing-host + test-host), so main's signing worker has wasm/testing. @parity/truapi rebuilt byte-identical (archive 81f2c412, client d9ece616). - package-lock.json: parent's lock regenerated with the sandbox's vendored @parity/truapi dependency.
replghost
added a commit
that referenced
this pull request
Oct 12, 2026
Merges feat/pvm-wasm 483646a (main with #362's local signer, the reverted old wallet dropped). - Re-vendor host-rust-core #709 at a0711ac2 with upstream's standard build-wasm.mjs: pairing-only wasm/web (runtime) plus wasm/testing (wasm-signing-host, test-host) for #362's signing worker. JS dist is byte-identical to the previous vendor. - Chat's custody transport joins the local-wallet request methods served by the host frame; its old shared-wallet revision fence goes with the old wallet. - Old-wallet-bound wiring (custody lease and contacts in page-core/SessionStore, wallet-in-other-tab page) is dropped here and re-expressed on #362 in the following commits. - The local signing core passes the Coinage instance for Chat payments.
replghost
added a commit
that referenced
this pull request
Oct 12, 2026
Native Chat's private slots (main purse, device records, file chunks, product index), its attachment sources and the contacts directory now sit beside #362's local signing core instead of the removed test wallet. Polkadot App sessions are unchanged: their Chat stays on the phone and these slots stay refused. - The host frame's custody lease is keyed by the local wallet record (a domain-separated SHA-256 of its entropy). Every operation rechecks the stored record, replacing the old shared-wallet revision fence, so forgetting or replacing the wallet ends the lease. - Custody's own Web Lock gives single-tab exclusivity: leases are per token, a replacement core of the same page queues behind its predecessor, and another tab is refused as busy after a bounded wait. Acquisition runs beside boot, so only Chat operations wait on it and a refused tab's other products keep working. - page-core creates the Chat host only for a local wallet core, shares custody storage and files across connections, scopes contact pickers per connection, binds contacts after activation and releases custody on dispose.
replghost
added a commit
that referenced
this pull request
Oct 12, 2026
Merges the restacked #291 (feat/jam-peer-transport-on-seity 5b791ae) into the Media integration layer. #291's new layers win (main's local wallet from #362, Chat custody under it, receiving revocation); the Media layer's own changes (5677871..e65c77c) are reapplied on top: - Media TURN: nginx route, private include and deploy-nginx key handling kept on #291's deploy-nginx; the receiving nginx step passes the TURN secrets and the TURN smoke follows it. The identity proxy #291 dropped is not resurrected here; it returns with the wallet layer. - Core storage compare-exchange and the permission refresh fan-out are ported onto #291's SessionStore (local option) and page core. Media connections and the notification host account follow the page core; the protocol frame's shared-auth slot locks and custody compareExchange are ported onto its flattened handlers. - Semantic conflict: #255's local-wallet Chat custody wrapper now implements the Media storage contract (compareExchangeCoreStorage through custody for Chat slots, the host store otherwise; coreStorageChanged passes through), with a unit test. - The old #238 wallet inspector and bridge-wallet.test.ts stay removed. - Vendor: #335's own #1217 vendor kept for this merge; rebuilt in a separate commit. - Docs: Media TURN and advertisement-lookup sections kept; #291's restack wording otherwise.
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.
Signing and accounts are the only difference between a pairing host and a signing host, so the debug panel's new Wallet tab swaps the host role: paste the Polkadot App recovery phrase, the page reloads, and every app on the domain boots its core as a signing host that signs without the phone. The entropy is stored encrypted under a non-extractable key in the protocol frame on
host.<domain>, the username is read from People, "Replace" takes another phrase, and "Forget" (or logging out) switches back. The signing host comes from the published@parity/truapi-hosttesting bundle through a small Vite plugin, so normal users never download it.Also in this PR:
signing-host-permissions.tskeeps them in memory until the upstream fix, fix(truapi-host): serve the host surface from a signing worker host trinity-user-agents#1358, ships in a release, then it is deleted.Testing: