Skip to content

Latest commit

 

History

History
1724 lines (1099 loc) · 71.4 KB

File metadata and controls

1724 lines (1099 loc) · 71.4 KB

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

v6.3.3 (2026-08-19)

Bug Fixes

  • grapher: Share argument-subgraph ref walks with provenance (#540, 3decc35)

v6.3.2 (2026-08-19)

Bug Fixes

  • grapher: Retain is_target nodes in identity-transit compression (#538, 1544590)

v6.3.1 (2026-08-19)

Bug Fixes

  • exporter: Skip shared helpers for OFFSET, INDEX, and 1x1 ranges (#536, 1e8b9c9)

v6.3.0 (2026-08-19)

Features

  • Intern parameterized formula AST shapes for parse, eval, and codegen (#517) (#534, c452449)

  • evaluator: Compile interned formula shapes (#534, c452449)

  • grapher: Intern parameterized formula AST shapes (#534, c452449)

  • scripts: Measure shape eval and codegen wins (#534, c452449)

v6.2.0 (2026-08-19)

Features

  • grapher: Record INDEX targets in dependency provenance (#532, c93ed9f)

v6.1.2 (2026-08-18)

Bug Fixes

  • grapher: Isolate argument-subgraph memo and cover OFFSET reuse (#530, 948cc56)

Performance Improvements

  • grapher: Reuse argument-env expansion across formula variants (#530, 948cc56)

v6.1.1 (2026-08-17)

Performance Improvements

  • grapher: Cache _qualify_fragment defined-name regexes (#529, 8a2396f)

v6.1.0 (2026-08-12)

Bug Fixes

  • grapher: Narrow RangeRef.element return after intern (#522, 29a62a6)

  • grapher: Weak intern pool and cheap uncond adjacency check (#522, 29a62a6)

Features

  • grapher: Intern GuardExpr trees and add is_guarded (#522, 29a62a6)

  • grapher: Intern GuardExpr trees and add is_guarded (#491) (#522, 29a62a6)

v6.0.0 (2026-08-12)

Bug Fixes

  • grapher: Require CellKey when loading graph cache nodes (#524, da8fbdb)

Refactoring

  • Remove multi-member occupancy from DependencyGraph (#524, da8fbdb)

Testing

  • Relax unpickle peak/current bound after occupancy removal (#524, da8fbdb)

v5.2.0 (2026-08-12)

Bug Fixes

  • core: Avoid grapher import in formula_shape summary (#518, 884bb28)

  • core: Correct mean_instances_per_shape and share summarize helper (#518, 884bb28)

  • grapher: Document keep_formula_cache load path (#519, fdaa645)

Features

  • core: Fingerprint parameterized formula AST shapes (#518, 884bb28)

  • core: Validate parameterized formula AST shape interning (#517) (#518, 884bb28)

Performance Improvements

  • grapher: Load formulas and caches in one fastpyxl pass (#519, fdaa645)

v5.1.6 (2026-08-11)

Bug Fixes

  • grapher: Exclude ROW/COLUMN address-only refs from dependency edges (#516, 144afc3)

Code Style

  • Fix import formatting after ROW/COLUMN dep exclusion (#516, 144afc3)

v5.1.5 (2026-08-09)

Bug Fixes

  • grapher: Cut DependencyGraph unpickle peak memory (#514, 95f865a)

  • grapher: Cut DependencyGraph unpickle peak memory (#513) (#514, 95f865a)

Testing

  • grapher: Avoid monkeypatching reduce_ex in legacy load test (#514, 95f865a)

v5.1.4 (2026-08-08)

Bug Fixes

  • series-bindings: Allow empty shards and union concept schemes (#512, cf50a1d)

v5.1.3 (2026-08-08)

Bug Fixes

  • core: INDEX row/col 0 returns whole axis (#509, 1f16849)

  • core: INDEX(array, 0) returns whole column/row (#502) (#509, 1f16849)

  • evaluator: Satisfy ty on value-mode INDEX args (#509, 1f16849)

Code Style

  • evaluator: Inline INDEX reference predicate (#509, 1f16849)

v5.1.2 (2026-08-08)

Bug Fixes

  • core: Align INDEX zero selectors and computed-array path (#503) (#510, 7ef28f1)

  • core: LOOKUP skips lookup-vector errors (#504) (#508, c3e4a4f)

  • core: LOOKUP skips lookup-vector errors; array arithmetic preserves them (#508, c3e4a4f)

Testing

  • evaluator: Expect array arithmetic to preserve embedded errors (#508, c3e4a4f)

v5.1.1 (2026-08-08)

Bug Fixes

  • grapher: Infer MATCH extent for INDEX((range<>0),0) (#507, d18e838)

  • grapher: MATCH extent for INDEX((range<>0),0) first-nonzero pattern (#506) (#507, d18e838)

  • tests: Use constant Literal forms in #506 MCVE (#507, d18e838)

v5.1.0 (2026-08-07)

Features

  • grapher: Element-aware guards for array-context IF (#483) (#495, 7b0eea6)

Performance Improvements

  • core: Hand ndarray operands straight to the array operator paths (#505, 6f689eb)

v5.0.0 (2026-08-07)

Features

  • grapher: Drop direct_sites_formula, make raw formula storage opt-in (#500, 8a03de3)

  • scripts: Add a repeatable graph memory measurement harness (#490) (#501, 35ebe7a)

Performance Improvements

  • grapher: Share one empty metadata mapping across nodes (fixes #493) (#499, 27287d0)

Breaking Changes

  • grapher: EdgeProvenance.direct_sites_formula is removed, and FormulaRewrite no longer carries before_formula / after_formula -- the compression audit trail reports normalized formulas only. Node.formula is now None unless the graph is built with create_dependency_graph(..., store_raw_formula=True), which TACO range compression requires. Graph caches written by schema 3 are rejected and rebuilt.

v4.1.2 (2026-08-07)

Bug Fixes

  • grapher: Resolve INDEX empty-arg vectors for MATCH (fixes #497) (#498, e892363)

Documentation

  • tests: Drop stale xfail note from extraction_basics docstring (#494, 9073405)

Refactoring

  • grapher: Share collapse/densify skeleton across numeric domains (#489, b016196)

Testing

v4.1.1 (2026-08-07)

Bug Fixes

  • grapher: Avoid ZeroDivisionError in _div_numeric_domains (#488, 194ab3d)

  • grapher: Isolate memoized candidate static-ref sets (#485, 3f68255)

Performance Improvements

  • grapher: Memoize candidate static-ref walks (fixes #484) (#485, 3f68255)

v4.1.0 (2026-08-07)

Bug Fixes

  • grapher: Allow optimal inline of bodies with guarded outs (#481, 40361bb)

Features

  • grapher: Extract guards from conditionals embedded in expressions (#481, 40361bb)

Refactoring

  • viz: Share SCC condensation ranking between grapher and exporter (#482, 75cc154)

v4.0.2 (2026-08-07)

Bug Fixes

  • grapher: Use dict LRU so AddressKey and str share cache entries (#479, 12f2ff4)

Code Style

  • Format edge-provenance changes and silence ty on rejection test (#480, 6145a05)

  • Reformat after rebase onto IntFlag main (#480, 6145a05)

Performance Improvements

  • grapher: Flatten _edge_extra into typed _edge_provenance (#480, 6145a05)

  • grapher: Flatten _edge_extra into typed _edge_provenance (#474) (#480, 6145a05)

  • grapher: Slots=True on Node with address-keyed derived-field LRU (#476) (#479, 12f2ff4)

  • grapher: Use slots=True on Node with address-keyed LRU (#479, 12f2ff4)

Testing

  • grapher: Avoid ruff B010 in Node slots attribute check (#479, 12f2ff4)

v4.0.1 (2026-08-07)

Performance Improvements

  • core: Slot CellKey, RangeKey, and UnionKey (#478, 47e073f)

v4.0.0 (2026-08-07)

Features

  • Store DependencyCause as IntFlag bitmask (#477, 9672528)

v3.21.2 (2026-08-07)

Performance Improvements

  • dynamic-refs: Serve cached refs in bulk during env expansion (#465) (#471, 50fb962)

v3.21.1 (2026-08-07)

Bug Fixes

  • dynamic-refs: Gate consumed-leaf bookkeeping on persistent cache (#463) (#464, fa5722c)

  • grapher: Conjoin nested conditional guards into AND edge guards (#115) (#470, e6e7607)

Chores

  • Clean up stale LIC DSF example files (#468, 0937bd8)

  • deps: Upgrade ruff to 0.16 and format Markdown code blocks (#466, ce029f3)

v3.21.0 (2026-07-27)

Features

  • exporter: Omit compute_all when output bindings cover targets (#461, 3b78ee8)

  • series-bindings: Enforce input.domain on generated setters (#462, c7c6d0a)

  • series-bindings: Signal when read_*_range is omitted (#459) (#460, 8939626)

  • series-bindings: Warn when read_*_range omitted for non-contiguous selection (#460, 8939626)

Testing

  • series-bindings: Expect omitted range warning for grouped matrix (#460, 8939626)

v3.20.2 (2026-07-27)

Bug Fixes

  • series-bindings: Honour exclude_rows/columns in read_*_range (#456, 98e3e09)

  • series-bindings: Honour exclude_rows/columns in read_*_range (#453) (#456, 98e3e09)

Code Style

  • series-bindings: Format exclude-aware range reader tests (#456, 98e3e09)

v3.20.1 (2026-07-27)

Bug Fixes

  • exporter: Re-export public read_* helpers from generated api.py (#454) (#455, 7a1af13)

  • exporter: Re-export read_* helpers from generated api.py (#455, 7a1af13)

Code Style

  • exporter: Format api readers import wrapping (#455, 7a1af13)

v3.20.0 (2026-07-22)

Features

  • series-bindings: Add series-level exclude_columns (#450, b495238)

v3.19.1 (2026-07-22)

Bug Fixes

  • exporter: Keep public cells out of OptimalCompression (#449, 09738ec)

  • exporter: Keep public/series-bound cells out of OptimalCompression (#449, 09738ec)

Documentation

  • Clarify OptimalCompression preserve contract (#449, 09738ec)

v3.19.0 (2026-07-21)

Features

  • series-bindings: Add constant direction for reader-only graph leaves (#442, f38fc10)

v3.18.0 (2026-07-20)

Code Style

  • Format test_versions schema version set (#441, 7780a20)

Features

  • series-bindings: Call compute helpers by dims; move output leaves (#441, 7780a20)

  • series-bindings: Call compute helpers by dims; move output leaves (#435) (#441, 7780a20)

v3.17.1 (2026-07-20)

Bug Fixes

  • series-bindings: Align reader Google/Numpy docstrings with signatures (#440, 768cda6)

v3.17.0 (2026-07-20)

Features

  • series-bindings: Soft-capture XlErrorException in compute_* measures (#438, 7e713e2)

Testing

  • Lock Excel trailing-space compare semantics (#434) (#437, 5a769ca)

v3.16.0 (2026-07-19)

Bug Fixes

  • runtime: Emit HelperCacheKey with EvalContextBase (#430, a9746f7)

Features

  • runtime: Memoize parameterized helpers via xl_helper (#430, a9746f7)

  • runtime: Memoize parameterized helpers via xl_helper / xl_memoize (#430, a9746f7)

v3.15.3 (2026-07-19)

Bug Fixes

  • evaluator: Lower empty IF branches to 0 instead of None (#433, 94d0fff)

v3.15.2 (2026-07-18)

Bug Fixes

  • ci: Avoid orphan release tags when main push races (#429, 34b4d0b)

  • coercions: Reject empty text in numeric coercion (#426, e009de4)

  • coercions: Reject empty text in numeric coercion (#420) (#426, e009de4)

  • evaluator: Ignore blanks/text/bools in range aggregates (#425, 199bd60)

  • evaluator: Ignore blanks/text/bools in range aggregates (#419) (#425, 199bd60)

  • evaluator: Scalarize 1x1 binary operands (INDEX gates) (#424, 83d1cb2)

  • evaluator: Scalarize 1x1 ranges in binary operands (#424, 83d1cb2)

  • evaluator: Stop propagating errors through ISNUMBER/ISTEXT (#423, d5ce6c4)

  • exporter: Emit 1x1 ranges as scalar cell reads (#424, 83d1cb2)

  • math: Skip non-numeric text in aggregates (#426, e009de4)

  • series-bindings: Emit full-arity positional docstring examples (#427, ef8fdc7)

Code Style

  • Keep coercion docstring one-line for export baseline (#426, e009de4)

  • tests: Clarify range-aggregate MCVE helper docstring (#425, 199bd60)

  • tests: Drop escaped quotes in #421 docstrings (#424, 83d1cb2)

  • tests: Ruff-format golden parity SUM comment line (#425, 199bd60)

Testing

  • exporter: Align golden SUM range expectation with Excel (#425, 199bd60)

v3.15.1 (2026-07-16)

Bug Fixes

  • series-bindings: Share workbook reader across validate/resolve (#417, 6ea8062)

  • series-bindings: Share workbook reader across validate/resolve (#416) (#417, 6ea8062)

Testing

  • series-bindings: Include schema_version in load-count fixtures (#417, 6ea8062)

v3.15.0 (2026-07-16)

Bug Fixes

  • series-bindings: Tighten reader export parity after review (#413, a997795)

Code Style

  • Ruff-format series bindings readers module test (#413, a997795)

Features

  • series-bindings: Migrate formula bodies onto read_* via _readers (#413, a997795)

Testing

  • exporter: Stop requiring unused xl_eval in projected internals (#413, a997795)

v3.14.1 (2026-07-15)

Bug Fixes

  • Canonicalize multi-cell edge endpoints and cache schema (367b510)

Code Style

  • Ruff format node extent constructor (367b510)

Refactoring

  • Drop unused UnionKey import after row-shim removal (367b510)

Testing

  • Migrate row-node tests to union nodes (367b510)

v3.14.0 (2026-07-15)

Bug Fixes

  • series-bindings: Treat overlapping data_ranges as ambiguous (#412, 5333fbf)

Features

  • series-bindings: Reverse address map for reader call forms (#412, 5333fbf)

  • series-bindings: Reverse address map for reader call forms (#409) (#412, 5333fbf)

v3.13.1 (2026-07-15)

Bug Fixes

  • grapher: Fail closed on non-arithmetic OFFSET extent ops (#411, 9a8ab6e)

  • grapher: OFFSET named ranges with COUNTA(...)+n no longer collapse to 1×1 (#411, 9a8ab6e)

  • grapher: Resolve OFFSET named ranges with arithmetic extents (#411, 9a8ab6e)

v3.13.0 (2026-07-15)

Bug Fixes

  • series-bindings: Align read_* emission with discovery exports (#407, 17de304)

  • test: Avoid ruff B009 in reader range assertion (#407, 17de304)

  • test: Silence ty on xl_range.cell access in reader tests (#407, 17de304)

Features

  • series-bindings: Emit read_* duals of set_* setters (#407, 17de304)

  • series-bindings: Emit read_* duals of set_* setters (#404) (#407, 17de304)

Testing

  • exporter: Bump dep-tracking baseline for list_readers discovery (#407, 17de304)

v3.12.0 (2026-07-15)

Bug Fixes

  • Type optional NumPy import for ty check (#408, ffafd94)

Documentation

  • export: Clarify INDEX/OFFSET ref vs value contract (#406, b099df7)

Features

Testing

  • Keep NumPy-free CI green without re-syncing ops (#408, ffafd94)

v3.11.0 (2026-07-15)

Bug Fixes

  • test: Satisfy ty check for compute_all calls in unpack tests (#402, 2e53f32)

Features

  • exporter: Optional return-line unpacking in codegen (#402, 2e53f32)

Refactoring

  • evaluator: Lazy range cleanup (#336 Phase 4) (#401, cd88838)

  • exporter: Hoist return temps during formula AST emission (#402, 2e53f32)

Testing

  • exporter: Broaden unpack_return coverage and docs (#402, 2e53f32)

v3.10.1 (2026-07-15)

Performance Improvements

  • runtime: Stream AVERAGEIF via Grid.at_flat pairing (#399, 36d0ce6)

v3.10.0 (2026-07-15)

Features

  • evaluator: Cell-wise AND/OR over lazy Range (#397) (#400, 74e4252)

v3.9.0 (2026-07-15)

Bug Fixes

  • core: Drop redundant cast in Range flatten walk (#396, c07b157)

  • evaluator: Excel COUNTIF skip, AST precheck exemptions, demote AND/OR (#396, c07b157)

Features

  • evaluator: Lazy Grid aggregates for SUM/SUMPRODUCT (#336 Phase 3) (#396, c07b157)

v3.8.0 (2026-07-15)

Bug Fixes

  • evaluator: Reuse materialized arrays on operator fastpath miss (#394, e7a5c0f)

  • evaluator: Type/embed polish for Phase 2 operator maps (#394, e7a5c0f)

Features

  • evaluator: Lazy Grid maps for binary/unary operators (#336 Phase 2) (#394, e7a5c0f)

  • evaluator: Route binary ops through shared Grid maps (#336 Phase 2) (#394, e7a5c0f)

v3.7.0 (2026-07-14)

Bug Fixes

  • series-bindings: Accept numpy scalars in measure dtype checks (#386, c42017c)

  • series-bindings: Harden measure dtype enforcement and cleanup (#386, c42017c)

Features

  • series-bindings: Enforce measure dtype in generated setters (#386, c42017c)

  • series-bindings: Narrow setter input annotations by measure dtype (#386, c42017c)

v3.6.0 (2026-07-14)

Bug Fixes

  • evaluator: Scalar boundary for lazy Range (#336 Phase 1) (#389, 0d63e45)

Features

  • evaluator: Lazy-by-default range resolution (#336 Phase 1) (#389, 0d63e45)

Refactoring

  • evaluator: Explicit eager/grid/VALUE range arg policy (#389, 0d63e45)

v3.5.0 (2026-07-14)

Bug Fixes

  • evaluator: Cast lazy Range and lookup returns for ty (#388, c9925a0)

Features

  • evaluator: Lazy Range for lookup consumers (#388, c9925a0)

  • evaluator: Lazy Range for lookup consumers (#336) (#388, c9925a0)

Refactoring

  • core: Unify ExcelRange as shared geometry type (#388, c9925a0)

Testing

  • evaluator: Budget and selective-access coverage for lazy lookups (#388, c9925a0)

v3.4.3 (2026-07-14)

Bug Fixes

  • addressing: Accept ExcelRangeGeometry protocol for export embed (#383, 454c25a)

  • export_runtime: Avoid CoreCellValue alias in embedded resolver (#383, 454c25a)

Refactoring

  • Remove dead type/lint suppressions and narrow export ExcelRange bridging (#383, 454c25a)

  • Typing audit — drop dead suppressions, narrow ExcelRange casts (#383, 454c25a)

v3.4.2 (2026-07-13)

Bug Fixes

  • core: Unify same-sheet range normalization on single sheet prefix (#382, 6442ade)

  • core: Unify same-sheet ranges on single sheet prefix (#382, 6442ade)

  • grapher: Harden single-prefix range dep extraction (#382, 6442ade)

  • grapher: Mask range spans before cell-ref parse (#382, 6442ade)

  • grapher: Refuse unmasked ranges in parse_cell_refs (#382, 6442ade)

  • test: Silence ty invalid-argument for CodeGenerator(None) (#382, 6442ade)

Code Style

  • Ruff format and import tidy for range single-prefix (#382, 6442ade)

  • Ruff format parse_cell_refs signature (#382, 6442ade)

Refactoring

  • core: Share colon split and canonicalize range ends (#382, 6442ade)

v3.4.1 (2026-07-13)

Bug Fixes

  • evaluator: Re-emit circular-reference warning on memoized re-evaluate (#381, b14b682)

Refactoring

  • parity: Dedupe live parity onto workbook compare helper (#380, 42e7085)

Testing

  • exporter: Refresh dep-tracking baseline after circular-warning runtime (#381, b14b682)

  • parity: Assert Excel error codes in excel_workbook_parity (#380, 42e7085)

v3.4.0 (2026-07-11)

Features

  • series_bindings: Per-dimension dtype for same-concept dimensions (#378, 829ac70)

  • series_bindings: Separate dimension id from concept (schema 1.8.0) (#378, 829ac70)

v3.3.0 (2026-07-09)

Features

  • bindings: Support internal series declarations for formula-cell key triangulation (#373, a8d1ae3)

Refactoring

  • series_bindings: Dedupe derive helpers and document internal series (#373, a8d1ae3)

v3.2.0 (2026-07-08)

Documentation

  • series_bindings: Address PR 371 review feedback for input.mode override (#371, db55ce6)

Features

  • series_bindings: Add input.mode override for formula cell setters (#371, db55ce6)

  • series_bindings: Input.mode override for formula cell setters (#371, db55ce6)

Refactoring

  • export: Address PR review nits for three-layer wrappers (#370, 74b447d)

  • export: Move worksheet functions to core with thin wrappers (#370, 74b447d)

Unreleased

Features

  • series_bindings: Add input.mode: override (schema 1.6.0) for public setters on user-editable formula cells (#371)

Changed

  • series_bindings: Leaf-mode input bindings now error on non-leaf data_range overlap (non_leaf_input_overlap) instead of warning and silently dropping formula cells. Manifests that relied on the old warn-and-drop behavior must either narrow data_range to graph leaves or declare input.mode: override.

v3.1.0 (2026-07-07)

Features

  • export: Raise-only boundary for embedded runtime helpers (#326) (#368, c700b80)

  • export: Wrap runtime calls with raise_if_sentinel at codegen boundary (#368, c700b80)

Refactoring

  • export: Use runtime boundary wrappers instead of codegen wrap (#368, c700b80)

Testing

  • export: Document shadowing invariants and expand boundary coverage (#368, c700b80)

v3.0.1 (2026-07-06)

Performance Improvements

  • Speed up optimal projection manifests (#350, 9133cae)

Testing

  • Cover projection manifest ordering guards (#350, 9133cae)

  • Guard projection metadata copy fields (#350, 9133cae)

  • Guard shared preparsed ast projection copy (#350, 9133cae)

v3.0.0 (2026-07-06)

Refactoring

  • series_bindings: Drop planned metadata and consolidate types (#349, d9ba8fd)

v2.5.2 (2026-07-06)

Bug Fixes

  • grapher: Repair local force subgraph selection (#345, 5d824bf)

  • grapher: Repair local force subgraph selection and add tests (#345, 5d824bf)

Code Style

  • Fix import ordering in local force subgraph tests (#345, 5d824bf)

Refactoring

  • Minor grapher cleanup (dead code, sha256, version, viz API) (#348, 208a56f)

  • test: Move local force subgraph oracle into test helpers (#345, 5d824bf)

Testing

  • grapher: Replace local force oracle with regression asserts (#345, 5d824bf)

v2.5.1 (2026-07-06)

Bug Fixes

  • Preserve quoted apostrophe sheet refs in formula normalization (#346, d4d05a2)

  • evaluator: Import xl_isblank from runtime after shim removal (#347, 37677be)

Refactoring

  • Consolidate sheet-qualified address parsing (#343, 4ce69d7)

  • Remove unused LocalForceSubgraph API (#342, d3f261e)

  • evaluator: Collapse function shims into explicit registry (#347, 37677be)

Testing

  • Cover remaining apostrophe address parsers and fix call sites (#343, 4ce69d7)

  • Xfail graph build with quoted apostrophe sheet refs in formulas (#343, 4ce69d7)

v2.5.0 (2026-07-05)

Documentation

  • Add Cursor Cloud setup instructions to AGENTS.md (#340, 47b078a)

Features

  • grapher: Opt-in AST pre-parsing during graph extraction (#341, 511492a)

Testing

  • Address PR 341 review feedback on preparsed formulas (#341, 511492a)

v2.4.1 (2026-07-04)

Performance Improvements

  • operators: Fast batch coercion for numeric-string compare arrays (#339, 28e532c)

Refactoring

  • operators: Address PR review feedback for numeric-string fastpath (#339, 28e532c)

Testing

  • exporter: Refresh dep-tracking baseline after coercion helper (#339, 28e532c)

v2.4.0 (2026-07-04)

Code Style

  • evaluator: Fix ruff and docstring issues in AST cache PR (#338, 3724cfa)

Features

  • evaluator: Cache parsed formula ASTs keyed by normalized_formula (#338, 3724cfa)

v2.3.0 (2026-07-04)

Code Style

  • Sort imports in evaluator math functions (#334, 5103a4a)

Features

Testing

  • exp: Strengthen coverage and add dynamic-ref domain inference (#334, 5103a4a)

  • parity: Add live Excel harness and ABS/EXP excel parity tests (#334, 5103a4a)

v2.2.0 (2026-07-03)

Chores

Features

  • series_bindings: Add optional view-level groups for export sequencing (#308) (#332, 5d2e610)

v2.1.3 (2026-07-03)

Bug Fixes

Code Style

Testing

v2.1.2 (2026-07-03)

Bug Fixes

  • exporter: Emit TypeAlias for SeriesInput in exported code (#325, 514d3cb)

v2.1.1 (2026-07-03)

Bug Fixes

  • Cache repeated dynamic ref expansions (#324, e92f979)

  • Stop caching dynamic-ref mask spans in dep cache (#324, e92f979)

Code Style

  • Apply ruff format to builder and dynamic refs tests (#324, e92f979)

v2.1.0 (2026-07-03)

Features

  • exporter: Emit list_setters/list_computes discovery helpers (#323, 85bef61)

  • series-bindings: Add empty_measure and matrix DataFrame setter input (#323, 85bef61)

  • series-bindings: Empty_measure knob and matrix DataFrame setter ergonomics (#323, 85bef61)

Refactoring

  • series-bindings: Tighten empty_measure setter ergonomics (#323, 85bef61)

v2.0.0 (2026-07-02)

Bug Fixes

  • exporter: Raise NA() as an error literal to preserve parity (#318, 9c9c9b7)

Documentation

  • parity: Correct list of thunked error-consuming functions (#318, 9c9c9b7)

Features

  • Add export runtime scaffolding (#318, 9c9c9b7)

  • Inline operators in exported codegen (#318, 9c9c9b7)

  • Migrate exported range consumers onto lazy Range (#318, 9c9c9b7)

  • Pythonic exported runtime — lazy ranges and raise-based errors (#318, 9c9c9b7)

  • Raise Excel errors as exceptions in exported code (#318, 9c9c9b7)

Performance Improvements

  • exporter: Bind operands once in array-operator guards (#318, 9c9c9b7)

  • exporter: Only guard operands that can evaluate to arrays (#318, 9c9c9b7)

Refactoring

  • export-runtime: Drop dead code in export runtime (#318, 9c9c9b7)

  • export-runtime: Use canonical sheet-name quoting in OFFSET (#318, 9c9c9b7)

Testing

  • Align dep-tracking baseline assertion with regenerated fixture (#318, 9c9c9b7)

  • Satisfy export runtime hook checks (#318, 9c9c9b7)

v1.2.0 (2026-07-02)

Documentation

  • user_guide: Grouped-row matrix geometry semantics and decision table (#321, e71d121)

Features

  • series_bindings: Grouped-row matrix geometry (schema 1.5.0) (#321, e71d121)

Refactoring

  • grapher: Make TACO index a derived artifact, not graph state (6370794)

v1.1.0 (2026-06-27)

Features

  • exporter: Emit list_setters/list_computes discovery helpers (#305, 93b71d4)

v1.0.2 (2026-06-26)

Bug Fixes

  • evaluator: Track runtime deps so dynamic-ref shifts invalidate correctly (#303, acf9301)

Continuous Integration

  • Use conventional commit for releases (cdc155a)

Refactoring

  • Add series-binding helper-block emitter and include_helpers flag (#299, 3c2a37d)

  • Emit series-binding coercion into a dedicated _api_helpers module (#299, 3c2a37d)

Testing

  • Assert raw-emitted Ruff cleanliness instead of post-fix (#299, 3c2a37d)

v1.0.1 (2026-06-26)

Bug Fixes

  • series-bindings: Make setter docstrings layout-aware (#302, bba3a1e)

Continuous Integration

  • Skip CI on version bump (eb433b2)

Documentation

  • Clarify use_cached_dynamic_refs warning (#138) (#301, 7797ecb)

v1.0.0 (2026-06-25)

Bug Fixes

  • series-bindings: Apply key dtype coercion after record normalization (#294, 2053688)

  • series-bindings: Customize coercion error messages by layout (#294, 2053688)

  • series-bindings: Reject duplicate composite keys in setter batches (#294, 2053688)

Chores

Code Style

  • series-bindings: Fix ruff and ty check issues (#294, 2053688)

Continuous Integration

Features

  • Automate version bumps with semantic-release (closes #291) (#292, 2a3a8bd)

  • series-bindings: Add flexible setter input coercion (closes #243) (#294, 2053688)

  • series-bindings: Add matrix Layout and macro_matrix DataFrame test (#294, 2053688)

  • series-bindings: Align SeriesInput type hints with DataFrame support (#294, 2053688)

  • series-bindings: Extend setter smoke tests and add DataFrame example (#294, 2053688)

Testing

  • series-bindings: Add coercion parity tests and document input shapes (#294, 2053688)