Releases: hewliyang/headless-spreadjs
Releases · hewliyang/headless-spreadjs
v0.0.9
Features
- Hooks — Extensible hook system for CLI and SDK consumers. Hook files export a default function receiving a
HookAPIinstance withon()forpreCommand,postCommand,onOpen,preSave,postSaveevents. Auto-discovered from.headless-spreadjs/hooks/(local or global). Disable with--no-hooksorHEADLESS_SPREADJS_NO_HOOKSenv var. - CLI:
hsx watch— Live file-watching UI for spreadsheet changes. - CLI:
setnow supports drag-and-fill for series expansion. - CLI:
set,clear,copynow track mutated ranges for fine-grained hook callbacks. - CLI:
copywith--copy-touses a helper sheet when source/dest overlap on the same sheet, preventing write-before-read smearing. - Example hooks:
financial-colors,hardcode-lint,no-gridlines.
Fixed
- CLI: Cache invalidation for read-only paths when
onOpenhooks ran, preventing hook side-effects from leaking into subsequent requests. - CLI:
--no-hooksflag now propagates into isolated daemon eval child processes. - CLI: Cross-sheet
--copy-tonow clears destination data/style when source is blank.
Docs
- Updated
skills/spreadjs/SKILL.mdwith modern Excel / dynamic-array formula guidance forhsxworkflows. - Updated
README.mdwith hook system documentation.
v0.0.8
Fixed
- CLI:
setnow expands newly created sheets before writing, preventing silent data loss on non-active sheets beyond SpreadJS' default200 × 20grid. - CLI:
evalandrange(ref)now expand newly created target sheets before access, fixing silent drops and truncated results on off-grid writes. - CLI:
sheet createnow initializes new worksheets at full size so later commands behave consistently with existing sheets. - Added regression tests covering non-active sheet writes and
evalaccess beyondU201/V202.
v0.0.7
Features
- Enable dynamic-array formula support (
allowDynamicArray) by default — unlocks FILTER, SORT, UNIQUE, SEQUENCE, VSTACK, HSTACK, MAP, REDUCE, and other spill-based functions.
v0.0.6
Features
- Daemon mode —
hsxnow runs a background daemon by default to avoid re-initializing SpreadJS on every command. Auto-starts on first use, caches open workbooks (LRU), auto-exits after idle timeout. Commands:hsx daemon start|stop|status|flush. - CLI:
hsx screenshot— render sheets to PNG via Playwright (optional peer dependency). - CLI:
hsx diff— compare two workbooks cell-by-cell, with--epsilonfor floating-point tolerance. - CLI:
hsx deps— show formula dependency graph for a cell reference. - CLI:
hsx csvnow supports--mode value|formula|both, plus--formulasshorthand for formula-focused exports. - CLI:
hsx evalgains arange(ref)helper for easy A1-notation cell access in scripts.
Fixed
- CLI:
setnow properly clears existing formulas when overwriting with plain values. - CLI:
setstyle bugs and performance improvements. - CLI: Range expansion for set operations.
- CLI: CSV argument parsing and daemon auto-flush on interval.
- CLI: Screenshots now include column and row headers.
Chores
- Moved Playwright to an optional peer dependency.
- Renamed
skill/toskills/for CLI discovery conventions. - Added
AGENTS.mdwith project overview, structure, dev commands, and release workflow.
v0.0.3
Features
- CLI: Added
--version/-vflag to print the package version.
Fixed
- CLI: Extracted fatal error handling into a shared
reportFatalErrorhelper, removing duplicateduncaughtException/unhandledRejectionlogic. Errors now propagate frommain()via.catch()instead of a redundant innertry/catch. - CLI: Long error messages are now truncated (with
...) instead of being silently replaced. The generic "unsupported features" fallback message is only used when the error looks like a known SpreadJS canvas/shape/chart/form-control failure. - Shims: Canvas dimensions are now synced — the backing node-canvas is recreated when the element's
widthorheightchanges, preventing stale context bugs. - Shims:
toBlobcallback is now dispatched viaqueueMicrotaskto match the browser-spec async timing. - Shims: Removed blanket
as nevertype casts in canvas shim; all canvas method calls now use precise overload-matching types from thecanvaspackage.
v0.0.2
Features
- CLI (
hsx) — New command-line interface for working with Excel files directly from the terminal. Supportsget,set,clear,copy,eval,search,info,csv,create,sheet,resize,rows-cols, andobjectscommands with A1-style range addressing and formatted table output.
Chores
- Added AI skill definition (
skill/spreadjs/) with TypeScript declarations for LLM-assisted spreadsheet workflows. - Moved tests from
src/test/to top-leveltest/directory with dedicatedtsconfig.json. - Added typecheck step for tests in CI.
- Cleaned up types and formatting.
v0.0.1
Full Changelog: https://github.com/hewliyang/headless-spreadjs/commits/v0.0.1