Swith to Rust core#70
Open
pgherveou wants to merge 16 commits into
Open
Conversation
Contributor
Bundle Size ReportChunks over 500 KB:
All files
Commit: 926eca7 |
|
Review the following changes in direct dependencies. Learn more about Socket for GitHub.
|
Contributor
⚡ Performance Report
|
fca2d01 to
ede458e
Compare
This was referenced Jul 15, 2026
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.
ff8115e to
95b810c
Compare
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.
bun run link:truapi replaces the two installed TrUAPI npm packages with symlinks to a sibling TrUAPI checkout, and bun run unlink:truapi runs a forced frozen install to restore the declared packages. Package resolution is validated after linking so local E2E cannot silently exercise a stale npm build. The parent truapi repo's make e2e-dotli target depends on this script via make dotli-link.
getActiveGatewayChains and its doc comment match the pre-port source; only the core gateway set is new.
Contributor
|
❌ E2E Product suite failed on Failed tests:
Logs: https://github.com/paritytech/dotli-community/actions/runs/29425720555 |
Member
|
Seems unable to connect? https://host-playground.dotli.dev/?chainBackend=smoldot-direct |
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.
Port the dot.li web host to the shared TrUAPI Rust core
This supersedes #54 and keeps its Rust-runtime port while adding the Bulletin preimage path now owned by the core. dot.li moves off the
@novasamatech/host-apistack and onto the shared TrUAPI Rust core. Protocol logic previously maintained in TypeScript now lives once intruapi-server(Rust -> WASM); the web host becomes a byte transport plus typed platform callbacks.Architecture
A product iframe speaks TrUAPI over a
MessageChannel. The host forwards SCALE frames to a Web Worker runningtruapi-serverWASM without decoding the protocol. The core executes protocol logic and calls typedtruapi-platformcallbacks for browser capabilities.The same core is embedded by native hosts over UniFFI, keeping protocol behavior and wire formats aligned across platforms.
Changed surface
packages/auth, the old Nova container/statement-store adapters, allowance-signer bridge, wallet queue, and related@novasamatech/*dependencies.@parity/truapi-hostand@parity/truapi.Permission grants are core-owned state. The dot.li topbar admin screen projects them into browser-specific iframe permissions and reload behavior rather than maintaining a second protocol policy store.
Packages
This branch depends on the published
@parity/truapi@0.4.0and@parity/truapi-host@0.1.0.bun run link:truapiswaps them for symlinks to a sibling TrUAPI checkout (andunlink:truapirestores the published packages), so the parent truapi repo'smake e2e-dotliruns against this branch directly while a direct dotli checkout installs and tests the published packages.Scope
The primary PR contains only the Nova-stack removal, the typed Rust-runtime host architecture, the Bulletin preimage integration, and the permission-lifecycle behavior required to keep Rust callback requests alive. Everything else is consolidated in the stacked follow-up #77: preimage lookup retries, protocol-broker hardening, login-failure UX copy, permission-prompt rate limiting, allowance-key at-rest encryption, the per-frame wire debug tap, debug-panel fixes, resolver dependency hygiene, and chainSend flush error surfacing.
Deferred architecture work: SharedWorker topology, eliminating the per-CID
*.app.dot.lisandbox iframe, and moving content fetching into Rust behind thePreimageHostboundary.Left before merge
@parity/truapiand@parity/truapi-host, and depend on the published versions.Related
Verification
Primary branch:
bun install --frozen-lockfilebun run format:checkbunx --bun turbo run lint --forcebunx --bun turbo run typecheck --forcebunx --bun turbo run test --forcebunx --bun turbo run build:prod --forcebun auditmake e2e-dotlifrom the parent truapi checkout against this branch standalone: 42 success, 2 failed. The two failures (Preimage/lookup_subscribe,Preimage/submit) areAccount authority request timed out after 45sround-trips to the dev signer-bot and reproduce identically on the pre-slimming baseline, so they are environmental, not introduced by this branch.