v0.46.1 - Expression Type Safety (2026-03-27)¶
What Changed?¶
This patch removes all any types from src/v2/expression.ts, replacing them
with Cell, Cell[], and typed internal helpers. No public API changes.
What's New¶
Main Feature: Type-safe Expression internals¶
What it does:
All internal any usages in Expression are replaced with explicit types:
- _value field uses ExpressionValue (Cell | Cell[] | MathValue | null)
- _func field uses (value: Cell) => Cell
- Method parameters use Cell, number | string, or Cell[] as appropriate
- null row values in comparison operations now safely return false
How to use it: No changes required. The public API is identical.
Added¶
- Internal types
MathValueandExpressionValueinv2/expression.ts
Changed¶
- All
anytypes removed fromsrc/v2/expression.ts - Comparison with missing row headers now explicitly returns
false(was relying on JS coercion ofnull)
Fixed¶
- Bug:
ltcomparison with missing header returnedtrueinstead offalsedue tonullbeing coerced to0in numeric comparison
Is It Safe to Upgrade?¶
- Breaking Changes: No
- Backward Compatible: Yes
Release Details¶
- Date: 2026-03-27
- Version: v0.46.1
- gaslamp: clasp version 99
- pilotlamp: clasp version 57
- Files Changed: 1
- Commits:
- 45b73f8b refactor(v2): remove any types from expression.ts, use Cell and typed internals
Known Issues¶
- None
Next Steps¶
- Write
__tests__/v2/flame.test.tsforv2/FlameGuardsandv2/FlameWright - Continue archiving remaining v1 modules (
src/afterglow/)