fix(tauri): add path-change subscription parity (#314) - #317
Merged
Conversation
The Tauri adapter lacked nextPathChange / unsubscribePathChanges, so pathChanges() fell through to the IrohAdapter base class and rejected at runtime with "nextPathChange() not supported by this adapter". Node and Deno already implement these, so this broke the cross-runtime API-parity promise. Add Rust plugin commands next_path_change and unsubscribe_path_changes in commands.rs (wired to IrohEndpoint::subscribe_path_changes / unsubscribe_path_changes in iroh-http-core, mirroring the Node and Deno adapters), register them in the plugin builder and build.rs, and grant them in the default permission set. Override the two methods in the guest-js TauriAdapter via invoke(). Extend cross-runtime conformance: a path-change parity test in the shared discovery suite (Node/Deno/Tauri) plus a Tauri guest-js IPC test asserting the new commands are invoked and the iterator completes. Closes #314 Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
This was referenced Jul 7, 2026
Closed
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.
Closes #314
Problem
The Tauri adapter was missing
nextPathChange/unsubscribePathChanges. Node and Deno implement them, but Tauri fell through to theIrohAdapterbase class, sopathChanges()rejected at runtime withnextPathChange() not supported by this adapter, breaking the cross-runtime API-parity promise.Changes
packages/iroh-http-tauri/src/commands.rs): addednext_path_changeandunsubscribe_path_changes, wired toIrohEndpoint::subscribe_path_changes/unsubscribe_path_changesiniroh-http-core— mirroring the Node (src/lib.rs) and Deno (src/dispatch.rs) adapters (samePathSub+Notifywake-on-unsubscribe pattern). Registered in the plugin builder (lib.rs),build.rs, and granted in the default permission set (permissions/default.toml, plus regenerated autogenerated files).guest-js/index.ts): overrodenextPathChange/unsubscribePathChangesusinginvoke(...), mirroring the existing transport/mDNS methods.Verification
npm run ciis green end-to-end, includingcargo clippy --manifest-path packages/iroh-http-tauri/Cargo.toml -- -D warnings ..., the Tauri Rust tests (incl. the command-list/permission integrity tests), the Tauri guest-js vitest suite, and Node/Deno/interop suites.No version-field bumps; build-artifact churn (
index.js,deno.lock,package-lock.json) reverted.