Repository navigation
v0.3.0
Audit-pass cleanup release. 12 findings addressed across init.lua, keymaps.lua, cell_engine.lua, commands/create.lua, notebook/jupytext.lua, ui.lua, and tests/integration_spec.lua. All 9 closed issues (#1–#9) verified intact. 266 tests pass.
Added
molten.virt_text_max_linessetup option: The virtual-text output cap (introduced in v0.2.0) is now user-configurable. Default remains500. Example:require("pyworks").setup({ molten = { virt_text_max_lines = 1000 } })vim.validateparameter checks on publiccell_engineAPI (run_cell,configure,count_cells,get_cell_positions) per CLAUDE.md mandatePyworksRunCell/PyworksRunCellAdvanceadded to the integration test expected-commands list
Fixed
molten_virt_text_max_lineswas set in two places — de-duplicated so both call sites read from a single config source- Empty notify prefix (
"" .. json_err) in:PyworksNewPythonNotebookremoved - Filename validation gaps in
:PyworksNewPythonNotebook: directory traversal (..) and Windows-reserved backslash (\) now consolidated intovalidate_filename processing_buffersstuck on error in jupytext reader:read_notebookbody wrapped inpcallso the per-buffer flag is always cleared- Dead
search_flagsvariable incell_engine.prev_cellremoved
Changed
- Hot-path
concat_virt_text: switched from string-builder loop totable.concat. Called every 150 ms during cell-completion polling — O(n²) → O(n) on large output <leader>jvand<leader>jguse API calls instead ofnormal!: visual-select-current-cell and go-to-cell-N now work from terminal mode.<leader>jvdelegates boundary detection tocell_engine.find_cell_boundaries- Raw
vim.notify(..., ERROR)incommands/create.luareplaced withnotifications.notify_errorfor a consistent error pathway create_floating_windowwidth is now adaptive: clamped tomin(opts.width, columns - 4)so:PyworksHelpremains visible on narrow terminals
Removed
- Dead
M.healthininit.lua::checkhealth pyworksalways routes throughlua/pyworks/health.lua; duplicate was unused
Full Changelog: v0.2.0...v0.3.0