# feat: notebook structure over SMB, nested-table page copies, run language · clo/snowbound

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

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

Visibility: public

Requested revision: 94b162d4813c318a27b96cc9f1923bd80c21c1d6

Requested commit: 94b162d4813c318a27b96cc9f1923bd80c21c1d6

Commit: 94b162d4813c318a27b96cc9f1923bd80c21c1d6

Tree: 99056cb9a0b9ca3d42b80f18a50740a5c699dbd5

Author: clover caruso

Committer: clover caruso

## Message

```
feat: notebook structure over SMB, nested-table page copies, run language

`Notebook` now runs over a `Storage` trait: a mounted directory or an SMB share
(`Notebook::open_smb`), so sections and groups are created, renamed, coloured, ordered
and deleted on the share too. The native-compatible SMB client gained file creation,
directory creation, rename (`FileRenameInformation`), delete-on-close and header placement
(`onestore::place` on any `CommitIo`); `smb::tests::live_structure` runs against the Samba
lab VM through `tools/test_smb_structure.py`.

Page copies cover nested tables and paragraph subtrees inside new cells: the place pass
builds tables round by round as their holders appear, and a run's language id is a text
attribute the formatting writer sets. Pages whose indent levels only an outline group can
carry refuse to copy, since the model holds no outline groups. `corpus/page-copy` grows to
seventeen copied pages.

Assisted-by: claude-fable-5.1

```

## Parents

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

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