corpus/page-lifecycle/offline-creation/README.md | 25 +++ corpus/page-lifecycle/offline-creation/candidate/pages.one | Bin 0 -> 50384 bytes corpus/page-lifecycle/offline-creation/cold/notebook/pages.one | Bin 0 -> 51864 bytes corpus/page-lifecycle/offline-creation/cold/read/hierarchy.xml | 2 + corpus/page-lifecycle/offline-creation/cold/read/page-000.xml | 2 + corpus/page-lifecycle/offline-creation/cold/read/page-001.xml | 2 + corpus/page-lifecycle/offline-creation/cold/read/page-002.xml | 2 + corpus/page-lifecycle/offline-creation/cold/read/page-003.xml | 2 + corpus/page-lifecycle/offline-creation/cold/read/page-004.xml | 2 + corpus/page-lifecycle/offline-creation/cold/read/page-005.xml | 2 + corpus/page-lifecycle/offline-creation/cold/read/page-006.xml | 2 + corpus/page-lifecycle/offline-creation/cold/read/page-007.xml | 2 + corpus/page-lifecycle/offline-creation/cold/read/page-008.xml | 2 + corpus/page-lifecycle/offline-creation/cold/read/page-009.xml | 2 + corpus/page-lifecycle/offline-creation/cold/read/page-010.xml | 2 + corpus/page-lifecycle/offline-creation/cold/read/page-011.xml | 2 + corpus/page-lifecycle/offline-creation/cold/read/page-012.xml | 2 + corpus/page-lifecycle/offline-creation/provenance.json | 27 +++ crates/onestore-offline/README.md | 20 +- crates/onestore-offline/examples/cache_probe.rs | 1 + crates/onestore-offline/src/lib.rs | 28 ++- crates/onestore-offline/src/schema.rs | 13 +- crates/onestore-offline/src/sync.rs | 115 +++++++++-- crates/onestore-offline/src/tree.rs | 2 + crates/onestore-offline/tests/cache.rs | 23 ++- crates/onestore-offline/tests/support/page_schedule.rs | 156 ++++++++++++++ crates/onestore-offline/tests/sync.rs | 4 + crates/onestore-offline/tests/sync/page.rs | 350 ++++++++++++++++++++++++++++++++ crates/onestore/src/page.rs | 8 + fuzz/Cargo.toml | 7 + fuzz/fuzz_targets/offline_page.rs | 9 + tools/test_page_creation.py | 4 + 32 files changed, 791 insertions(+), 29 deletions(-)