- commit
- 13697c4afd221c106e84bccceb721efd9142b51a
- parent
- 48b85b0e7864f579527318a5a400d5168680ce15
- author
- Dami <dami.etoile@gmail.com>
- kind
- docs risk score 0.0 of 3, Jev's estimate
| M | ROADMAP.md | 36 | ++++++++++++++++++------------ |
| M | docs/ | 4 | ++-- |
@@ -39,20 +39,28 @@ as `$r1`, and refreshing a region re-runs what depends on it.
3939 | `012 nu` and the notebook sheet: a nushell prompt in the formula bar (history, Tab completion), results stacking as named live regions built on spills, `$r1` references with a dependency graph so refresh cascades, Freeze to values, other sheets reading `Shell!r1`, commands saved and never run on open, trust for files from elsewhere, timeouts and an output cap, off in `012 serve` unless configured | A reactive notebook of pipelines inside a spreadsheet | L |4040 | Nushell's own completions in the prompt; `nu_plugin_012` only if `--pipe` proves clumsy from inside nu | | S to M |4141 42-## Later: sharing a live sheet (shelved)43-44-Explored, not scheduled. `012 serve` gives each SSH session its own45-spreadsheet; saving over a file another session saved asks first, and46-that is all the sessions know of each other. One session host that runs47-a Bubble Tea program for any byte stream with window-size events, fed by48-SSH (`charm.land/wish/v2`), iroh tickets (the Go transport in49-`FelineStateMachine/allons` `local/transport/iroh`, which needs cgo and a50-prebuilt iroh-ffi archive, so it would sit behind a build tag), and the51-web (`NimbleMarkets/go-booba` serves Bubble Tea over52-WebSocket/WebTransport with ghostty-web; Bubble Tea v2 support53-unverified). Open questions: per-user sessions on one sheet versus54-mirroring one session, and whether the web page is served by the host or55-by a gateway dialing the iroh ticket.42+### 5. Toward multiplayer43+44+Sessions share one workbook through the server that already hosts them45+(`012 serve`), so every change is ordered in one place: the workbook's one46+mutation path (`Batch`/`Change`) becomes a stream of operations, the same47+log macros record. Each step is useful on its own.48+49+| Step | Result | Size |50+|---|---|---|51+| Streaming files: a sheet or linked range follows a file as it grows (CSV, TSV, NDJSON, NUON; `tail -f` style) or is rewritten, and a nushell region can follow a streaming pipeline, with rows arriving live and no full reload | Logs and feeds as live sheets; the change stream multiplayer needs | M |52+| Shared viewing over SSH: several `012 serve` sessions open the same workbook; one edits, the others follow live with their own cursor, scroll and theme; presence shows who is where | Watch-along and review, one writer | M |53+| Shared editing over SSH: every session edits, the server orders operations (no CRDT needed while one server holds the workbook), per-user undo, presence and edit ownership shown in the grid, saves by the server | Multiplayer 012 over SSH | L |54+55+## Later: other transports (shelved)56+57+Explored, not scheduled: carrying the same shared sessions over iroh58+tickets (the Go transport in `FelineStateMachine/allons`59+`local/transport/iroh`, which needs cgo and a prebuilt iroh-ffi archive, so60+it would sit behind a build tag) and the web (`NimbleMarkets/go-booba`61+serves Bubble Tea over WebSocket/WebTransport with ghostty-web; Bubble Tea62+v2 support unverified). They would reuse the server-ordered operation63+stream above rather than a design of their own.5664 5765 ## Shipped5866 @@ -9,8 +9,8 @@ sidebar_position: 3
99 the client's own terminal, on the files of one directory. It's for1010 reaching your sheets from another machine or a tablet with an SSH app,1111 without installing anything there. It is not shared editing: two12-sessions are two separate spreadsheets (see13-[the roadmap](../../ROADMAP.md#later-sharing-a-live-sheet-shelved)).12+sessions are two separate spreadsheets. Shared viewing and editing over13+`012 serve` are planned: see [toward multiplayer](../../ROADMAP.md#5-toward-multiplayer).1414 1515 ```sh1616 012 serve ~/sheets # serve ~/sheets on 127.0.0.1:2312