| 012_0.8.0_darwin_amd64.tar.gz | 12.7M | a6cf18dbe118e4f180c58662d7963671ed2f0500f4c50f1309312ed966c37b7d |
| 012_0.8.0_darwin_arm64.tar.gz | 11.8M | f2fa213457e653c8337d827fd0459b3434f9932ad107425405a445f95573ac77 |
| 012_0.8.0_linux_amd64.tar.gz | 12.5M | bd2114d037925b2ba194e23e32eea8b473da8258a1fc3478b71f0f80ed5efd21 |
| 012_0.8.0_linux_arm64.tar.gz | 11.4M | abcc2a33df617a01f404901d749b4b9655cebe1db12c1e17b1376c43510e63aa |
| 012_0.8.0_windows_amd64.zip | 12.8M | 924ee8673f463eb9dd1c12143fe98d17bdecba1b2bc7c676b61c3998ae51fa8a |
| 012_0.8.0_windows_arm64.zip | 11.4M | b0c4cadb56898eacc771ad44f99663dea13c41e09ad1f390ac1229ecdb5368ea |
SHA256SUMS ✓ signed by cat (.sig; forge release verify <file>)
CI of 7448490: no CI result
published
changed
- HTML export: pages and views embed JetBrains Mono 95de7f8
- Site: the navbar lists the docs' sections, and the landing page leads with what 012 is 39424e0
- Pictures: one font, JetBrains Mono, and color families by page a043ee9
- Themes: a scheme named exactly wins over looser matches 391e1d5
- Docs media: the recordings in JetBrains Mono and their pages' color schemes fbbdcb8
internal 2
added
- Functions: PERCENTILE, QUARTILE, their .INC and .EXC, MODE.SNGL and RANK.EQ 7920678
- Sources: results over a column keep its format; counts show grouped d59b5de
- Errors: an explanation too long for the context line says the rest on F1 e12837c
changed
- Demos: the sources recording reads a grouped count, a date and a MEDIAN f4d438d
- Sources: MEDIAN, PERCENTILE, QUARTILE, LARGE, SMALL and MODE stream 1bbd3fd
- Site: 012.dev.site is the site's and the install scripts' address 9cad411
fixed
- Notes: the hover box keeps clear of the status line, as the error box 8ce8600
- Site: a diagram's box stays filled when the color mode switches quickly 94c36ef
- Docs: two sequence diagrams draw again, a semicolon no longer ending their message ae77e55
other
added
- Docs: the word at the caret and F1's help in Writing a cell and Keys; the roadmap's section 2 ships fb360a2
- Notebooks: the word at the caret on the context line, and F1's help c07f987
- nushell: nu --ide-hover, and a command's help read from its hover e6a3731
- Live mode tape: a scripted agent (demos/liveagent) suggests, asks and is accepted; the README lists live mode 45e3759
- Docs: live mode, its keys, command line and architecture; the roadmap row shipped a8fea1c
- Live mode in the grid: 012 --listen, File > Invite an agent, suggestions to review c7a0f1b
- README: linked sources in the tour 26f7f33
- Demo: ten million rows of Parquet linked, sorted and summed 0c0663a
- Go to a row on a source's tab; keys of linked sources 0f199a6
- Live mode: agents attached to a session's room over a socket 8115302
- Pages just read aren't the ones let go; a page that can't be read isn't read over and over; docs of linked sources 617ab46
- Engine: proposals, a change made on a copy and applied whole or by cell 6f104fb
- Headless opens read linked sources in the workbook's folder; describe names sources 3f36d96
- Sources in the file: version 7, random edits, fixtures of v0.5.0 68d3ceb
- Linked sources in the UI: Link a source, a paged tab with a scrollbar, sort and filter pushed down, formulas answered in the background f4a6e16
- paged: a host answering formulas and pivot tables over linked sources by streaming them 1fe5ba0
- Linked sources in the engine: paged tabs, questions to a host, pivots over sources, format version 7 48e06e8
- Functions over linked sources: calls asked whole, answered by streaming 470224b
- fileio: Parquet files and SQLite tables or queries read in place as sources, sorted and filtered by streaming or in SQL 34eef09
changed
- Agents keep values' types: typed values in and out, write_table, column formats through notebooks efbed52
- Live mode: agents hear of settled suggestions through a resource they subscribe to 43f848d
- max-cells bounds what a function holding what it reads is given of a linked source, as the setting changes 2d81318
fixed
- Terminals: the screen waits for the terminal's background, so a light one never flashes the dark theme 669bab5
- A paste replacing merges respills past them b3554d3
- Blocked arrays close cycles over the cells they need 8c15188
- Screens: the palette counts the live-mode commands fa7d6be
- Arrays over a region's table whose cells they read are circular 31f8f17
- Commands on a source's tab are recorded in macros and wait for their turn to write in a room b60592b
- Terminals: the wait for the background ends its timer once it's known 7d50769
- A blocked array computed again has the arrays checked again 98cc855
- A region blocked but for arrays has them checked again fddc65e
other
- Notebooks: the word's hover drawn plain beside its muted summary; e2e and screens 2b56cff
- Live mode end to end: 012 --listen in libghostty with a real 012 mcp --attach, and its golden screens aececfd
internal 14
- Docs: the screen waits for the terminal's background in Themes 72b716e
- Golden screens: the palette counts the linked sources' commands 0e5ea6c
- UI: monochrome_test.go within 500 lines, and frame's comment within doclint ce72c55
- Notebooks: typing's pauses on a clock tests give, so no unit test waits on a debounce 61b082d
- Random edits: 3,000 seeds by default 3148d18
- doclint: agents are a feature; only an agent that changed something narrates 20d8b4d
- README: live mode's bullet names agents without doclint's phrase bb97a93
- Docs: linked sources in the architecture, tests and file versions 08111b3
- Linked sources: e2e test, golden screens and stills, a filter of the condition alone, Page Down as a sheet's 9f59fd1
- Speed gate and stress cases for scrolling and summing linked sources cac0494
- Sources stream to functions through batches a goroutine reads; stress benchmarks of formulas and pivots over ten million rows 9373b4d
- fileio: stress benchmarks of ten-million-row Parquet and SQLite sources 9a0dfce
- fileio: Parquet and SQLite values become cells in one place, for imports and sources 0173b14
- Sources: the API of Parquet files and SQLite tables read in place 35de47e
added
- 012 agent --install-mcp claude|codex|desktop ad47f19
- Docs: sharing a workbook over SSH, the room layer, its measurements 0ce529e
- Stills: golden screens drawn as PNGs for the docs, dark and light f5693f2
- Serve: sessions opening one file share its workbook 75f690f
- Demos: work in a notebook output's grid; chart the recipe's totals from it f8b00ba
- Notebook outputs: tables and records are 012's own grid 17f88db
- Notebooks: cells run as streams, rows arriving as the pipeline prints them 0806076
- Roadmap: SQL cells and connections ae0d15b
- Shared workbooks: golden screens, e2e with two ssh sessions, reading without color 110127f
changed
- Notebook streams: the output's grid takes arriving rows in place, widening its columns d1f060b
- Notebook UI: statements, comments and assigned names in the editor, runs and streams 02a7680
- MCP views: the grid in the result's _meta, the model's result without HTML f2207d5
- Screens: the palette lists the sharing commands; a stream's output as a grid 0dc4237
- Docs, skill and prompts: one 012 mcp for every workbook 17c7f50
- install-mcp: hosts named after the apps: claude-code, claude-desktop, codex 1ef0029
- MCP: one server for every workbook, and views in Apps SDK hosts ca67f3e
- Pipeline demo uses the sheet command; sizes cut like nushell's 0613ace
- Docs: stills of tracing, evaluate, tables, rules and borders 405058c
- Docs: notebook outputs as grids, their keys; roadmap row shipped c7a33bd
- Engine: steps know their author, operations their order, undo per author 3242d80
- WIP: notebook cells read as nu does: statements, comments, assignments 96fbece
fixed
- Notebook cells hand back every name they assign; one Prepare for the screen and --notebooks a164d67
- Shared workbooks: restoring kept work, cancelling dialogs, tests 8eba9f9
- Crash guard: Update returns the model after a panic 0f539e2
other
internal 9
- e2e: a changed golden screen prints its first differing HTML line f9a45d4
- Docs: a notebook cell's statements, comments and names in one rule bfe621b
- Docs: the shared budget as a still drawn from its golden screen, and the share recording 61c60fe
- Docs: notebook cells and ux as pictures; doclint refuses drawn screens afd55ed
- File fixtures: v0.5.0 cacf873
- Roadmap: SQL cells shelved beside other transports e2ec615
- Docs: notebook names without config-like examples bfff293
- View test: its variables are outside O12_, which names options c8b191b
- Rules: the last four rows of conditions are Excel's 4cf4964
added
- MCP Apps views: ranges and charts drawn in the chat 2621da1
- 012 mcp: an MCP server on a workbook file 7266433
- Agents with a shell: 012 describe, JSON results, set --dry-run, a Claude Code skill 2c3ad01
- Number formats show fractions; ROUND and number literals as Sheets has them 5f4d97f
- HTML export: a sheet, a range or a chart as a web page in 012's look a173bc8
- Docs: installing with the install script, publishing a release with the site 48a9e57
- Install scripts and make site-release: the release served from the docs site f5e685a
- Roadmap: section 6 Agents; notebook outputs as a grid 27054a2
changed
- README: web pages and agents in the tour; say one change, not undo, where the file keeps no history 1c69c95
- ROUND keeps exact inputs exact; Sheets' ROUND(1.23456789012345, 14) differs on purpose 7d292fe
- Functions follow Sheets where the Sheets corpus found them apart 441dcbc
fixed
- Arrays in a cycle together settle the same whatever order they're computed in 60442de
- Cycles are found from the formulas as written 6ae7be2
- Regions in each other's way show the same whichever order their rows arrive in 1e7ce1d
- Arrays: unmerging frees the arrays its merges blocked, and a cycle through an array gone is looked for again cbb411f
- Random edits: pointing Total elsewhere is one undo step d2f4592
internal 6
- Docs: a region's first rows widen its columns outside the undo history 2598df0
- File fixtures: v0.4.0 c342b1a
- Roadmap: Toward 1.0 shipped; Agents is section 4 afc812a
- Screens: the function list matches one more description for "if" c20d59f
- Sheets corpus: reasons for kept differences, import artefacts unconfirmed d3925e8
- Sheets corpus: record Sheets' results from the owner's import 434643b
added
- Screens: the palette and help list the notebook's new commands 699bda6
- Screens: the palette and help list the notebook's new commands c7e3b3a
- 012 get and set find tables by name and structured reference 3be58e8
- Docs: Tracing formulas page, keys, roadmap row shipped, tracing demo 0b04451
- Go to and the name box know tables 39d5568
- Docs: Tables page, structured references, suggestions and the XLSX and macro references 48dd84c
- Tables round-trip to XLSX as Excel tables aefc926
- Text fields move and delete by word; Ctrl+U deletes to the line's start b56c152
- Tables in the UI: Convert to table, Data > Table, banding and header roles, suggestions e4667c6
- Docs: Writing a cell in Notebooks, Tab in the keys, serve-shell and nu's questions; roadmap row shipped c4827b3
- Tables: named ranges with a header row, read by column name in formulas 57cabec
- Notebook: code cells highlighted, checked and completed by nu itself 199013d
- Engine: trace links with names, regions, spills and sources; formulas evaluated part by part c391102
- Docs: scripts, diff and merge in git, the command line 3a64634
- 012 get, set, recalc, export, diff and merge-driver 0e68606
- diff: compare and merge workbooks cell by cell 4c2e77f
- headless: read, set, recalculate and save workbook files without the screen 52f3f99
- A crash in 012 or 012 serve keeps unsaved work and reports where 14bbf83
- Recovery files for local sessions: kept in Settings.RecoveryDir, keyed by the file's full path, offered on start 593087d
- UI: notebook tabs, Jupyter-style, in package nbview d7774d2
- 012 --pipe --send ask|selection|sheet: quitting sends without asking 7dca66c
- Nushell module 012.nu: sheet, sheet view and sheet nu, installed by 012 nu --install-module 3004a42
- Go to accepts a region's name (nu.r1) and selects its table 415bbd4
- Docs: a Nushell section with pipelines, notebooks, types and a cookbook 8ad4014
- Golden screens: Data > Linked file, Follow the file among import locations 535c650
- Notebooks: docs, the demo tape, and the roadmap 7a46ce1
- Following files: live sources, Data > Linked file, Import's Follow the file 9c5103d
- Notebooks: a nushell prompt on the formula bar, regions run in the background 281252f
- Linked regions in the engine: live ops outside undo, saved as their source ce682be
- nushell: run a command with nu, tables in as variables and $in, a table back 2231a9a
- Regions: blocks of cells filled from outside the engine, stacking on notebook sheets 1ef8b3b
- Docs site: Docusaurus 3.10 over docs/, a landing page drawn as a 012 screen e71388b
- Pipelines: e2e tests with stdin piped, golden screens, the nushell page 5fb1b9f
- 012 - and 012 --pipe: tables in on standard input, out on standard output 2527713
- Pipe mode in the UI: standard input as a sheet, quitting sends a table 0cb910c
- Files: NUON and JSON tables in and out, tables from a stream d270e24
- Format > Number > Size: bytes shown as nushell shows file sizes 8ace0e6
- NUON: a nushell object notation codec, read a row at a time e3e1ac9
- Rules: data bars, icons and dropdown chips drawn; the panel makes every new rule 1fe2d7f
- Rules: top and bottom values, averages, duplicates, date periods, data bars, icon sets; rules move to other sheets; checked macro pastes and fills b602e6f
- Layout: vertical alignment and border colors in the style, files and XLSX; sheet-edge outlines 4793f2b
- Docs: dialog answers in the macro API, the hosts table, recording c763843
- Rules panel: macros record and replay edits, removals and moves 01489f7
- Find and replace: macros record and replay replacements 67f9f15
- Charts: sixel images on terminals without kitty graphics 2f52c82
- Vim: . repeat, registers, marks, cc and s, : history, :w!; keys held to preview with the kitty keyboard protocol 317b5c4
- Filter picker: package filterpick; macros record and replay its criteria 708ec66
- Locale: month and day names, Excel codes, filters and parse errors in the locale b820f46
- Sort bar: package sortbar; macros record and replay its choices 6116df1
- Docs and a demo: wrapped text, row heights, borders, merged cells 7867877
- Roadmap: nushell highlighting, completion and checking in code cells 81fef46
changed
- Notebook screens, e2e and docs as Jupyter's 0f432cf
- Notebook: Jupyter's look and ergonomics 275c3f2
- Plain text: an entry reads as it was typed until it's typed again, in the file too abb0201
- 012 get notes only outputs the file doesn't hold 37f5d99
- Scripts, diff and merge follow notebook tabs c4c579c
- Data > Shell holds the notebook's commands, so n still picks Named ranges; help and palette screens list the notebook 7b08a67
- Notebook: long names and read lists end in an ellipsis; lint and docs fixes a461650
- Notebook demos re-recorded; diagrams in the nushell pages; r runs a cell where Ctrl+Enter can't e1a9129
- Docs: notebook tabs in the nushell pages, keys, the file format, architecture and the roadmap f053732
- Docs: notebooks rewritten for notebook tabs 220a479
- Engine: notebook tabs and outputs sent to sheets replace command regions 9d1ef68
- Data commands take a region's table from a cell in the region 80df967
- Site landing page: the nushell tile shows the sheet command 41ba2bb
- Site navbar: the logomark alone, without a title beside it 2a32ad7
- ! opens the shell prompt only on a notebook sheet; elsewhere it starts an entry 0ca888c
- Data menu fits 30 rows with Linked file beside Shell regions 9e32828
- Regions: one engine for linked files and shell regions 5105a81
- Data menu: Shell regions hold Refresh region, so the menu fits 30 rows 09c1419
- Pipes and text downloads send the rows a filter shows a6c6b47
- Pivot editor: macros record and replay pivots made and edited 0c96387
- Named ranges picker: a narrow namesHost; its changes noted in recordings 633fc57
- README: eight demo tiles; charts, find and replace, JEV and formats shown on their own pages; locale in the tour b81dc55
- Docs: compact undo steps and the streaming .012 file 7e6ca6e
fixed
- Outputs sent to sheets: undo keeps what it puts back, formulas follow a region blocked or gone, arrays spill over regions 788cacb
- Cycles and arrays settle the same whatever order cells are computed in d3cfa07
- Regions: formulas follow a table that shrinks, and a label line moved onto old rows is cleared d0c7d95
- ui.Guard: a panic in Update, Init or a command quits cleanly; View's goes on to Bubble Tea 727d24f
- Site: Mermaid draws once the fonts load, measuring text in Plex Mono 93bb1be
- Imports without widths of their own fit their columns to the data 42069ef
- Sixel charts keep the text chart under an opaque image e893e7b
- Notebooks: sorting a region keeps its order; regions download as values 76a3015
- Criteria walks read every cell of their first grown chunk e29c1ef
- Borders: undo labels read 'all borders B2:C4', 'top border B2' 7ee6cd1
- Random edits make, rename, resize, style and remove tables and read them by column 5297cff
- Files: layout fields in the streaming reader's seeds; a key without a value refused 7631e49
other
- Tracing in the grid, a list to go to one, and Evaluate formula b64f7a1
- Tables: e2e test, golden screens (dark, light, high contrast), roadmap 8bb32b9
- Text charts: bars start on the axis line and end on tick lines 60343c3
- Notebooks: e2e tests with nu, golden screens, a monochrome cue abbe6bc
- Rules: golden screens, e2e and docs for bars, icons, chips and the new rules babeeed
- Layout: Format > Alignment, border colors, joints of double and thick lines, merges fe18f21
- Grid: borders drawn from a frame's cache; a laid-out stress shape 2def060
- Screens: the trip plan in the high-contrast theme b771362
- Screens: the palette lists the layout commands 50205c6
- Save streams into the temporary file a50df9d
- Stream the .012 file: cells read into the store and written from it cc3626c
- Grid: cell roles by pointer, not copied per cell e034dc5
- Layout: golden screens, e2e flows and polish 6aee51a
- Ask before a change too large to undo 7fbf097
- Undo: before-images in the store's compact form 36b0623
- Stress: clearing a full max-cells sheet, and the peak heap of open and save 0aa5dca
- Locale picker: a tag narrows the list, samples show a formula 411dbe1
- e2e: switching locales, LANG as the default; golden screens 87a9077
- XLSX: wrapped text, borders, row heights and merged cells both ways e39d5d9
- Screens: drop a duplicate high-contrast entry that recorded the bills fixture 6ce1133
- doccheck: doc paths in the Makefile, scripts and deploy configs too; roadmap row for compact derived cells 2d53d2d
- Docs: bounds figures in one home, stale doc paths fixed e30aba5
- Grid: wrapped text, tall rows, borders and merged cells d85e147
- Tests: high-contrast screens in their own file, monochrome states as separate tests 75ec2bb
- Roadmap: distribution and upkeep, accessibility and rule moves shipped 9245d80
- Validation on pastes and fills; rules move with cut and paste b4e042d
- Docs: the locale in the architecture, registries, formulas and macros; roadmap 06611e6
- CSV in the locale: fields read and written its way aeaf904
- File > Settings > Locale: a workbook's locale, typed and shown 4ce697c
- Formulas in a locale's syntax, translated at the edges 6cefe51
- Accessibility: a high-contrast theme, and every state readable without color 126ed86
- Docs: compact storage in the bounds, architecture and extending pages 6ef8460
- Undo budget: count a plain cell's before-image with the input made for it d1a4ab3
- max-cells: ten million by default, with a stress shape at that size bcafcef
- Sheet: entries and clears read formatting without making cells ad611c4
- Sheet: compact column storage behind cellStore e43841f
- Stress: heap per cell after opening a file, and the cost of a cell read 21e41c5
- Engine: wrapping, borders, row heights and merged cells a30d472
- Releasing: the XLSX check goes through File > Download f0d0faf
- Locales: the table, and numbers and dates typed and shown in each d4f9011
- Grafana: recent traces and a trace view in the runtime dashboard 6ff76bb
- stress-report: flag regressions against the last release's run 2205e51
- make dist: release archives built locally, and 012 version 77fde55
- Note the release tags after the history rewrite 24d313d
internal 66
- Following files: arrays and regions in each other's way 973bb2d
- diff and merge compare tables one by one, as regions; monochrome table test moves beside the tables' 3ab9a99
- Docs: Following files, the change stream, bounds of following cba59c6
- Charts: a narrow chartHost; macros record and replay inserts, edits, moves dffc28f
- Store: spilled cells and pivot results as slots, not whole Cells 5fe0162
- Docs: rules' moves with cut and paste in their own section, what validation checks as a list; themes link the cues rather than list them c42ecf3
- Open: plain numbers straight into their slots c1c3881
- Grid: bands of an unshaped sheet without asking each row; charts over tall rows tested a18133c
- Demos: the notebook and nu recipe recorded as Jupyter's tab; notebook.tape types less in the palette to stay under 1 MB 1a7238b
- File fixtures: v0.3.0 saved again with its table, the release being unreleased 85fd593
- e2e: the trip layout check waits for the grid's last rows 85d231f
- File fixtures: a table and formulas reading it by column in this release's workbook c7bb3fa
- gofmt 878353b
- Random edits: cellValue, clear of the steps test's shown fd7abaa
- Golden screens: the palette, help and Data menu with tables and tracing a68f1ee
- File fixtures: notebook tabs and outputs sent to sheets in this release's workbook; roadmap: cycles found from the formulas as written 7108899
- diff: Dump writes a sheet's fields in a function of their own 48aed36
- Roadmap: fixtures, random edits, the speed gate and crash safety shipped; cycles through several arrays ahead 0bba145
- File fixtures: entries that read against their format, in this release's workbook bfc9bd8
- make speed: baseline with arrays checked for cycles through their cells as they spill e35a897
- Random edits: undo, reopen and full recalculation checked after random sequences of edits 161167b
- e2e: nu's highlighting and a problem it found in golden screens; highlight and Tab with the real nu 9dc9f69
- diff: test merging one-sheet files with named ranges 22c4df3
- nushell: ask nu about a pipeline with --ide-ast, --ide-check and --ide-complete; answers pinned to nu 0.116's 2f398c0
- Testing: the crashtest tag without naming its variable f7a7184
- Testing: the e2e binary's crashtest tag 59bb69c
- Sheets corpus: 301 formulas whose results 012 matches with Google Sheets e5ab298
- make speed: frames and recalculation held to a checked-in baseline in make check dbce1a1
- UI tests: the stress benchmarks' fake terminal and color-scale sheet in an untagged file 49b7f26
- File fixtures: workbooks each release saved open and save back byte for byte cecd28e
- Roadmap: Toward 1.0 and Around the grid; Sheets and 1-2-3 as inspiration, not specs 92e5253
- Notebook e2e tests and golden screens; notebook keys in help and the palette 2cd4cbe
- Docs site: redirects keep old addresses; doccheck asks for them 0aeb75d
- Docs: Mermaid diagrams on the site and in place of ASCII art 1f8d902
- Roadmap: a TUI Jupyter for nushell replaces the grid notebook; sections renumbered d9a93a3
- Docs: nushell pages name settings only in config examples d79aabf
- Test: linked files resolve inside the served folder 70d38c3
- Telemetry: a live span for each linked file update applied 1336be9
- Following files: e2e test, golden screens, stress benchmark 766b432
- Docs site: where it's published and how to publish a build 168654e
- make site and make site-serve; the docs site page in contributing 1115a18
- Bounds: rendering numbers with shades kept on the stack 5dbb346
- Frames: shades and roles stay on the stack; a line's spans reused; ASCII widths counted at once fbafdc7
- Roadmap: toward multiplayer through streaming and shared SSH sessions; other transports stay shelved 13697c4
- Roadmap: the nushell notebook track 48b85b0
- XLSX differential: the excelize side reads vertical alignment; make test and check pass the stress datasets to tests 0d10bb8
- Roadmap: the rules, locale and layout rows shipped; Scale is what's ahead cb6d952
- Bars: glyph runs drawn with their roles' escape codes, kept for the frame a2e67f8
- Bounds: a frame of data bars and icons (BenchmarkFrame bars-8192x26) 1e399dd
- Tests: FuzzRead seeds of the new rules and displays; German month names and parse errors end to end e1ce9df
- Golden palette screens count the rule commands; e2e sort-bar macro sorts back instead of undoing 3cfea87
- Macros: an e2e test of recording the sort bar; answered dialogs timed as commands 30ba870
- e2e: kitty keyboard on and off, keys held to preview, vim repeat, registers, marks and :w! 4074c28
- Charts: test that sixel images decode to the composited plot b86ff79
- Prompts: a narrow promptHost 21cc23c
- Formula suggestions: package suggest behind a seven-method host 9c70055
- Shortcuts view: package shortcuts behind a four-method host 606abb1
- Choice bars: package choicebar behind a three-method host dd5cb3a
- Roadmap: the XLSX check in spreadsheet apps is the release checklist's; one line for the grid and its storage c987c91
- Docs: the .012 reader's costs and the one-format reasoning in Bounds of support; a table row that swallowed a paragraph 6ee5e18
- lint: refuse scratch-named files (zz_, tmp, scratch, dbg_) as well as binaries b9efe60
- XLSX: layout reading and writing split to keep functions simple 90892b2
- Bounds: what wrapped text, borders, heights and merges cost e80deb0
- History: a step's row heights allocated when a height changes b27d20b
- UndoCost costs the fewer of the range's cells and the rich cells 652244f
- Engine: borders packed in a byte, so a cell stays 256 bytes 3fd4dc9
other
- Demos: an arrays tape 6b2473f
- Macros and Excel pages: point at the page that holds the fact 3e632a4
- doccheck: the Docusaurus tree, and doc paths named in Go code caf9120
- Generators, tests and code name the new doc paths c0adea8
- The screen: the lines and every mode indicator; a menu path fix dc684ac
- README: install in one line, the rest in getting-started/install.md 81537cf
- Docs: one home per fact in the new tree; link text names pages 5f1e569
- Docs: links for the new tree 6cea749
- Docs: a Docusaurus tree of folders by concept 6fc38a0
- Pivot values take the column's common format; theme search by dark or light filters by kind 6897a31
- Untrack two committed test binaries; lint refuses binaries and files over 2 MB 943b6ef
- Document how arrays are computed and spilled, their bounds, and mark them done 5b9b9b3
- Look for spilled cells to draw only on sheets with spills d7fd93f
- Split the docs checks and the config overview under the complexity limit fba67d1
- Demos: tapes for rules, pivot tables, vim keys, macros and themes 082e5a3
- config.md: an overview table before the option reference 26b9998
- README: a landing page; docs show the recordings that teach them e231576
- architecture.md, extending.md: describe the code as it is 767710f
- Contributor docs: the docs checks, tapes and where facts go 24a404b
- files.md: import, Excel, saving and the format as separate sections e389ff4
- ROADMAP: what's ahead, then one line per shipped feature acea835
- keys.md: sections by task, every bound key listed 09b05a9
- Check the docs against the code and each other b94d6e3
- Keep evaluation frames and snapshot cells as small as before arrays ab4a7d9
- Untrack a compiled test binary and ignore *.test 5e5646f
- Rules: e2e test, golden screens and docs 9993cf1
- Show a cell's note on hover over its checkbox or dropdown mark too 4cdeb47
- Note rule edits in macro recordings, and list Clear conditional formats a26fb6b
- Draw rule shades from cached escape codes, and find percentiles by selection c1ab15f
- Test spills end to end and record their golden screens 4c6ea12
- Spill a range that is a cell's whole formula, as Sheets does 68b9324
- Document arrays, spills, LET and LAMBDA, and regular expressions 7497bb7
- Keep arrays data-proportional and the evaluator's hot paths as fast b1aa3d3
- Add a stress shape of 1000 FILTER and UNIQUE arrays over 8192 rows 2fc0c66
- List rule screens, and order rule menu items as Sheets does 87ad117
- Read and write conditional formats and data validation in XLSX 8365022
- Write spills to XLSX as Excel's dynamic array formulas c47bcc3
- Chart types and options: e2e test, golden screens, docs 6490bfa
- Chart editor: one type chip on narrow screens 79791ff
- Show spilled cells and refuse editing them 998955f
- Notes and protected ranges: e2e tests and golden screens 38c0949
- Add SPLIT, REGEXMATCH, REGEXEXTRACT and REGEXREPLACE 6c72003
- Add LET, LAMBDA, MAP, REDUCE, SCAN, BYROW, BYCOL and MAKEARRAY fdaa8e9
- Draw and edit conditional formats and data validation 4358f56
- Compute arrays and spill them from the formula's cell b2538b5
- Parse array literals, LET and LAMBDA names, and LAMBDA calls 81f1a2a
- Pivot editor: Value name prompt, shorter hints; golden screens; roadmap feb4e83
- Document notes and protected ranges; mark them done in the roadmap b452cd4
- Chart editor: stacking, trend line, and an axis and legend bar e34b723
- Draw area, scatter, stacked charts and axis options c3be4a3
- Chart area and scatter types and chart options in the sheet 886c08c
- Replace current sheet removes charts that no longer fit the new data 784e49c
- Keep the excelize reference importer under the complexity limit d181caf
- Notes as XLSX comments both ways; protected sheets noted on import 351734b
- Vim p/P carry row formats; cutting a block leaves its cells plain ec1f34f
- Add conditional formats and data validation to the engine e458001
- Notes and protected ranges in the UI 87f47fe
- Pivot tables: column subtotals, renamed values, Sheets' blank label aebff00
- Notes on cells and protected ranges in the engine 1a8430d
- Note that releases are tagged from v0.1.0 fb9d110
- Mark section 1 done and list its three small follow-ups 393c1f7
- Record the Google Sheets check of 012's XLSX output 799bdc2
- Describe moveFormats by what it does be90933
- Say why a key whose check failed is kept, as the code is d7eea95
- Document formats travelling with copy and move, import location details and traces into hidden sheets 75179da
- 012 serve: open a file named on the ssh command line, and keep unsaved work on shutdown or idle timeout 35535fd
- Say when a trace finds only cells on hidden sheets, and how to show them 07daf20
- Import location: new sheets go after the current tab; Replace current sheet keeps its charts ed04383
- Describe the bounds of support as they are, and run doclint in make lint 3c8fa3d
- Say why array expressions in range arguments stay #VALUE! 8fe2d27
- Carry column and row formats with copy, cut and move, as Sheets does 20aee77
- Mark the line that states the doclint rule 23151fe
- Write down the no-broken-windows rules 852f611
- Add doclint and fix what it finds outside limits.md 2a8d678
- Mark a worksheet whose filter hides rows as in filter mode 909d761
- Add staticcheck to make lint and clear its findings ec40802
- Name renamed sheets by their new names in XLSX formulas and defined names 93e2fc4
- Check a new JEV API key with one test call and say how it went; golden screens for it and Save as replacing 19676c3
- Keep frozen panes and filters in XLSX, both ways 8bd3c19
- Ask before Save as or :w replaces another existing file d23e438
- Re-infer formulas reading blanks of a newly formatted column, row or sheet at once 5f1f93d
- Add make check: gofmt, vet, lint, tests, oracle and e2e before a push 23f0bf0
- Read a range where one value is wanted as the cell in the formula's row or column f3fe273
- Move the OTLP close tests to their own file, under the length limit dd947e9
- Don't let a dead inherited OTLP endpoint slow quitting 902e724
- Collect the roadmap ahead: hardening, Sheets features, scale, macros and keys, upkeep 82eb79a
- Document nested spans 1997ea4
- Write a span's ids to the JSON log with one allocation de03a0c
- Nest the UI's, imports' and sessions' spans 8a7c5a4
- Time recalculations and pivot refreshes in their workbook's trace 503499f
- Nest spans through a per-owner Trace and explicit Parent handles 801c083
- Say which palette the recordings use da01106
- Record the demos in Catppuccin Mocha with an isolated config aab8f07
- Group the module's imports apart in the function library b3b1878
- Document the function library's package and its boundary c247b57
- Add ranges up in the engine and walk lookups with a cursor 719e2be
- Group the module's imports apart from the others c02df3c
- Document the UI's hosts and the packages components moved to fd19d91
- Test an open menu against a fake host b4931c8
- Move the import runner into internal/ui/transfer f28e91a
- Move the function library into internal/functions 46e1e3a
- Move values, formats and entry parsing into internal/value cb54b97
- Give the macro manager a narrow host 31fec52
- Give the pivot editor a narrow host 829df5d
- Give the menus a narrow host and move the theme picker out 897a814
- Move the tab strip's layout into internal/ui/tabstrip 5f3f9f5
- Move the find bar into internal/ui/findbar d6549fc
- Move the command line into internal/ui/cmdline f3818a8
- Move the picker into internal/ui/picker 4e8f94e
- Move the edit line into internal/ui/lineedit c0462c2
- Move the overlay contract into internal/ui/overlay fe630b6
- Add criteria and lookup shapes to the stress benchmarks d0ad2d8
- Total selection statistics per block, and document the merge 100955b
- Document Step A: the grid, its bounds and what cost the grid 0fdf6cd
- Read the cell map for ranges over a quarter of the sheet's cells ef8c0a7
- Keep pivots, big selections and XLSX imports as fast as before cf897e2
- Trim the costs the benchmarks showed, and more edges by index fb81461
- Keep sort, undo and store tests under the complexity limit 877f0be
- Golden screens and an e2e test at the corner of a million rows 4474bac
- Stress a sparse million rows in the UI 7ba2b23
- Search lookups and criteria through the cells their ranges hold 0273b4f
- Guard every command against grid-sized work 3953e11
- Format the whole sheet once 460847c
- Sort only the rows that hold cells 3d2692a
- Record the selection statistics, JEV, frame rate and depth limits bfe10f8
- Port hidden sheets and missing-sheet formulas to the new XLSX code 59bfdb3
- Imports and exports: max-cells budget, column and row styles f571a69
- UI at a million rows: wider row numbers, filtered stepping by index 08ee498
- Raise the grid to Excel's 1,048,576 rows by 16,384 columns 1c459ce
- Publish the collector's health check on localhost:13133 5e3e3b5
- Document the XLSX reader and writer: limits, numbers, fuzzing 71a503a
- Test hidden sheets, sheet suggestions and the import location end to end, with golden screens b19443e
- Write XLSX with archive/zip instead of excelize e5c66aa
- Keep the evaluation depth count off the hot path 7ea2199
- Bound shared formula expansion and look up column styles once 627e90e
- Ask where File > Import puts the data: new sheets, the current sheet or the spreadsheet c867e16
- Import XLSX with 012's streaming reader instead of excelize b704e10
- Add a streaming XLSX reader on archive/zip and encoding/xml 2d9d5cf
- Suggest sheet names in formula autocomplete, pointing into the sheet after 625fe58
- Bound evaluation depth by putting off cells past it 7140572
- Cap formula nesting at 1024 levels in the parser 00faa1f
- Hide and unhide sheets: tab menu Hide sheet and View > Hidden sheets 5a0b9b1
- Read ranges by what they hold, not their area c114f32
- Ask Bubble Tea for 120 frames a second cedd61e
- Gather JEV answers for a frame and recalculate them together 09e6bb6
- Recalculate only the formulas waiting for a JEV answer a0fb6e4
- Sum selection statistics from per-column block aggregates ce91bf3
- Export formulas naming a missing sheet to XLSX as their values, with a note 97caaa7
- Benchmark XLSX imports of full sheets and report peak heap per cell e899946
- Compute PRODUCT, SUMIF, SUMIFS and SUMPRODUCT in decimal arithmetic cb58592
- Note how macros behave in 012 serve sessions 9d769f2
- Test recording the fill handle and a fitted column, both ways 0c85478
- Format the script tests 0084f48
- Stop a macro's script when its program is gone, so no goroutine outlives a session 8368e2a
- Document macros: a user guide and API reference, keys, files, patterns, architecture and limits 9dc8ad4
- Document pivot and frequency tables 08ad294
- Recompute a pivot when a cell in its way is cleared fbc938e
- Document the config file, themes and API key setup 1429607
- Run jev-api-key-command only when a sheet first asks JEV 710b5e6
- Test pivots end to end and record their golden screens 5919132
- Test config, themes and the API key end to end c97c9c9
- Fix scheme contrast by blending toward the text color 7e2d997
- Benchmark replaying a 1000-action macro and a script's calls under -tags stress; read small ranges without scanning the sheet 74a7125
- Add golden screens for the macro menu, recording, manager, errors and trust question fc0deec
- Edit macro scripts only where an editor is allowed, and test recording and replay end to end 11d6dfd
- Register 012 serve's settings; keep serve's entry points compiling 446a78d
- Route :w and :e through the File menu's save, open and download paths 6f25f2b
- Read settings from the config file; keep the API key out of files 7e69e75
- Benchmark pivots over 8192 rows and group without allocating keys 4f28187
- Document vim keys and mark the roadmap item done af4eda8
- Record, run and manage macros under Data > Macros, with a trust prompt for files made elsewhere a2b5f24
- Test vim keys through libghostty and record their screens cc5f068
- Show the keys that finish a vim sequence, and size completions to fit 116aa5e
- Add Data > Pivot table, the pivot editor and Column stats d7dad19
- Fit new pivot sheets' columns and list a pivot filter's values a40bf99
- Tidy the oracle module for the dependencies wish brought in 4043de8
- Include the SSH session benchmark in make stress bc233dc
- Save over a file deleted since it was opened without asking 736f1f6
- Document 012 serve: setup, security model and limits 2c61af0
- Measure concurrent SSH sessions under -tags stress 92ff132
- Add terminal color schemes as themes, with full-width bar roles 13d59e8
- Add a credential store for the JEV API key 3605d71
- Plan raising the grid: data-proportional operations, a cell budget, compact storage 36bfe92
- Test 012 serve end to end through the system ssh client in libghostty 69c6ae5
- Add optional vim keys with a : command line 67089f7
- Add 012 serve: sessions over SSH with charm.land/wish/v2 59d4948
- Add pivot tables to the engine as derived sheets 901e837
- Add a central config file with a typed option registry 93d4cf7
- Add the macro package: a Starlark API for scripts, recorded actions as source, step limits and cancelling 4c0bf00
- Keep macros with the workbook: undoable list, file field, and an undo step that stays open across calls 66366c6
- Resolve file names through a root that can confine them to a directory 69ce041
- Cap undo history by estimated bytes as well as steps 344feb4
- Mark VHS demos done; they render locally, not in CI 726dffd
- Show demo recordings in the README 9a70f51
- Note the last full stress run in the limits doc 358db85
- Size the lexer's token slice from the formula's length e5a0be8
- Free a chart's old image before resending it, so it fills its new size cb8e906
- Give workbooks their JEV source with SetRemote instead of a global 4cdc766
- Document the formula and numfmt packages and where the engine can grow a064c75
- Split the remaining complex engine functions into named steps 5869f19
Older commits in this release aren't listed.