Skip to content

Conversation

@expede
Copy link
Member

@expede expede commented Dec 7, 2025

No description provided.

@expede expede requested a review from alexjg as a code owner December 7, 2025 20:14
Copilot AI review requested due to automatic review settings December 7, 2025 20:14
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This pull request introduces significant architectural changes to support WebAssembly (WASM), refactors the connection handling model, and adds new packages for Automerge integration. The changes span multiple crates and introduce a new actor-based pattern for managing connections.

Key changes include:

  • Refactored Connection trait to use &self instead of &mut self for disconnect()
  • Introduced actor-based connection handling with ConnectionActor and message queues
  • Changed Storage trait to require SedimentreeId parameter for all operations
  • Added three new WASM packages: subduction_wasm, sedimentree_automerge_wasm, and subduction_automerge_wasm
  • Replaced mpsc::unbounded channels with async_channel throughout
  • Changed request ID nonce from u128 to u64
  • Added workspace-level lints configuration

Reviewed changes

Copilot reviewed 68 out of 70 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
subduction_core/src/subduction.rs Major refactor: added actor pattern, replaced Mutex<HashMap> with DashMap, changed API from mutable to immutable
subduction_core/src/connection.rs Added recv_once and actor modules, changed disconnect() signature to take &self
subduction_websocket/src/websocket.rs Switched from futures::channel::mpsc to async_channel, changed counter from u128 to u64
subduction_wasm/src/websocket.rs Complete rewrite with async_channel, added connection lifecycle management
sedimentree_core/src/storage.rs Changed all methods to require SedimentreeId parameter, replaced Mutex with DashMap
Cargo.toml Added workspace lints, new dependencies (async-channel, dashmap, etc.)
subduction_automerge_wasm/ New package for Automerge+Subduction WASM bindings
sedimentree_automerge_wasm/ New package for Sedimentree+Automerge WASM bindings
build_info/ New package for embedding git commit information

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@expede expede marked this pull request as draft December 7, 2025 20:18
@expede expede changed the title Sam wasm Subduction+Automerge on Wasm Dec 8, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants