# feat: Live Share serves a notebook's storage to guests who meet its host by code · clo/snowbound

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

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

Visibility: public

Requested revision: e01c7cf1781d73fb57bc66e80bb1b3da9cafa9d2

Requested commit: e01c7cf1781d73fb57bc66e80bb1b3da9cafa9d2

Commit: e01c7cf1781d73fb57bc66e80bb1b3da9cafa9d2

Tree: 52da27f852271fb76252deef5cba466070c5e2c0

Author: clover caruso

Committer: clover caruso

## Message

```
feat: Live Share serves a notebook's storage to guests who meet its host by code

A host serves its notebook's storage verbs (notebook::live::share::Host) to
the peers in the share's room; a guest runs the replica, queue and merge it
runs on an SMB share against them (Notebook::open_hosted,
Section::resume_hosted, Background::hosted), so offline queueing, rebases and
conflict pages work as there and the host's files are written only by its own
storage. A guest meets the host in a short code's room (SPAKE2 on its words
and any password, numbered by the relay or by the host off it) and is
welcomed with the share's room and its random secret; a new share has a new
secret. Guests' commits are checked on the host's image first, paths outside
the notebook and presence's secret are refused, and large bodies travel in
answered 128 KiB chunks so a relay never queues much for a slow peer. A
notebook opens from its last listing while the host is away.

Presence meets in a room whose random secret is kept in .snowbound/live.json
(Notebook::presence_room) in place of the TOC's identity, which every copy of
a notebook holds for good. Live events now carry frames, meetings and
departures, Live::leave says Bye, and the joining end of a code gives up
after one wrong try, as the relay counts each one. onestore::Transaction gains
a byte form to carry a commit to another machine.

Assisted-by: claude-opus-5.5

```

## Parents

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

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