Skip to content

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 MathValue and ExpressionValue in v2/expression.ts

Changed

  • All any types removed from src/v2/expression.ts
  • Comparison with missing row headers now explicitly returns false (was relying on JS coercion of null)

Fixed

  • Bug: lt comparison with missing header returned true instead of false due to null being coerced to 0 in 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.ts for v2/FlameGuards and v2/FlameWright
  • Continue archiving remaining v1 modules (src/afterglow/)