feat: the web build is the desktop app, built for wasm32

Snowbound in the browser is now crates/snowbound itself, compiled for
wasm32-unknown-unknown with web.rs as its platform module beside
macos.rs, linux.rs and windows.rs, and web/index.html and web/glue.js as
the page around it. The welcome, sidebar, toolbar, menus, command
palette, Options and every dialog are the desktop's; crates/web and its
own shell are gone.

notebook runs there whole: sessions, the replica, publishing, merging,
conflict pages and the background. The page has one thread, so the
section thread is served as each request is sent and the sync worker and
background are async loops the page's event loop runs (notebook::task);
natively each still runs on a thread of its own with blocking waits.
Files go through notebook::fs, std's natively and in the browser files
kept in memory and in IndexedDB, with a SQLite VFS over the same files,
so a replica lives beside its notebook. The first web build's sections
move into a notebook of their own.

Assisted-by: claude-opus-5.5
563a667185clover caruso committed on 10/2/2026, 2:43:20 AMparentd9fc5cc
64 files changedLine totals unavailable