# Commit history · clo/snowbound

[View on GitCafe](https://git.cafe/clo/snowbound/commits/860f9341c754f84c8ce5d06a103d2d1fd39fefdb)

Repository: [clo/snowbound](https://git.cafe/clo/snowbound)

Visibility: public

Requested revision: 860f9341c754f84c8ce5d06a103d2d1fd39fefdb

Requested commit: 860f9341c754f84c8ce5d06a103d2d1fd39fefdb

- [feat: save page edits to password-protected sections](https://git.cafe/clo/snowbound/commit/860f9341c754f84c8ce5d06a103d2d1fd39fefdb?format=markdown) — 860f9341c754f84c8ce5d06a103d2d1fd39fefdb; clover caruso

- [fix: bring the canvas-editor fuzz target up to the page model](https://git.cafe/clo/snowbound/commit/2393166f77111e9fcba3a433294bddc0c4df5ec9?format=markdown) — 2393166f77111e9fcba3a433294bddc0c4df5ec9; clover caruso

- [feat: recordings and annotations in the page model, kept through edits](https://git.cafe/clo/snowbound/commit/0402199d1cdc50e08ec9c94f60a4def64754c8c4?format=markdown) — 0402199d1cdc50e08ec9c94f60a4def64754c8c4; clover caruso

- [feat: notebook structure over SMB, nested-table page copies, run language](https://git.cafe/clo/snowbound/commit/94b162d4813c318a27b96cc9f1923bd80c21c1d6?format=markdown) — 94b162d4813c318a27b96cc9f1923bd80c21c1d6; clover caruso

- [feat: copy pages between sections, quick styles on new paragraphs, scale baseline](https://git.cafe/clo/snowbound/commit/3d72c72fcc4bf5ea8b86377b6117843fea073b61?format=markdown) — 3d72c72fcc4bf5ea8b86377b6117843fea073b61; clover caruso

- [feat: notebook structure, change detection, link resolution, reviewed release of uncertain saves](https://git.cafe/clo/snowbound/commit/75e67fc117387e3301560b6a3ee21075f3487b71?format=markdown) — 75e67fc117387e3301560b6a3ee21075f3487b71; clover caruso

- [feat: render matrices, equation arrays, boxes and one-sided limits as OneNote does](https://git.cafe/clo/snowbound/commit/5b4f04b30a869396c509201367a1d5b296becf7e?format=markdown) — 5b4f04b30a869396c509201367a1d5b296becf7e; clover caruso

- [feat: render roots, limits, named fences, accents and function names as OneNote does](https://git.cafe/clo/snowbound/commit/bdb38ac1f1a4e8f65b558380079eeab79033b2f8?format=markdown) — bdb38ac1f1a4e8f65b558380079eeab79033b2f8; clover caruso

- [feat: write equations through the page model; give new identities n 1](https://git.cafe/clo/snowbound/commit/6478bd1e6e851e3c9bfe58640dfb03ffb64f09f8?format=markdown) — 6478bd1e6e851e3c9bfe58640dfb03ffb64f09f8; clover caruso

- [feat: parse equations into a tree that renders the MathML OneNote exports](https://git.cafe/clo/snowbound/commit/db49720208e16a932d4c13ebe1172ab872638ac7?format=markdown) — db49720208e16a932d4c13ebe1172ab872638ac7; clover caruso

- [feat: write ink drawings and handwriting through the page model](https://git.cafe/clo/snowbound/commit/237d4668ad21d8c6275da60e59bc4acb066fb853?format=markdown) — 237d4668ad21d8c6275da60e59bc4acb066fb853; clover caruso

- [feat: read ink drawings and handwriting as strokes in page coordinates](https://git.cafe/clo/snowbound/commit/7f30bf34648c9ac7a69e74956b04546b9894a380?format=markdown) — 7f30bf34648c9ac7a69e74956b04546b9894a380; clover caruso

- [feat: build internal links from page and section identities; tag colours gated](https://git.cafe/clo/snowbound/commit/bcb13ba046299393ccadffa70cc2c57963ffc3ce?format=markdown) — bcb13ba046299393ccadffa70cc2c57963ffc3ce; clover caruso

- [feat: edit cell shading and indents and nest tables through the page model](https://git.cafe/clo/snowbound/commit/23f0f23fc7064901d2942eb0d0ff5c4adea3afd6?format=markdown) — 23f0f23fc7064901d2942eb0d0ff5c4adea3afd6; clover caruso

- [feat: place pictures directly on the page through the page model](https://git.cafe/clo/snowbound/commit/ebed33c87eab2e83fb48269388f22950d118ea53?format=markdown) — ebed33c87eab2e83fb48269388f22950d118ea53; clover caruso

- [feat: resize and describe stored pictures through the page model](https://git.cafe/clo/snowbound/commit/d0ec66f9b4d3023668fa156d8a0903b3b5b8a316?format=markdown) — d0ec66f9b4d3023668fa156d8a0903b3b5b8a316; clover caruso

- [feat: write pictures and attachments through the page model](https://git.cafe/clo/snowbound/commit/cb4842d4e6047a60f7c99dcbf033c4fe366e8b8f?format=markdown) — cb4842d4e6047a60f7c99dcbf033c4fe366e8b8f; clover caruso

- [feat: write table rows, columns and new tables through the page model](https://git.cafe/clo/snowbound/commit/59c8648048632812f85fd595c05aa9720ad2a051?format=markdown) — 59c8648048632812f85fd595c05aa9720ad2a051; clover caruso

- [feat: write hyperlinks through the page model](https://git.cafe/clo/snowbound/commit/8b4f45b5b7a6d9b8555e7234a123c9887495d265?format=markdown) — 8b4f45b5b7a6d9b8555e7234a123c9887495d265; clover caruso

- [feat: write note tags and tag definitions through the page model](https://git.cafe/clo/snowbound/commit/190fb2d10c46ced562a7f0d96f63aa803f4b47d4?format=markdown) — 190fb2d10c46ced562a7f0d96f63aa803f4b47d4; clover caruso

- [feat: write bullets and numbering through the page model](https://git.cafe/clo/snowbound/commit/8a86e3ac0f817d8d27104a0a58e865b17e94eb35?format=markdown) — 8a86e3ac0f817d8d27104a0a58e865b17e94eb35; clover caruso

- [feat: write paragraph alignment, direction and spacing through the page model](https://git.cafe/clo/snowbound/commit/b6b6e903d65a5b876c5c009ba390df25d9842040?format=markdown) — b6b6e903d65a5b876c5c009ba390df25d9842040; clover caruso

- [feat: open sections through a replica-backed session for the app](https://git.cafe/clo/snowbound/commit/cffb5ce4bca95f8c242b5513d981a708206cee41?format=markdown) — cffb5ce4bca95f8c242b5513d981a708206cee41; clover caruso

- [test: capture native paragraph formatting and style inheritance](https://git.cafe/clo/snowbound/commit/7d2feb6f84ba766193b4041b9d6ee375a354e98e?format=markdown) — 7d2feb6f84ba766193b4041b9d6ee375a354e98e; clover caruso

- [perf: decode only the selected synchronization head](https://git.cafe/clo/snowbound/commit/d956049b4eeac2458cf646e61eb29a90390ff59f?format=markdown) — d956049b4eeac2458cf646e61eb29a90390ff59f; clover caruso

- [test: measure durable offline queue scaling](https://git.cafe/clo/snowbound/commit/613bb6e8c7022b768402c9801dc069a9c5bb78bd?format=markdown) — 613bb6e8c7022b768402c9801dc069a9c5bb78bd; clover caruso

- [test: preserve dependent conflicts through remote restore review](https://git.cafe/clo/snowbound/commit/e3d3b5f60eac76bbde6907df41c1133e1f089b13?format=markdown) — e3d3b5f60eac76bbde6907df41c1133e1f089b13; clover caruso

- [test: retain recovery evidence across remote restores](https://git.cafe/clo/snowbound/commit/57e5817759454103af57785fe4a566b34a18c1a7?format=markdown) — 57e5817759454103af57785fe4a566b34a18c1a7; clover caruso

- [feat: add replica-backed section sessions with offline resume](https://git.cafe/clo/snowbound/commit/a380cb56a0a524f24a9edfa7a153336e4db3201c?format=markdown) — a380cb56a0a524f24a9edfa7a153336e4db3201c; clover caruso

- [test: rerun the native reconciliation gates on page saves](https://git.cafe/clo/snowbound/commit/d7b8dcee3e1a2f16ec6335f18cd91b96ed0f3b12?format=markdown) — d7b8dcee3e1a2f16ec6335f18cd91b96ed0f3b12; clover caruso

- [fix: let new paragraphs leave unspecified formatting to the insertion default](https://git.cafe/clo/snowbound/commit/2209a77660d46fe4a034fd72298b65f3201a9118?format=markdown) — 2209a77660d46fe4a034fd72298b65f3201a9118; clover caruso

- [refactor: replace per-operation intents with page saves](https://git.cafe/clo/snowbound/commit/cc5b6a1bca8a59e2c06208c9086e7b002f0e95df?format=markdown) — cc5b6a1bca8a59e2c06208c9086e7b002f0e95df; clover caruso

- [feat: merge concurrent page edits during reconciliation](https://git.cafe/clo/snowbound/commit/2e2f9466aec89c2ab7fc03378e3cbf975ffd7f9d?format=markdown) — 2e2f9466aec89c2ab7fc03378e3cbf975ffd7f9d; clover caruso

- [feat: save edited page models to the local replica](https://git.cafe/clo/snowbound/commit/59f5163e0c2a80a4addceedf0e3f4bc3b6c235c3?format=markdown) — 59f5163e0c2a80a4addceedf0e3f4bc3b6c235c3; clover caruso

- [refactor: merge the notebook, offline, SMB and diagnostic crates into notebook](https://git.cafe/clo/snowbound/commit/09ee1d6454d9862cd2b895fea88eee8541e6caaf?format=markdown) — 09ee1d6454d9862cd2b895fea88eee8541e6caaf; clover caruso

- [chore: keep proprietary references and lab configuration out of the tree](https://git.cafe/clo/snowbound/commit/1dea3f70f427bd13315c88c22cab8f539a791187?format=markdown) — 1dea3f70f427bd13315c88c22cab8f539a791187; clover caruso

- [test: create native pages after Rust page removal and reopen cold](https://git.cafe/clo/snowbound/commit/c7a3a67441644b41cb53718b670c1315d096e56a?format=markdown) — c7a3a67441644b41cb53718b670c1315d096e56a; clover caruso

- [test: reopen page-model edits in OneNote and edit them natively](https://git.cafe/clo/snowbound/commit/8f943380df58facba8f67538e833f1e7f86a515a?format=markdown) — 8f943380df58facba8f67538e833f1e7f86a515a; clover caruso

- [fix: read native wrap reservations from the layout in the outline test](https://git.cafe/clo/snowbound/commit/a12631917f7c136f8549fd670561c6face5fe85a?format=markdown) — a12631917f7c136f8549fd670561c6face5fe85a; clover caruso

- [chore: update readme](https://git.cafe/clo/snowbound/commit/9ec3d92ecff734adff8d8e5c37122994a422b96a?format=markdown) — 9ec3d92ecff734adff8d8e5c37122994a422b96a; clover caruso

- [test: fuzz page-model edits](https://git.cafe/clo/snowbound/commit/4bd588bce728596d838724ac0cd6d0bb7acf3aba?format=markdown) — 4bd588bce728596d838724ac0cd6d0bb7acf3aba; clover caruso

- [feat: publish edited page models](https://git.cafe/clo/snowbound/commit/3283203e9f87d21af0fe6dd1f6aaa18866cbc25e?format=markdown) — 3283203e9f87d21af0fe6dd1f6aaa18866cbc25e; clover caruso

- [refactor: use the onestore page model in canvas](https://git.cafe/clo/snowbound/commit/c5acf4f0209f9e28a4496e04a421a11cb40b2984?format=markdown) — c5acf4f0209f9e28a4496e04a421a11cb40b2984; clover caruso

- [feat: merge the canvas crates into snowbound and extend the editor](https://git.cafe/clo/snowbound/commit/13f6c1c7a897937e5eb4c3d9260d9071200ddb54?format=markdown) — 13f6c1c7a897937e5eb4c3d9260d9071200ddb54; clover caruso

- [feat: add the Snowbound app icon](https://git.cafe/clo/snowbound/commit/200c25e12ad5083feb3e7594ccf16959042c6c8f?format=markdown) — 200c25e12ad5083feb3e7594ccf16959042c6c8f; clover caruso

- [feat: initial canvas implementation](https://git.cafe/clo/snowbound/commit/1c1d0b1a96f8a3a9a9d12d82a7f8089296a13163?format=markdown) — 1c1d0b1a96f8a3a9a9d12d82a7f8089296a13163; clover caruso

- [feat: add the editable page model](https://git.cafe/clo/snowbound/commit/e00506af62d3a184a53b6dec1b40ac6bd6372c3c?format=markdown) — e00506af62d3a184a53b6dec1b40ac6bd6372c3c; clover caruso

- [refactor: expose active-revision, page and parent accessors](https://git.cafe/clo/snowbound/commit/ad10b477304448e0310a90215fdfab07b4dd337f?format=markdown) — ad10b477304448e0310a90215fdfab07b4dd337f; clover caruso

- [feat: delete pages permanently](https://git.cafe/clo/snowbound/commit/de01c779539ae34b40906112aa468ef3a52979fa?format=markdown) — de01c779539ae34b40906112aa468ef3a52979fa; clover caruso

- [test: establish native page-removal and recycle references](https://git.cafe/clo/snowbound/commit/dc3ffc4eda7a84676b6259d39f0cfb0085d8e575?format=markdown) — dc3ffc4eda7a84676b6259d39f0cfb0085d8e575; clover caruso

- [feat: reconcile offline page movement atomically](https://git.cafe/clo/snowbound/commit/b05388e520307a8d4e9a31202b3506cba6cb7de5?format=markdown) — b05388e520307a8d4e9a31202b3506cba6cb7de5; clover caruso

- [feat: move and nest pages atomically](https://git.cafe/clo/snowbound/commit/10057aa19f1de00ea9e0a324c4f86b83e9b3118c?format=markdown) — 10057aa19f1de00ea9e0a324c4f86b83e9b3118c; clover caruso

- [test: capture native page selection and movement semantics](https://git.cafe/clo/snowbound/commit/8424675646b330e1631dc54917f1dad9bc466d10?format=markdown) — 8424675646b330e1631dc54917f1dad9bc466d10; clover caruso

- [feat: persist offline page creation with complete publication proofs](https://git.cafe/clo/snowbound/commit/75c6fcf3b31d17b367dd1177074446f029c21196?format=markdown) — 75c6fcf3b31d17b367dd1177074446f029c21196; clover caruso

- [feat: create pages in existing sections atomically](https://git.cafe/clo/snowbound/commit/44df465c5e6e99c1a98916fa6cbcbde01a666164?format=markdown) — 44df465c5e6e99c1a98916fa6cbcbde01a666164; clover caruso

- [feat: publish revisions across existing object spaces atomically](https://git.cafe/clo/snowbound/commit/cffb05d4803d38e6fbc9acef1aff140f067a5ede?format=markdown) — cffb05d4803d38e6fbc9acef1aff140f067a5ede; clover caruso

- [fix: refresh automatic titles when moving outlines](https://git.cafe/clo/snowbound/commit/50cc916d18c0cf6e5bf920d93cbfc83a8d827dec?format=markdown) — 50cc916d18c0cf6e5bf920d93cbfc83a8d827dec; clover caruso

- [test: capture native page lifecycle controls](https://git.cafe/clo/snowbound/commit/cc0cc614db453797dd5ba20e68e57618cb9c323f?format=markdown) — cc0cc614db453797dd5ba20e68e57618cb9c323f; clover caruso

- [fix: reconcile native subtree normalization in offline deletion](https://git.cafe/clo/snowbound/commit/8bcca78a05a23695cd0b16382164810da6d0c96e?format=markdown) — 8bcca78a05a23695cd0b16382164810da6d0c96e; clover caruso

- [feat: reconcile offline subtree moves and deletion](https://git.cafe/clo/snowbound/commit/fa4842b0710f130a915f5ae0cea755b17503825f?format=markdown) — fa4842b0710f130a915f5ae0cea755b17503825f; clover caruso

- [feat: move and delete page subtrees atomically](https://git.cafe/clo/snowbound/commit/c3891b37112bb60d6f963ef3adae5a1f5c3e5e73?format=markdown) — c3891b37112bb60d6f963ef3adae5a1f5c3e5e73; clover caruso

- [test: capture native group and table-cell tree editing semantics](https://git.cafe/clo/snowbound/commit/a204407163badd07fd899ea732dc10df2b36e52c?format=markdown) — a204407163badd07fd899ea732dc10df2b36e52c; clover caruso

- [feat: reconcile durable offline outline layout edits](https://git.cafe/clo/snowbound/commit/d1ad62573d835ddc1f3273975bfe9c4b1a554510?format=markdown) — d1ad62573d835ddc1f3273975bfe9c4b1a554510; clover caruso

- [feat: edit outline layout and saved expansion without rewriting content](https://git.cafe/clo/snowbound/commit/423f7adf1aef0ed15f708ddac37865616105bbf3?format=markdown) — 423f7adf1aef0ed15f708ddac37865616105bbf3; clover caruso

- [test: capture native outline editing semantics](https://git.cafe/clo/snowbound/commit/cdc3adbfaf940444332bd90ddcdf2c8e6b133040?format=markdown) — cdc3adbfaf940444332bd90ddcdf2c8e6b133040; clover caruso

- [test: verify native paragraph reconciliation and retained local branches](https://git.cafe/clo/snowbound/commit/d05060b296f63103ff7e87e746ff0f535107ee52?format=markdown) — d05060b296f63103ff7e87e746ff0f535107ee52; clover caruso

- [test: verify offline paragraph boundaries with twelve native and Rust clients](https://git.cafe/clo/snowbound/commit/0fdda4e484c31a29b80ec9becba2d5730477032e?format=markdown) — 0fdda4e484c31a29b80ec9becba2d5730477032e; clover caruso

- [test: observe paragraph structure in concurrent notebook histories](https://git.cafe/clo/snowbound/commit/c0d4cbf0d0de5d6a8f0db4455c2165bb952802af?format=markdown) — c0d4cbf0d0de5d6a8f0db4455c2165bb952802af; clover caruso

- [feat: reconcile durable offline paragraph splits and joins](https://git.cafe/clo/snowbound/commit/4cd338a8b4d4e4acf3fc1f4e48cf94ac7596e5ea?format=markdown) — 4cd338a8b4d4e4acf3fc1f4e48cf94ac7596e5ea; clover caruso

- [feat: join ordinary paragraphs with native identity and tag semantics](https://git.cafe/clo/snowbound/commit/02d45d734921e4a41dddbf7887dd3224bb4c7f4c?format=markdown) — 02d45d734921e4a41dddbf7887dd3224bb4c7f4c; clover caruso

- [test: capture native join inheritance and tag semantics](https://git.cafe/clo/snowbound/commit/e3fba00fa7baf2a33af4943802256e937ba0573d?format=markdown) — e3fba00fa7baf2a33af4943802256e937ba0573d; clover caruso

- [feat: split ordinary paragraphs with stable identities](https://git.cafe/clo/snowbound/commit/5f00c02e9903b23fca73277fcdd3b6aa4fe2ea5a?format=markdown) — 5f00c02e9903b23fca73277fcdd3b6aa4fe2ea5a; clover caruso

- [test: capture native paragraph split and join semantics](https://git.cafe/clo/snowbound/commit/7b15af16ba1b2e7f785f9346b9f39159a79ae44b?format=markdown) — 7b15af16ba1b2e7f785f9346b9f39159a79ae44b; clover caruso

- [feat: replace text across ordinary formatting runs](https://git.cafe/clo/snowbound/commit/93784cadb44ec833ca6d7f3063c5d87255c1d6af?format=markdown) — 93784cadb44ec833ca6d7f3063c5d87255c1d6af; clover caruso

- [feat: publish formatted insertions as one durable intent](https://git.cafe/clo/snowbound/commit/49bc9b2d95d93ceb9f25de3e238e89ce6fbfb21e?format=markdown) — 49bc9b2d95d93ceb9f25de3e238e89ce6fbfb21e; clover caruso

- [feat: open native protected sections through an owned decode view](https://git.cafe/clo/snowbound/commit/3a32cbb2aad5a83965908734e6595ea252557f7f?format=markdown) — 3a32cbb2aad5a83965908734e6595ea252557f7f; clover caruso

- [test: retain native protected attachment boundary fixtures](https://git.cafe/clo/snowbound/commit/5bd5adf1ba1afbdc4eb6f3c20c23522d15945e16?format=markdown) — 5bd5adf1ba1afbdc4eb6f3c20c23522d15945e16; clover caruso

- [fix: reject native window timeouts before screenshot acceptance](https://git.cafe/clo/snowbound/commit/6f5cbac92d1a569a60fc06bf1c9b993b4a5abc20?format=markdown) — 6f5cbac92d1a569a60fc06bf1c9b993b4a5abc20; clover caruso

- [test: provide an isolated public library regression lane](https://git.cafe/clo/snowbound/commit/06457c4d53a5d89b0271752c18d7091526928939?format=markdown) — 06457c4d53a5d89b0271752c18d7091526928939; clover caruso

- [feat: retain verified external media in offline recovery caches](https://git.cafe/clo/snowbound/commit/aabbadfaf1e956a3daaa6d59d0a2213d4cf78ffe?format=markdown) — aabbadfaf1e956a3daaa6d59d0a2213d4cf78ffe; clover caruso

- [feat: resolve external notebook payloads with bounded SMB reads](https://git.cafe/clo/snowbound/commit/30d02b72f6a5b8dd8b72cea593bdc9c883afea1e?format=markdown) — 30d02b72f6a5b8dd8b72cea593bdc9c883afea1e; clover caruso

- [feat: discover notebook identities and order over local and SMB roots](https://git.cafe/clo/snowbound/commit/bca7120d8a96e56b4ae7c6c76d1e82ccef0c5d21?format=markdown) — bca7120d8a96e56b4ae7c6c76d1e82ccef0c5d21; clover caruso

- [feat: enumerate bounded SMB directories without partial success](https://git.cafe/clo/snowbound/commit/2c75dd41e5584f3d01c9253e50bdebec6623740f?format=markdown) — 2c75dd41e5584f3d01c9253e50bdebec6623740f; clover caruso

- [test: retain uncertainty when identical text hides different formatting](https://git.cafe/clo/snowbound/commit/d7d1c96c52f172bdfa45f44531559f14750e55f9?format=markdown) — d7d1c96c52f172bdfa45f44531559f14750e55f9; clover caruso

- [feat: export read-only offline recovery archives](https://git.cafe/clo/snowbound/commit/e076b4012533d329f3c9c7aca05c8288d84afb4b?format=markdown) — e076b4012533d329f3c9c7aca05c8288d84afb4b; clover caruso

- [feat: offline support and real smb client](https://git.cafe/clo/snowbound/commit/b253974a925fe86b3f2ee31e969477fe2ae43fd3?format=markdown) — b253974a925fe86b3f2ee31e969477fe2ae43fd3; clover caruso

- [feat: onestore implementation](https://git.cafe/clo/snowbound/commit/98814e04e30acd58e15833964b0a216cf36b7a5b?format=markdown) — 98814e04e30acd58e15833964b0a216cf36b7a5b; clover caruso
