# feat: move and delete page subtrees atomically · clo/snowbound

[View on GitCafe](https://git.cafe/clo/snowbound/commit/c3891b37112bb60d6f963ef3adae5a1f5c3e5e73)

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

Visibility: public

Requested revision: c3891b37112bb60d6f963ef3adae5a1f5c3e5e73

Requested commit: c3891b37112bb60d6f963ef3adae5a1f5c3e5e73

Commit: c3891b37112bb60d6f963ef3adae5a1f5c3e5e73

Tree: 0ddbf2487d83e3c59a63019dd4ef7f74294a15eb

Author: clover caruso

Committer: clover caruso

## Message

```
feat: move and delete page subtrees atomically

Add TreeEdit and PreparedEdit::tree for explicit same-page subtree placement and deletion. Preserve surviving identities, fields, tags, tables and history; normalize empty/group-only containers and allocate stable empty-cell replacements. Publish attribution and automatic titles with the graph.

Follow resulting ancestry after group normalization, and permit retained intents to reuse identical immutable author records. Share title updates with paragraph editing.

Validation: eighteen native control comparisons, four cross-container cases and unequal-group normalization; forty pages cold-open in real OneNote. Core/offline regression lanes, final tree tests, 144 Python tests, workspace Clippy and tool builds pass. Three ASan campaigns complete 1239 schedules with twelve cached clients, ordering/indentation oracles, retained-intent replay and publication interruptions. All owned VMs removed.

Assisted-by: gpt-6-astra

```

## Parents

- [a204407163badd07fd899ea732dc10df2b36e52c](https://git.cafe/clo/snowbound/commit/a204407163badd07fd899ea732dc10df2b36e52c?format=markdown)

[Source at this commit](https://git.cafe/clo/snowbound/tree/c3891b37112bb60d6f963ef3adae5a1f5c3e5e73?format=markdown)
