mirror of
https://github.com/storytold/gridcraft.git
synced 2026-11-03 17:21:56 +00:00
When a file is opened, a Python cell falls back to keeping only its value in four cases: its code is missing from the Python part or the part is damaged (the xlsx reader), its code is too long for a cell, its kept result is malformed, or its result is past the adoption budget. The first kept the values the cell spilled as plain values; the others dropped them, so values the file showed were lost. All of them now follow one rule, through Sheet::settle_spill: the anchor and every spilled cell keep their cached values as plain values, with no live spill range; a cell's own content and format are never overwritten; and the work is bounded by the spilled values stored, not by the range. The values move from the spill into the cells, so nothing is copied. The cut-by-budget test is renamed for what it now checks, the dropped-result test now expects the values kept, and the adoption warning and the file-format docs say so.