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.
Local-first, dids, wasm + OPFS, flutter, iroh, dht #1148
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Uh oh!
There was an error while loading. Please reload this page.
Local-first, dids, wasm + OPFS, flutter, iroh, dht #1148
Changes from 1 commit
21050864e331ecc8cb9a2ebbffe8b42f69d120a0c27971be29bd9e24335c4bfd0432338590a6d648717d2dd47baa41933df86d61f867a59701ae7006e67dd65f260ca44b6d011f0c47eef541d351b7448b63c93807db29351042e3737f05572eb83e81e3eb940c51e96da5038043b49ef7c1cf9cc4e9c30eafe667999fd59df9800d43f9b9b783b9acd2fb9b05befe2227acce9998a0d218dc728ce3c036cdab0ef80b3f7fd5fbdc48aed6cca18338dc3d6fb5a68f103f528c63ef88f702a457598ad6a330034f826c499bec90714721b780c7bf3b27feb4672e04f02a6f4930b1754480a4901c2e3c5383c7bb9edcd22b69e93e33f11541fd31702b232aca834caaba68f5ffe482dde70fa1f6b116fbe89e8935b1a7ef82d90c6df8ec3e72a0aa17a08278cfad1ccfc12491b5d6b20cc5ffa7d13c84a9ac6f1d88b0bf559f98d706a89e857f19ee5ec61e110e750a355782b01a34e2b0453fbb755d73c95442f9366bd09f49c9f5e14fc694ed176c96844828faf503ef5be356a072fc7eddaeba551a555d9ee37abe0b1b4ebd3e48eb253efbceef2be85a7c8323d099a14d2c54d692b3081c977f248c77ab0bb3d4ffe853cddff43028c21cb3dbc680f1782a0d25836ae8dc07a28a23861158b811d58ff3018cf97cd7c62d24349545033384e660fe44aa33ff6a28015c203ef9808028584489759c2907cea4c39ad14f07f2d0317c7a1bef2886b9b6d68c6e21837f104b345a0a1c57661fc7cfe9aacc2f75d2bbcc245678c15ebf6b782d26926e29f1497af9b6971e5b68c14d7ae65d0388a28f80d1485ac5e33a346b173cd86c2d0e80d469fc5a7dda8c45aa218e9a9c3d1c4ae3db2bda4e2b4d5063b1e876fdead0db2683a25df80025d91c01da8a015e1397dcfb435b1d9c061e8a313d7f9abd930016e5d87ded7f2d0f74190f4af102f797905382dfa72d10b0d799eb1cf104f11c12c713fc78080ff6f6f47122dfb7fbd9380585cf23b447c3c431e53761b8960472714882e7b0e295505fc0c464a438d35a576fd97ceaffcfffbdbc55c5607fbc265401fa2964010427478ea205ce85297245532728ae22ea8b5fc276c33b8bb6b3c49a44352b96f304c80d2b971cec24a44fca39b9a2759e86b78a4b473b4fd025f24195291440504f6fe058bcc0ba5e9add3e5e83cef5c3027d2a43d8d12607ae5edc3e16659924f88ae2bde6ff7f2355613578d082ae326fFile filter
Filter by extension
Conversations
Uh oh!
There was an error while loading. Please reload this page.
Jump to
Uh oh!
There was an error while loading. Please reload this page.
Scanning a code appended "Connecting…" to the screen you were already on, then announced the result in a toast — which arrives after you've looked away, and says nothing while the workspace is being copied across. Pairing is a short linear flow with two waits in it, so show it as one: a dialog with a step per wait, a spinner on the step that's running, and a tick or a warning when it lands. ✓ Synced 42 resources with Xiaomi Pad 6 ⟳ Bringing your workspace over… The second step exists because `/iroh-sync` answers as soon as the peer's push is imported, which is a moment before the drive is readable — that gap is what used to be a silent pause and then a toast. `PairingFlowProvider` owns the dialog and the state machine, and every entry point drives it: the in-app scanner, the paste field, and a tapped deep link. So `PairingLinkHandler` shrinks to validating that a link is ours and handing it over, and the connect-device screen no longer carries its own progress and error rendering. On success the dialog offers "Open workspace" rather than navigating out from under you; on failure it offers "Try again" without making you re-scan. `runPairing` reports failure as a value instead of throwing, so the component never awaits inside try/catch — which the React Compiler can't memoise through (see the data-browser CLAUDE.md). Says "Paired with <device>" rather than "Synced 0 resources" when there was no drive to sync, which is the honest description of what happened: the peer is recorded and a later sync will use it.Uh oh!
There was an error while loading. Please reload this page.
There are no files selected for viewing
Uh oh!
There was an error while loading. Please reload this page.