corpus/page-copy/README.md | 23 +++ corpus/page-copy/candidate/Open Notebook.onetoc2 | Bin 0 -> 1604 bytes corpus/page-copy/candidate/copies.one | Bin 0 -> 91008 bytes corpus/page-copy/candidate/expected-count.txt | 1 + corpus/page-copy/cold/commands.jsonl | 3 + corpus/page-copy/cold/machine.json | 1 + corpus/page-copy/cold/notebook/Open Notebook.onetoc2 | Bin 0 -> 3764 bytes corpus/page-copy/cold/notebook/copies.one | Bin 0 -> 93896 bytes corpus/page-copy/cold/notebook/expected-count.txt | 1 + corpus/page-copy/cold/read/b20a14e044e33eac39b4665e7d79813b8a3672dbbd27ed9d2e4ac866c13ec4b6.attachment | 1 + corpus/page-copy/cold/read/environment.json | 7 + corpus/page-copy/cold/read/hierarchy.xml | 2 + corpus/page-copy/cold/read/page-000.navigation.json | 13 ++ corpus/page-copy/cold/read/page-000.png | Bin 0 -> 44427 bytes corpus/page-copy/cold/read/page-000.xml | 3 + corpus/page-copy/cold/read/page-001.navigation.json | 13 ++ corpus/page-copy/cold/read/page-001.png | Bin 0 -> 43977 bytes corpus/page-copy/cold/read/page-001.xml | 2 + corpus/page-copy/cold/read/page-002.navigation.json | 13 ++ corpus/page-copy/cold/read/page-002.png | Bin 0 -> 39593 bytes corpus/page-copy/cold/read/page-002.xml | 2 + corpus/page-copy/cold/read/page-003.navigation.json | 13 ++ corpus/page-copy/cold/read/page-003.png | Bin 0 -> 43441 bytes corpus/page-copy/cold/read/page-003.xml | 2 + corpus/page-copy/cold/read/page-004.navigation.json | 13 ++ corpus/page-copy/cold/read/page-004.png | Bin 0 -> 42917 bytes corpus/page-copy/cold/read/page-004.xml | 7 + corpus/page-copy/cold/read/page-005.navigation.json | 13 ++ corpus/page-copy/cold/read/page-005.png | Bin 0 -> 42168 bytes corpus/page-copy/cold/read/page-005.xml | 4 + corpus/page-copy/cold/read/page-006.navigation.json | 13 ++ corpus/page-copy/cold/read/page-006.png | Bin 0 -> 42588 bytes corpus/page-copy/cold/read/page-006.xml | 2 + corpus/page-copy/cold/read/page-007.navigation.json | 13 ++ corpus/page-copy/cold/read/page-007.png | Bin 0 -> 43450 bytes corpus/page-copy/cold/read/page-007.xml | 2 + corpus/page-copy/cold/read/page-008.navigation.json | 13 ++ corpus/page-copy/cold/read/page-008.png | Bin 0 -> 42536 bytes corpus/page-copy/cold/read/page-008.xml | 2 + corpus/page-copy/cold/read/payloads.json | 10 ++ corpus/page-copy/cold/run.json | 18 +++ corpus/page-copy/cold/scripts/cold.ps1 | 27 ++++ corpus/page-copy/cold/scripts/read.ps1 | 142 +++++++++++++++++++ corpus/page-copy/cold/source.json | 20 +++ corpus/page-copy/cold/teardown.json | 1 + crates/notebook/README.md | 7 + crates/notebook/src/session.rs | 50 ++++++- crates/notebook/tests/copy.rs | 242 ++++++++++++++++++++++++++++++++ crates/onestore/Cargo.toml | 6 +- crates/onestore/README.md | 3 +- crates/onestore/src/page/mod.rs | 99 ++++++++++++- crates/onestore/src/page/write.rs | 144 +++++++++++++++++-- tools/test_page_copy.py | 34 +++++ 53 files changed, 969 insertions(+), 16 deletions(-)