cat / 012
clone

a spreadsheet for the terminal: lotus 1-2-3 looks, google sheets keys and formulas, one go binary

Roadmap: SQL cells shelved beside other transports

Dami committed e2ec615
commit
e2ec615e5dfa15f28d5ddc7e606184eaf3e82cac
parent
ae0d15b44d797316b1406e4d9ec10afb23af17ea
author
Dami <dami.etoile@gmail.com>
kind
docs risk score 0.0 of 3, Jev's estimate
1 file changed, +13 -31
MROADMAP.md44+++++++++---------------------
M ROADMAP.md +13 -31
@@ -48,38 +48,11 @@ shown by `012 diff`, under the same trust rules as macros. Live mode is
4848 |---|---|---|4949 | Live mode: `012 --listen` and `012 mcp --attach`; the agent's cursor and name in the grid, its changes arriving as a suggestion (marked cells, accepted or rejected whole or by cell) unless direct edits are allowed, its own undo, a scope (sheet, range, read-only), elicitation to ask the person | Coworking with an agent in the grid | M to L |5050 51-### 4. SQL cells and connections52-53-SQL is a second language for notebook cells, beside nu, chosen per54-cell. A cell's connection defaults to `local`, an in-process SQLite55-(pure Go) where every table the workbook has is a table: sheet tables,56-cell outputs, linked files and paged sources. A result is an output like57-a nu cell's, so its grid, `G`, `$name`, stale and reactive work as they58-do. A cell is named as a nu cell is (`sales = SELECT ...`). Real59-databases come through saved connections whose secrets stay in the60-keychain, read-only unless allowed to write, trusted before a file from61-another computer connects anywhere.51+## Shelved6252 63-| Item | Result | Size |64-|---|---|---|65-| SQL cells on `local`: a language per cell, in-process SQLite over the workbook's tables, outputs and linked files, results as outputs (grid, `G`, `$name`, stale, reactive) | SQL over a workbook's own data, next to nu | L |66-| `012 query book.012 '<sql>'` and a read-only MCP `query` tool on `local` | Agents and scripts aggregate workbooks with SQL | M |67-| SQL highlighting, errors from `prepare`, completion of the tables and columns in scope | Writing SQL cells as nu cells are written | M |68-| `@name` parameters from cells and named ranges, always bound, making outputs stale | Queries driven by cells and dropdowns | M |69-| The keyring keyed by account | Several secrets in the OS keychain | S |70-| Connections: SQLite files, Postgres (pgx), MySQL, saved in `.012` without secrets, a picker, read-only sessions, the trust prompt, `--connections` and `serve-connections` | SQL cells on real databases | L |71-| A schema browser, and completion from a schema cache | Finding tables and columns without leaving 012 | M |72-| Cells on one connection that name each other inlined as CTEs | Multi-step remote queries that run in the database | S |73-| Virtual tables over sheet tables, outputs and paged sources | SQL over sources too big to load | M |74-| A preview of rows and "Open as source" for big results | Results too big for a grid, paged | M |75-| Scheduled refresh per cell, while the workbook is open, once per room | Regions that keep up with the database | M |76-| Data > Query > New query, and `012 sql` | Sheet-first and command-line ways in | S |77-| DuckDB as an optional external kernel, run as nu is | DuckDB's dialect where it's installed | M |78-| `=SQL(...)` spilling, on `local` | SQL in formulas, offline | M |79-80-## Later: other transports (shelved)81-82-Explored, not scheduled: carrying the same shared sessions over iroh53+Explored, not scheduled; the fit is still open.54+55+Other transports: carrying the same shared sessions over iroh8356 tickets (the Go transport in `FelineStateMachine/allons`8457 `local/transport/iroh`, which needs cgo and a prebuilt iroh-ffi archive, so8558 it would sit behind a build tag) and the web (`NimbleMarkets/go-booba`
@@ -88,6 +61,15 @@ v2 support unverified). They would reuse the rooms of `012 serve`, whose
8861 server orders every participant's operations, rather than a design of8962 their own.9063 64+SQL cells and connections: SQL as a second cell language beside nu, on65+an in-process SQLite (pure Go) over the workbook's tables, outputs and66+linked files by default, with saved connections to SQLite files,67+Postgres and MySQL whose secrets stay in the keychain. Results would be68+outputs like a nu cell's (grid, `G`, `$name`, stale), `@name`69+parameters bound from cells, and `012 query` and an MCP `query` tool70+for scripts and agents. DuckDB would only be an external kernel, as it71+needs cgo.72+9173 ## Shipped9274 9375 **Engine**