cat / 012
clone

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

Roadmap: SQL cells and connections

Dami committed ae0d15b
commit
ae0d15b44d797316b1406e4d9ec10afb23af17ea
parent
f9a45d4a8b3bb6ecf6037e10abd8104778bcf424
author
Dami <dami.etoile@gmail.com>
kind
docs risk score 0.0 of 3, Jev's estimate
1 file changed, +29 -0
MROADMAP.md29+++++++++++++++++++++++++++++
M ROADMAP.md +29 -0
@@ -48,6 +48,35 @@ 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.62+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+5180 ## Later: other transports (shelved)5281 5382 Explored, not scheduled: carrying the same shared sessions over iroh