Rust-core port follow-ups - #77
Conversation
Replace the Nova host-container, auth, and signing path with the worker-backed Rust core. Keep dotli responsible only for browser policy, persistence, UI, and physical chain transports.
Notification grants do not alter iframe Permissions Policy. Reloading disposed the in-flight Rust request before its response reached the product.
The pending-message flush drops send failures silently, matching the pre-port behavior. Surfacing them as JSON-RPC errors moves to a follow-up PR with test coverage.
…follow-up
Keep @polkadot-api/signer and @polkadot-labs/hdkd{,-helpers} declared
(unused since before the port) and limit rpc-chain tests to the new
core gateway provider surface. Removing the dead deps and adding
coverage for pre-existing chain checks moves to a follow-up PR.
Keep the base panel top offset and suffix-based terminator matching (minus the removed host-papp events). The offset correction, the exact-match terminator set, and the @dotli/config dependency declaration move to a follow-up PR.
Prompts always reach the modal, matching the pre-port behavior. The sliding-window limiter returns in a follow-up PR together with the denied-path semantics and a test that trips the window.
AllowanceKeys persist as plain hex through the same path as every other core storage key. The at-rest cipher moves to a follow-up PR where the scheme (per-write nonce, plain-hex read fallback) can get a focused security review.
The bridge emits only the first_inbound/first_outbound lifecycle events. The per-frame TrUAPI tap that feeds the debug panel timeline returns in a follow-up PR; the panel's truapi event handling stays in place and receives no events until then.
… follow-up Login failures fall back to the raw reason except for the base OriginPersonProviderError mapping, and the permissions popover renders last-write-wins without a staleness guard or unavailable-state hint. The failure-message pack and popover hardening move to a follow-up PR.
…i-host 0.1.0 The published packages replace the temporary personal-scope npm aliases used while the port was in review.
⚡ Performance Report
|
Bundle Size ReportChunks over 500 KB:
All files
Commit: d5e26bc |
|
Only issues that I saw when testing on https://host-playground.dotli.dev on
Ofc allocating all resources would fail the bulletin step: Let me know if this will be handled elsewhere. |
TarikGul
left a comment
There was a problem hiding this comment.
Compiled my review with claude here: https://gist.github.com/TarikGul/36916b1a6c2a2b4c2a7f989b22ac9ead
Includes reproducibles, and examples.
|
Review the following changes in direct dependencies. Learn more about Socket for GitHub.
|
|
@leonardocustodio This PR resolves the issue regarding bulletin allowance with smoldot-direct, the fix was on the core so here we just consume the new truapi release. The change is already deployed on dotli.dev so feel free to verify the fix. Should also improve some stability issues with smoldot. |
#70 (Switch to Rust core) and #77 (Rust-core port follow-ups) landed on main in between. #70 was squash-merged, so this branch and main carried the same port content under different commits, and every file the port added conflicted add/add. Resolution: main is authoritative for everything except the four commits that are unique to this branch (aa229af, 72bda6c, 99549e2, ae4112b). Those were reapplied on top of main's tree, so the branch diff against main is now the chain-ownership change alone. Conflicts of substance: - broker.ts: kept #77's ref-counted token release (loop over every local token sharing the upstream token) and its early-subscription buffering, and added this branch's terminal `transactionWatch_v1_watchEvent` events to the release condition. - client.ts: took the new `createPapiChainProvider` adapter. #77's only change here added JSON-RPC error responses when a queued `chainSend` flush failed; that code path is deleted, and the adapter's `failOutstanding` covers the same case for every outstanding request, not just flushed ones. - bulletin-bitswap.ts: kept #77's RPC-gateway warning, dropped its `isRemoteChainSupported` branch. Bulletin is always in the supported set, so that branch was dead; unsupported chains now surface as `UNSUPPORTED_CHAIN` from the protocol runtime at connect time. - resolver/tests/rpc-chain.test.ts: kept #77's People and unknown-genesis cases, renamed to `isRpcUpstreamSupported` / `createRpcUpstreamProvider`. - network.ts: refreshed two comments that still described the Rust-core callback as the thing choosing chains.
… input validation paritytech#122) into commons-0.9.9 # Conflicts: # packages/resolver/tests/chains.test.ts
Summary
Follow-ups to the Rust-core port (#70, merged). Two kinds of work: features that were split out of that PR to keep its review focused, and fixes for what the port review and a later audit turned up.
What's new
What's fixed
@parity/truapi-hostto 0.2.1, which fixes the allowance-propagation race that made a bulletin allocation come backNotAvailable(and preimage submit fail) in smoldot-direct. The dotli side needed no change, the fix is in the core.remove-legacy-novafor one-grep removal once products migrate.chainSendflush failures come back as JSON-RPC errors instead of hanging.locationparam is gone.