Skip to content

fix(protocol): preserve shared subscriptions#76

Closed
pgherveou wants to merge 1 commit into
codex/bulletin-preimage-in-core-dotlifrom
codex/dotli-protocol-broker-subscriptions
Closed

fix(protocol): preserve shared subscriptions#76
pgherveou wants to merge 1 commit into
codex/bulletin-preimage-in-core-dotlifrom
codex/dotli-protocol-broker-subscriptions

Conversation

@pgherveou

@pgherveou pgherveou commented Jul 15, 2026

Copy link
Copy Markdown
Contributor

Summary

Harden the protocol iframe chain broker independently of the Rust host migration:

  • ref-count upstream subscription tokens shared by multiple local sessions
  • release the upstream token only after its final local owner disconnects or unsubscribes
  • track transactionWatch_v1_submitAndWatch tokens and release them with transactionWatch_v1_unwatch
  • buffer bounded subscription events that arrive before their subscribe response

Base

Stacked on #70. The Rust core host callback connects directly to dotli's physical chain providers, so this broker-only transport hardening is intentionally excluded from the architecture PR.

Verification

  • bun run test in packages/protocol (37 passed)
  • bun run lint in packages/protocol
  • bun run typecheck in packages/protocol
  • strict make e2e-dotli with build: link local TrUAPI packages #73 local links and the Docker signer (44 passed, 0 failed)

@github-actions

Copy link
Copy Markdown
Contributor

⚡ Performance Report

⚠️ No baseline found on main. This PR's results are recorded but cannot be compared.
Merge to main to establish a baseline.

@github-actions

github-actions Bot commented Jul 15, 2026

Copy link
Copy Markdown
Contributor

Bundle Size Report

Chunks over 500 KB:

File Raw Brotli Gzip
host/assets/paseo.smol-DboPaEh1.json 1.84 MB 941.7 KB 1019.4 KB
host/assets/paseo-people-next.smol.json 3.36 MB 1.68 MB 1.82 MB
host/assets/previewnet.smol.json 1.78 MB 137.2 KB 333.5 KB
host/assets/smoldot.js 2.95 MB 2.20 MB 2.21 MB
host/assets/smoldot_worker.js 2.92 MB 2.19 MB 2.20 MB
host/assets/wasm/web/truapi_server_bg.wasm 1.98 MB 619.4 KB 815.5 KB
Total 15.74 MB (+5.09 MB) 8.03 MB (+2.86 MB) (-49%) 8.68 MB (+3.07 MB)
All files
File Raw Brotli Gzip
host/.well-known/apple-app-site-association 738 B 738 B 738 B
host/.well-known/assetlinks.json 1.3 KB 317 B 391 B
host/assets/bridge.js 51.6 KB (+46.2 KB) 14.4 KB (+12.5 KB) 16.1 KB (+14.0 KB)
host/assets/browser.js 22.9 KB (-10 B) 7.6 KB (+9 B) 8.6 KB (-10 B)
host/assets/client.js 100.1 KB (+7.1 KB) 29.4 KB (+2.1 KB) 32.4 KB (+2.3 KB)
host/assets/dist.js 30.3 KB (+5.5 KB) 10.5 KB (+2.7 KB) 11.7 KB (+3.1 KB)
host/assets/dotli-debug-bus.js 710 B (+215 B) 710 B (+215 B) 710 B (+215 B)
host/assets/get-sync-provider.js 2.8 KB 1.1 KB 1.2 KB
host/assets/hex.js 154 B 154 B 154 B
host/assets/index.css 44.8 KB (-3.1 KB) 7.1 KB (-382 B) 7.9 KB (-423 B)
host/assets/index.js 150.3 KB (+43.7 KB) 41.5 KB (+12.4 KB) 48.7 KB (+14.8 KB)
host/assets/manifest.js 22.5 KB (-130 B) 7.2 KB (-101 B) 7.9 KB (-63 B)
host/assets/panel.js 72.6 KB (-12.2 KB) 19.7 KB (-3.3 KB) 22.3 KB (-4.0 KB)
host/assets/paseo.smol-DboPaEh1.json 1.84 MB 941.7 KB 1019.4 KB
host/assets/paseo-people-next.smol.json 3.36 MB 1.68 MB 1.82 MB
host/assets/paseo.smol.json 19.7 KB 4.8 KB 5.4 KB
host/assets/previewnet.smol.json 1.78 MB 137.2 KB 333.5 KB
host/assets/resolve.js 128 B (-24 B) 128 B (-24 B) 128 B (-24 B)
host/assets/rpc-resolve.js 2.4 KB (-71 B) 1.0 KB (-28 B) 1.1 KB (-33 B)
host/assets/shared-mode.js 1.8 KB (-82 B) 751 B (-42 B) 854 B (-43 B)
host/assets/smoldot.js 2.95 MB 2.20 MB 2.21 MB
host/assets/smoldot_worker.js 2.92 MB 2.19 MB 2.20 MB
host/assets/src.js 1.8 KB (-119 B) 850 B (-40 B) 944 B (-55 B)
host/assets/styles.css 15.1 KB 3.2 KB 3.8 KB
host/assets/wasm/web/README.md 10.9 KB 10.9 KB 10.9 KB
host/assets/wasm/web/package.json 371 B 371 B 371 B
host/assets/wasm/web/truapi_server.d.ts 6.9 KB 6.9 KB 6.9 KB
host/assets/wasm/web/truapi_server.js 35.6 KB 6.2 KB 7.2 KB
host/assets/wasm/web/truapi_server_bg.wasm 1.98 MB 619.4 KB 815.5 KB
host/assets/wasm/web/truapi_server_bg.wasm.d.ts 2.5 KB 2.5 KB 2.5 KB
host/assets/web.js 13.2 KB 3.5 KB 4.0 KB
host/assets/worker-runtime.js 6.3 KB 1.6 KB 1.8 KB
host/assets/worker-runtime.js 106 B 106 B 106 B
host/assets/ws.js 23.1 KB (-2.8 KB) 7.5 KB (-862 B) 8.2 KB (-921 B)
host/dotli.png 11.5 KB 11.5 KB 11.5 KB
host/favicon.svg 1.8 KB 1.8 KB 1.8 KB
host/host-sw.js 2.7 KB (-110 B) 1.1 KB (-14 B) 1.2 KB (-13 B)
host/icon-192.png 12.5 KB 12.5 KB 12.5 KB
host/icon-512.png 42.8 KB 42.8 KB 42.8 KB
host/index.html 19.9 KB (-320 B) 4.4 KB (-71 B) 5.4 KB (-71 B)
host/manifest.webmanifest 441 B 441 B 441 B
host/workbox.js 14.8 KB 4.6 KB 5.1 KB
sandbox/app-sw.js 9.6 KB 3.1 KB (+6 B) 3.5 KB (+3 B)
sandbox/assets/bitswap-bridge.js 840 B 840 B 840 B
sandbox/assets/fetch.js 3.4 KB 1.2 KB 1.4 KB
sandbox/assets/index.css 44.8 KB (-3.1 KB) 7.1 KB (-382 B) 7.9 KB (-423 B)
sandbox/assets/index.js 118.0 KB 33.7 KB (-34 B) 39.6 KB (+3 B)
sandbox/favicon.svg 1.8 KB 1.8 KB 1.8 KB
sandbox/index.html 1.7 KB 582 B 787 B
Total 15.74 MB (+5.09 MB) 8.03 MB (+2.86 MB) (-49%) 8.68 MB (+3.07 MB)

Commit: 80ad087

@pgherveou pgherveou force-pushed the codex/dotli-protocol-broker-subscriptions branch from 25ade14 to b3591b7 Compare July 15, 2026 09:26
Ref-count upstream tokens shared by local sessions and buffer subscription events that arrive before their token response. Keep this broker transport hardening separate from the Rust host migration.
@pgherveou pgherveou force-pushed the codex/dotli-protocol-broker-subscriptions branch from b3591b7 to ec4e708 Compare July 15, 2026 12:12
@pgherveou

Copy link
Copy Markdown
Contributor Author

Consolidated into #77 together with the hardening extracted from #70; this change is preserved there as its own commit.

@pgherveou pgherveou closed this Jul 15, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant