# feat: join ordinary paragraphs with native identity and tag semantics · clo/snowbound

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

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

Visibility: public

Requested revision: 02d45d734921e4a41dddbf7887dd3224bb4c7f4c

Requested commit: 02d45d734921e4a41dddbf7887dd3224bb4c7f4c

Commit: 02d45d734921e4a41dddbf7887dd3224bb4c7f4c

Tree: 1cc8f6cdc96d1022e724af5d0ef93f3ab0c8c3d7

Author: clover caruso

Committer: clover caruso

## Message

```
feat: join ordinary paragraphs with native identity and tag semantics

Preserve inherited character styles, nested child placement, history and unrelated objects while publishing the joined graph and title metadata atomically. Empty left paragraphs adopt the right text identity; left tags survive as verified in independent OneNote controls.

Validate twenty Rust joins through cold native captures. Add preservation, invalid-target, property-reference remapping and interrupted-publication checks, plus stateful split/join fuzzing. Public gate passes 186 Rust tests, 8 doctests and 130 Python tests with fmt, Clippy and builds.

Assisted-by: gpt-6-astra

```

## Parents

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

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