v0.49.1 - Expression Documentation & Testing (2026-03-28)¶
What Changed?¶
This release improves Expression API documentation and test coverage. All docstrings have been carefully reviewed and corrected to match implementation behavior. A comprehensive test suite with 41 new test cases validates null handling, string operations, logical operators, and operator associativity.
What's New¶
Expression API Documentation Improvements¶
What it does: Clarifies undocumented edge cases and corrects inconsistencies between docstrings and implementation behavior.
Coverage:
- null/undefined behavior in comparison operators
- Empty string matching in string operations
- Short-circuit evaluation in AND/OR operators
- Left-associativity of logical operators
- Return type specifications for all methods
Added¶
- Comprehensive test suite for Expression class: 41 new test cases covering edge cases
- Null/undefined handling (7 tests)
- String operations: contains, startsWith, endsWith (15 tests)
in()operation with array membership (4 tests)- Double negation behavior (2 tests)
- Complex AND/OR combinations with left-associativity (8 tests)
- Type handling for eq() and ne() (5 tests)
- Documentation for all private evaluator methods (evaluateComparison, evaluateStringOps, evaluateLogical)
Changed¶
- Expression docstrings now explicitly document:
- null/undefined return false for all comparison operators
- Empty string returns true for string operations
- Strict mode does not apply to logical operators
- NOT operator implemented as expression node (not flag)
- toFunction() return type:
(row: Map<string, Cell>) => boolean | Cell - _combine() method: clarified 'and'/'or' only (NOT uses separate method)
Fixed¶
- Removed false claim about NOT precedence over AND/OR
- Corrected toFunction() docstring return type from "boolean" to "boolean or Cell"
- Added null handling documentation to all comparison operators
- Documented empty string behavior for string operations
Is It Safe to Upgrade?¶
- Breaking Changes: No
- Backward Compatible: Yes
All changes are documentation and test improvements only. No API changes, no behavioral changes. Existing code continues to work exactly as before.
Release Details¶
- Date: 2026-03-28
- Version: v0.49.1
- gaslamp: v105
- pilotlamp: v63
- Files Changed: 2
- Commits:
- ff88c36d bump: version 0.49.0 → 0.49.1
- cae002d3 test(v2/expression): add comprehensive test coverage
- 3f0ae936 docs(v2/expression): fix toFunction() return type documentation
- a7ca645b docs(v2/expression): document evaluateComparison() null handling
- 4cc21636 docs(v2/expression): document evaluateStringOps() edge cases
- d3ca5aab docs(v2/expression): clarify _combine() method documentation
- a08531b4 docs(v2/expression): fix docstring accuracy and completeness
- 21efe7ab docs(v2/expression): clarify operator precedence and associativity
- 8f5c790e refactor(v2/expression): implement not() as expression operator instead of flag
Known Issues¶
None identified at this time.
Next Steps¶
Future releases will continue improving documentation accuracy and test coverage across the library, ensuring all APIs are thoroughly documented and validated.