Scope amended 2026-07-25
Original scope ("ARRAYFORMULA parity beyond basic spill, incl. implicit intersection") was post-v1/tracking-only per 2026-06-07-workbook-v1-scope.md Decision 2. That row is now superseded by 2026-07-25-amend-workbook-v1-scope-arrayformula-format.md (Decision 1), owner-approved via truecalc/distributions#64.
Approved, in scope now:
- Expand the per-cell scalar broadcast allowlist in
arrayformula_lazy_fn (crates/core/src/eval/functions/array/mod.rs:1470) beyond LEN/UPPER to the full set of Sheets per-cell scalar functions (fixture-confirmed, not assumed).
- Broaden broadcast beyond
IF to other control-flow-shaped functions (IFS, SWITCH), contingent on Sheets confirming per-cell behavior for each.
Listed but NOT yet cleared — requires its own explicit sign-off before implementation:
- General implicit intersection for unmarked range references in ordinary (non-
ARRAYFORMULA) formulas (e.g. =A1:A10+1). This changes scalar-context evaluation semantics workbook-wide, not just inside ARRAYFORMULA — a materially bigger blast radius than the two approved bullets above. Do not start this without a separate go-ahead.
Still explicitly out of scope, unchanged:
- Structural-edit reference rewriting (insert/delete row/col) — remains a separate
v1.1+ tracking issue (post-v1). Nothing in this issue implies or requires it.
Blocked on fixtures. Existing ARRAYFORMULA fixture coverage is thin and doesn't cover the broadened allowlist. New fixture rows (per newly-broadcast function) are needed via the truecalc/fixtures GAS pipeline before implementation lands — values are never self-confirmed. This is being sequenced together with other fixtures-needing issues; do not start core work ahead of that landing.
Scope amended 2026-07-25
Original scope ("ARRAYFORMULA parity beyond basic spill, incl. implicit intersection") was
post-v1/tracking-only per2026-06-07-workbook-v1-scope.mdDecision 2. That row is now superseded by2026-07-25-amend-workbook-v1-scope-arrayformula-format.md(Decision 1), owner-approved via truecalc/distributions#64.Approved, in scope now:
arrayformula_lazy_fn(crates/core/src/eval/functions/array/mod.rs:1470) beyondLEN/UPPERto the full set of Sheets per-cell scalar functions (fixture-confirmed, not assumed).IFto other control-flow-shaped functions (IFS,SWITCH), contingent on Sheets confirming per-cell behavior for each.Listed but NOT yet cleared — requires its own explicit sign-off before implementation:
ARRAYFORMULA) formulas (e.g.=A1:A10+1). This changes scalar-context evaluation semantics workbook-wide, not just insideARRAYFORMULA— a materially bigger blast radius than the two approved bullets above. Do not start this without a separate go-ahead.Still explicitly out of scope, unchanged:
v1.1+tracking issue (post-v1). Nothing in this issue implies or requires it.Blocked on fixtures. Existing
ARRAYFORMULAfixture coverage is thin and doesn't cover the broadened allowlist. New fixture rows (per newly-broadcast function) are needed via thetruecalc/fixturesGAS pipeline before implementation lands — values are never self-confirmed. This is being sequenced together with other fixtures-needing issues; do not start core work ahead of that landing.