crates/canvas/src/editor.rs | 3 + crates/canvas/src/search.rs | 6 +- crates/canvas/tests/attachment_insert.rs | 78 +++++++++++++++++++++- crates/canvas/tests/search.rs | 21 ++++++ crates/notebook/src/bin/onestore-diagnostic.rs | 2 +- crates/notebook/src/fs.rs | 45 +++++++++++++ crates/notebook/src/lib.rs | 3 + crates/notebook/src/live/share.rs | 102 +++++++++++++++++++++++++---- crates/notebook/src/live/share/batch.rs | 90 ++++++++++++++++++++++++++ crates/notebook/src/session.rs | 4 +- crates/onestore/src/page/mod.rs | 16 +++-- crates/snowbound/src/attachment.rs | 110 ++++++++++++++++++++++---------- crates/snowbound/src/commands.rs | 18 +++++- crates/snowbound/src/main.rs | 2 +- crates/snowbound/src/paste.rs | 22 +------ crates/snowbound/src/web.rs | 13 +++- crates/snowbound/tests/replay.rs | 42 ++++++++++++ crates/snowbound/web/glue.js | 10 +-- 18 files changed, 497 insertions(+), 90 deletions(-)