# SwiftSheets 2.1.0 validation record

The maintainer authorized the 2.1.0 release on 2026-10-17 with the native checks available in read-only Excel.
This records the narrower release scope explicitly; unavailable checks are not counted as passes. The default
manual checklist in [MAINTENANCE.md](../MAINTENANCE.md) still applies to subsequent releases.

## Native Excel observations

Excel for Mac 16.114 (26101123), confirmed in the running application on 2026-10-17, opened the synthetic consumer specimen without a repair dialog. Its object tree included
the nested drawing group, Japanese/mixed-format text and separate text boxes; the canvas displayed the transformed
text. The SwiftSheets output after an unrelated cell edit also opened without repair and displayed those
objects. The independent package judge additionally verifies the drawing and metadata bytes. This is a specimen-level observation, not a rendering guarantee for every DrawingML property.

The 2026-10-16 ground-truth checks used Excel 16.113.4 and opened SwiftSheets rewrites of Excel-authored SmartArt/grouped shapes and
furigana without repair. The five-node SmartArt and grouped pair of shapes were visible. Showing phonetic guides
on `JIS関数` and `変換前` displayed their readings. The threaded-comment compatibility note retained the original
comment, its reply and the reply added by SwiftSheets; this does not certify modern threaded-comment editing.

An API-generated calculation probe deliberately supplied incorrect cached results. Opening it changed ordinary
SUM and arithmetic to 100 and 5 on 2026-10-16; a fresh 2.1.0-build probe returned 6 and 5 on 2026-10-17,
matching its different SUM inputs. A literal control stayed unchanged. SEQUENCE, FILTER, SORT and XLOOKUP
returned `#NAME?`; an independent XlsxWriter SEQUENCE control did too. These observations establish ordinary
recalculation and a limitation of this verification environment. They do not establish successful modern-function
or spill recalculation, nor do they identify the subscription as the sole cause.

The freshly generated Japanese verification sample opened without repair. Sales displayed its merged heading,
filter buttons, currency/percentage/date formats, conditional colours and total 22,532,800; rows 1–3 remained
visible after scrolling to row 44. Monthly showed the same total, Staff retained text `0012`, links and wrapping,
and Formats displayed border/fill samples, the requested typefaces and Unicode text. These selected visual
checks do not certify every property or hyperlink target.

The pivot specimen also opened without repair and displayed its `fn-sum` summary, including the expected
grand total 36. Source editing, manual Refresh and saving were outside the read-only scope.

## Defect corrected before release

The uppercase XLDAPR extension URI in rc.1 made Excel request repair. A control differing only in the URI's case
opened without repair. A new workbook generated by the corrected library also opened without repair. New metadata
now uses `{bdbb8cdc-fa1e-496e-a857-3c3f30c029c3}`. Readers still recognize uppercase/mixed-case identifiers and
same-family writes preserve original metadata bytes. See implementation-spec Appendix B.114.

## Unverified application behavior

- Correct native calculation of modern functions and spill references, including spill growth and shrinkage.
- Excel editing and saving, including pivot source changes, Refresh, save and SwiftSheets reread. Excel displays
  that a subscription is required for editing and saving; the Save button and cell editing are disabled.
- The complete cross-application visual checklist beyond the specimens above.

The public API records drawing source information, formulas, array ranges and cached values; it does not render
DrawingML or evaluate formulas. The feature tables continue to distinguish those capabilities from application
behavior. Performance records retain their original measurement dates and are not new 2.1.0 benchmarks.

## Automated validation

The release runs the complete Swift test suite, the independent consumer openpyxl/package judge, the nine-direction
interoperability measurement, generated-page consistency checks, public document/fixture hygiene and the openpyxl
parity ledger. CI on the release commit must be green before the GitHub release is published. Environment-dependent
skips are visible in test output and do not establish native application compatibility.
