Repository navigation
Release v0.19.0
Changes since v0.18.0.
This release is about the notebook. Cells can be reordered and undone, the shortcuts match Jupyter, outputs tell you when they no longer match the code that produced them, and the editor now completes column names. For kernel users the legacy flowfile global is finally removed. Default kernel images move to 0.6.0. No catalog schema migration required.
Notebook UX improvements
Catalog notebooks and Python Script node notebooks got a single, coordinated overhaul (#748, #749, #750) so they behave like an editor you already know. Together, the notebook now has:
- Drag-to-reorder cells, output included, with
Alt+↑/Alt+↓from the keyboard. Structural edits are locked while a run is in progress. - Undo/Redo for structure: a toolbar control reverts the last 50 insert, delete, and move operations, separate from
Cmd/Ctrl+Zon text. - A per-cell action menu (insert above/below, duplicate, collapse code, collapse output) replacing the old button row. Collapse is session-only and never touches the saved notebook.
- Jupyter-matched shortcuts:
Shift+Enterruns and advances,Cmd/Ctrl+Enterruns in place. This is reversed from before. Double-clicking run no longer executes twice. - Stale outputs labelled, not hidden: an edited cell keeps its output marked "Code changed — rerun", cells downstream get "Earlier cells changed — rerun", and a kernel switch or reset marks results "Previous session". Discarded runs can no longer overwrite current output.
- "Reset session" replaces "Restart": clears this notebook's variables without stopping the kernel, and reports failures instead of silently succeeding.
Column-name completions
Both notebook surfaces now complete column names (#752). Open a quote where a column belongs — orders.select(", pl.col(", orders[" — and the popup lists that frame's columns with their dtype and where the names came from.
- Known before you run: catalog tables read via
flowfile_ctx.read_catalog_table, Python Script node inputs, and plainselect/rename/drop/with_columnschains are inferred statically from the source, so completions work on a cold kernel. - Known after you run: once a cell has executed, the kernel reports the real schemas of the DataFrames in the notebook's namespace, labelled last run. Results minted by a previous session or a reset are rejected rather than shown as current.
- No guessing: when the editor cannot tell which frame you mean, it offers nothing. LazyFrames in the namespace are reported without resolving their plan, so completion never triggers a scan.
- Signature help no longer pops up while you're typing inside a string.
This needs kernel image 0.6.0, which adds the dataframe_schemas code-intelligence endpoint. Older kernels keep everything else working and simply fall back to the static inference.
For kernel users: the flowfile global is gone
Only code that runs on a kernel is affected — catalog notebooks and Python Script nodes. If you don't use kernels, nothing changes.
Kernel code no longer gets a flowfile global; anything still calling flowfile.read_input() raises NameError. It was deprecated in v0.10.1 (#443), so this just finishes the removal. Replace flowfile. with flowfile_ctx.. display and explore are now bare names too, so display(df) works with no prefix. Autocomplete, help panels, and code export were updated to match.
Other
- Alteryx trademark disclaimer: added an "Alteryx is a trademark of Alteryx, Inc.; Flowfile is not affiliated" notice across the importer's surfaces (import dialog, CLI help, docs, README) and reworded the import buttons to "Import Alteryx workflow…" (#744, #746).
- Alteryx importer: AMP-engine
.yxdbfiles are detected and refused with a clear "how to re-export" message (#747). - Docs: fixed invisible mobile search in light mode (#743).
- Deps:
browserslist4.28.2 → 4.29.0 inflowfile_wasm(#742);@codemirror/languageadded to the frontend for the string-aware completion context.