Dylan M. Taylor and Claude Sonnet 5.5
4e86fe7ad3
Sonar: explicit imports, fn paths for closures, extract helpers for cognitive complexity
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
2026-10-24 08:34:04 +00:00
NetterSilver and Claude Haiku 5.5
22157433ce
Fix fraction numerators saturating at u64::MAX for large values
...
Found while testing crates/numfmt/src/render.rs:470
Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com >
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-15 06:48:41 +02:00
Brandon Thomas
0c488f79b3
Merge main into #809
...
# Conflicts:
# ROADMAP.md
# crates/numfmt/src/lib.rs
# crates/numfmt/src/tests.rs
# crates/xlsx/src/tests/malformed.rs
2026-10-13 01:04:29 -04:00
Brandon Thomas
40166aff60
Merge pull request #773 from marcoarnulfo:fix/numfmt-scientific-exponent
2026-10-12 23:49:29 -04:00
Brandon Thomas
291120a4cd
Merge pull request #740 from marcoarnulfo:fix/numfmt-negative-zero
2026-10-12 23:49:06 -04:00
vangel76 and Claude Sonnet 5.5
5f992be525
Numfmt: no panic on a fraction denominator with 65,536 zeros; format codes are capped at 255 characters ( #807 )
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
2026-10-12 22:09:29 +02:00
Marco Arnulfo
1767a28371
Numfmt: scientific formats with a literal after E±, a % or a comma match Excel ( fixes #768 )
...
The exponent sign goes right before the exponent digits, after any literal that follows
the E; ? pads exponent digits with spaces; % and commas never scale a scientific section;
zero shows 0 in every integer placeholder. Checked against the 248 TEXT() rows of Apache
POI's NumberFormatApproxTests.xlsx, copied as data into a test.
2026-10-12 19:43:33 +02:00
Marco Arnulfo
ea5db94fe3
Numfmt: a negative number that rounds to zero shows no minus sign ( fixes #729 )
2026-10-12 18:35:01 +02:00
MarekSpodBiedry
2586ec22df
Treat serials past 9999-12-31 as out of range in the 1904 date system ( #565 )
2026-10-12 08:34:19 +02:00
neilcawse and Claude Opus 5.5
737999f182
Numfmt: fraction literals and zero fractions, ? pads thousands separator, TEXT booleans through text section
...
Checked against Excel-cached TEXT() results in number- and text-format test workbooks: 226 of 352 TEXT cells mismatched before, 0 after.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-11 16:39:30 -04:00
justinjohn0306
7e24aa398a
CI: satisfy newer clippy lints (toolchain drift, behavior-preserving)
...
Local clippy 1.96 flags pre-existing patterns the code has always had:
manual range-contains comparisons, a dead `|| true` filter and a
simplifiable boolean. None change behaviour; they only clear the lints
so `cargo xtask ci` passes on a current toolchain.
2026-10-09 13:08:28 +05:30
Brandon Thomas and Claude Opus 5.5
488e12de31
Rename SheetCraft to GridCraft everywhere (crates, apps, bundle ids, packaging, docs)
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-06 01:39:08 -04:00
Brandon Thomas and Claude Opus 5.5
1ba9daa263
M0: foundation — core, numfmt, formula, functions (478), model, calc, xlsx/csv, engine
...
Clean-room spreadsheet engine: addresses/values/dates, Excel number formats,
formula parser/printer/reference adjustment, worksheet function library,
copy-on-write workbook model, dependency-driven recalculation with dynamic
arrays, XLSX/CSV I/O, and a command engine (cell entry, clipboard, fill,
formatting, sheets, sort/filter, tables, charts, CF, names, view, file).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-05 23:18:10 -04:00