Brandon Thomas
76f3a29c79
Merge branch 'land' into fix-206
2026-10-11 14:23:51 -04:00
Brandon Thomas and Claude Opus 5.5
8fcb9b1007
Fix-up: es/de/cs strings for Forecast Sheet ( #325 )
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-11 14:15:18 -04:00
Brandon Thomas
7a34692a0d
Merge pull request #325 from vangel76/feat/forecast-sheet
...
Data: Forecast Sheet (data.forecastSheet) (#322 )
# Conflicts:
# ROADMAP.md
# docs/gaps.md
# docs/parity-checklist.md
# docs/ui-parity.md
2026-10-11 13:52:00 -04:00
Brandon Thomas
fda7f5bc14
Merge pull request #333 from vangel76/feat/xlsx-passthrough
...
XLSX: keep unmodelled parts on save (#330 )
# Conflicts:
# ROADMAP.md
# crates/model/src/lib.rs
# crates/model/src/sheet.rs
# docs/file-format-parity.md
# docs/gaps.md
2026-10-11 13:51:59 -04:00
Brandon Thomas
c379da6ac9
Merge pull request #332 from vangel76/feat/xls-read
...
XLSX/IO: read legacy .xls (BIFF8) workbooks (#121 )
# Conflicts:
# docs/gaps.md
2026-10-11 13:51:48 -04:00
Brandon Thomas and Claude Opus 5.5
4a55aa3e34
Merge main into page-layout-view: pages keep the gliding selection ( #266 ), frozen-pane clipping ( #217 ), right-to-left mirroring and freeze handles ( #310 , #309 ); es/de/cs strings for headers and footers
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-11 13:39:07 -04:00
Brandon Thomas and Claude Opus 5.5
baffd3c78d
Fix-up #325 : cap Forecast Sheet history and forecast rows
...
The default periods (a third of the history, up to ~33k) bypassed
MAX_PERIODS, and each forecast row's three ETS formulas refit over the whole
history, so 100k history rows x 10k periods froze the app. History is now at
most 10,000 rows, periods at most 10,000, and history x periods at most
500,000 (about 3 us per history point per fit: a few seconds of recalc at
the cap). The default is clamped to the cap; explicit periods or an end past
it are refused.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-11 13:30:47 -04:00
Brandon Thomas and Claude Opus 5.5
c8b1b941f7
Merge main into selection-glide: the gliding outline and its fill respect frozen panes ( #217 ) and right-to-left sheets ( #310 ); es/de/cs strings for Animations
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-11 13:27:27 -04:00
Brandon Thomas and Claude Opus 5.5
b3908bf81e
Key tips HAT/HAM/HAB run Align Top/Middle/Bottom, with a test (review fix-up for #261 )
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-11 13:20:22 -04:00
MarekSpodBiedry
568b754211
Ctrl+click on an already selected header or cell deselects it ( #359 )
2026-10-11 19:18:39 +02:00
MarekSpodBiedry
ea2e2a5bba
Edit date cells as dates, not serial numbers ( #362 )
2026-10-11 19:18:27 +02:00
Brandon Thomas and Claude Opus 5.5
27ef18ec2c
symbol_glyphs test: compare against a private-use code point no font covers (review fix-up for #298 )
...
U+25FB is a real glyph in DejaVu, so the test could pass while symbols still rendered as boxes.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-11 13:14:30 -04:00
Brandon Thomas
6cf32cf4eb
Merge branch 'land' into fix-298
...
# Conflicts:
# ROADMAP.md
2026-10-11 13:13:26 -04:00
Brandon Thomas
5360a77505
Merge remote-tracking branch 'origin/main' into fix-325
...
# Conflicts:
# ROADMAP.md
# crates/engine/src/cmd/mod.rs
# crates/ui-egui/src/dialogs.rs
# docs/gaps.md
# docs/parity-checklist.md
# docs/ui-parity.md
2026-10-11 13:12:41 -04:00
Brandon Thomas and Claude Opus 5.5
1fb5f3264d
Spanish, German and Czech strings for Insert Copied/Cut Cells (review fix-up for #288 )
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-11 13:12:23 -04:00
Brandon Thomas and Claude Opus 5.5
e52fc4aa08
Fix-up #333 : escape kept content types and charge kept VML to the kept total
...
Content types (and extensions) of kept parts come from the input file and
were written into [Content_Types].xml unescaped, so a quote or angle bracket
injected XML; they are now attribute-escaped. Each sheet re-read and kept
its VML drawing (up to 16 MB) outside MAX_KEPT_TOTAL, so many sheets sharing
one highly compressed drawing amplified memory; the drawing is now read
within and charged to the remaining kept-bytes allowance.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-11 13:05:45 -04:00
Brandon Thomas
9cb6cb2384
Merge branch 'land' into fix-288
...
# Conflicts:
# ROADMAP.md
# crates/engine/src/cmd/edit.rs
# docs/target-app-parity.md
2026-10-11 13:01:23 -04:00
Brandon Thomas and Claude Opus 5.5
c83f214c9d
Spanish, German and Czech strings for comment navigation (review fix-up for #286 )
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-11 13:00:27 -04:00
Brandon Thomas
79fce91359
Merge remote-tracking branch 'origin/main' into fix-333
...
# Conflicts:
# ROADMAP.md
# crates/model/src/lib.rs
# crates/xlsx/src/sheet_read.rs
# docs/file-format-parity.md
# docs/gaps.md
2026-10-11 12:56:45 -04:00
Brandon Thomas and Claude Opus 5.5
e78cc6edc9
Fix-up #332 : bound .xls formula nesting and share one record budget across sheets
...
Chained PtgParen/PtgUminus (or operator) tokens built a ~16K-deep Expr whose
printing or drop overflowed the stack; nesting past the formula parser's
MAX_DEPTH (256) is now reported as unsupported. BoundSheet records pointing
into one huge substream each got their own 40M-record allowance; the
allowance is now shared by the whole Workbook stream, and two sheets at the
same offset are refused.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-11 12:55:17 -04:00
Brandon Thomas
141fef26e8
Merge remote-tracking branch 'origin/main' into fix-286
...
# Conflicts:
# ROADMAP.md
# crates/engine/src/cmd/review.rs
# docs/gaps.md
# docs/parity-checklist.md
# docs/target-app-parity.md
2026-10-11 12:52:12 -04:00
Brandon Thomas
30312e7546
Merge remote-tracking branch 'origin/main' into fix-332
...
# Conflicts:
# ROADMAP.md
# docs/file-format-parity.md
# docs/gaps.md
2026-10-11 12:51:12 -04:00
Ege Arhan
64089568c8
fix(ribbon): Watch Window layout in Formulas ribbon ( #342 )
2026-10-11 16:50:42 +00:00
Brandon Thomas
336deb87de
Merge pull request #216 from MarekSpodBiedry/issue-202
...
Read the browser clock for NOW(), TODAY() and year-less dates on wasm (#202 )
2026-10-11 12:46:33 -04:00
Brandon Thomas
fa12cb441b
Merge pull request #212 from Zarvinx/build/rust-1.95-clippy
...
Fix Rust 1.95 Clippy warnings
# Conflicts:
# crates/ui-egui/src/grid.rs
2026-10-11 12:46:32 -04:00
Brandon Thomas
9d3b3a6074
Merge pull request #207 from mikl0s/fix/cell-set-requires-input-v2
...
Cell: cell.set without an input is an error
2026-10-11 12:46:03 -04:00
Brandon Thomas and Claude Opus 5.5
4cb4f6586e
rustfmt the sheet-tab scroll area (review fix-up for #268 )
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-11 12:42:02 -04:00
Brandon Thomas
de8d70cc39
Merge remote-tracking branch 'origin/main' into fix-268
2026-10-11 12:41:54 -04:00
Brandon Thomas and Claude Opus 5.5
abbd8181b9
Fix-up: theme test picks System from Backstage Options' Display theme combo ( #318 after #331 )
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-11 12:31:17 -04:00
Brandon Thomas and Claude Opus 5.5
4d2335c8f5
Fix-up: Spanish, German and Czech strings for the features merged alongside them; theme test goes through Backstage Options ( #318 after #331 )
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-11 12:21:15 -04:00
Brandon Thomas and Claude Opus 5.5
267a2183ac
Fix-up: Backstage options read the formula bar from engine prefs ( #331 after #295 )
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-11 12:13:09 -04:00
Brandon Thomas
0305d2a666
Merge pull request #335 from Losminek/cs-pr
...
i18n: Czech interface language (cs)
# Conflicts:
# ROADMAP.md
# contributors/people.toml
# crates/ui-egui/src/control.rs
# crates/ui-egui/src/i18n.rs
# crates/ui-egui/src/theme.rs
# docs/localization-parity.md
2026-10-11 12:10:06 -04:00
Brandon Thomas
29660e8c4d
Merge pull request #331 from vangel76/feat/file-backstage
...
UI: File tab Backstage view (#174 )
# Conflicts:
# ROADMAP.md
# crates/engine/src/tests.rs
# crates/ui-egui/src/control.rs
# crates/ui-egui/src/lib.rs
# crates/ui-egui/src/ribbon.rs
# docs/parity-checklist.md
# docs/ui-parity.md
2026-10-11 12:08:56 -04:00
Brandon Thomas
839072c6dd
Merge pull request #327 from vangel76/feat/solver
...
Data: Solver with Simplex LP, integer branch and bound and a nonlinear method (#326 )
# Conflicts:
# crates/ui-egui/src/dialogs.rs
# crates/ui-egui/src/i18n.rs
# crates/ui-egui/src/i18n/ko.rs
# crates/ui-egui/src/i18n/pt.rs
# crates/ui-egui/src/i18n/ru.rs
# crates/ui-egui/src/i18n/zh.rs
# crates/ui-egui/src/ribbon.rs
# crates/ui-egui/tests/interaction.rs
# docs/gaps.md
# docs/parity-checklist.md
# docs/target-app-parity.md
# docs/ui-parity.md
2026-10-11 12:07:34 -04:00
Brandon Thomas
1dbad7768d
Merge pull request #320 from vangel76/feat/analysis-toolpak
...
Data: Analysis ToolPak with 13 tools and the Data Analysis dialog (#312 )
# Conflicts:
# crates/ui-egui/src/dialogs.rs
# docs/gaps.md
# docs/parity-checklist.md
2026-10-11 12:06:42 -04:00
Brandon Thomas
95660dc132
Merge pull request #319 from vangel76/fix/excel-shortcuts
...
Keyboard: Excel shortcut audit, add the missing ones (#110 )
# Conflicts:
# docs/ui-parity.md
2026-10-11 12:06:40 -04:00
Brandon Thomas
925ff53122
Merge pull request #303 from vangel76/fix/chart-category-axis
...
Charts: Select Data edits the category axis labels; blank corner makes column 1 the categories (#287 )
# Conflicts:
# crates/engine/src/tests.rs
# crates/ui-egui/src/dialogs.rs
# crates/ui-egui/tests/interaction.rs
# docs/chart-parity.md
2026-10-11 12:06:39 -04:00
Brandon Thomas
fe9e3163f0
Merge pull request #301 from vangel76/fix/recommended-charts
...
Charts: Recommended Charts opens a dialog of chart types with previews (#215 )
# Conflicts:
# crates/engine/src/tests.rs
# crates/ui-egui/tests/interaction.rs
# docs/chart-parity.md
2026-10-11 12:06:37 -04:00
Brandon Thomas
867c5fd1f1
Merge pull request #317 from vangel76/feat/forecast-ets
...
Functions: FORECAST.ETS, .CONFINT, .SEASONALITY and .STAT (#314 )
# Conflicts:
# README.md
# ROADMAP.md
# docs/function-parity.md
# docs/gaps.md
2026-10-11 12:05:55 -04:00
Brandon Thomas
97bad77ef4
Merge pull request #313 from vangel76/feat/pivot-chart
...
Charts: PivotCharts (insert.pivotChart) (#311 )
# Conflicts:
# ROADMAP.md
# crates/engine/src/cmd/pivot.rs
# docs/gaps.md
# docs/parity-checklist.md
# docs/target-app-parity.md
2026-10-11 12:05:54 -04:00
Brandon Thomas
685802ee9f
Merge pull request #306 from vangel76/feat/pivot-calculated-field
...
PivotTables: calculated fields (pivot.calculatedField) (#304 )
# Conflicts:
# ROADMAP.md
# docs/gaps.md
# docs/parity-checklist.md
# docs/target-app-parity.md
2026-10-11 12:05:52 -04:00
Brandon Thomas
2af0984af0
Merge pull request #308 from vangel76/feat/review-allow-edit-ranges
...
Review: Allow Edit Ranges with Excel-compatible password hashes (#307 )
# Conflicts:
# ROADMAP.md
# crates/xlsx/src/sheet_write.rs
# crates/xlsx/src/tests/malformed.rs
# docs/file-format-parity.md
# docs/gaps.md
# docs/parity-checklist.md
# docs/target-app-parity.md
2026-10-11 12:05:30 -04:00
Brandon Thomas
4dce1181e1
Merge pull request #305 from vangel76/feat/cell-checkbox
...
Checkboxes: ribbon button, Excel's value and Delete rules, XLSX cell controls (#196 )
# Conflicts:
# ROADMAP.md
2026-10-11 12:05:28 -04:00
Brandon Thomas
1f99931dd3
Merge pull request #302 from vangel76/feat/xlsx-threaded-comments
...
XLSX: write threaded comments and persons parts, read note visibility (#300 )
# Conflicts:
# ROADMAP.md
# crates/xlsx/src/tests/roundtrip.rs
2026-10-11 12:05:27 -04:00
Brandon Thomas
1302ec76a4
Merge pull request #310 from vangel76/fix/sheet-right-to-left
...
Grid: mirror right-to-left sheets (#146 )
# Conflicts:
# crates/ui-egui/src/grid.rs
# docs/localization-parity.md
2026-10-11 12:05:25 -04:00
Brandon Thomas
cf1ba2071f
Merge pull request #309 from vangel76/feat/drag-freeze-lines
...
Grid: freeze panes by dragging the freeze handles (#195 )
# Conflicts:
# ROADMAP.md
# crates/ui-egui/src/i18n.rs
# crates/ui-egui/src/i18n/ko.rs
# crates/ui-egui/src/i18n/pt.rs
# crates/ui-egui/src/i18n/ru.rs
# crates/ui-egui/src/i18n/zh.rs
2026-10-11 12:04:51 -04:00
Brandon Thomas
d274eb6dac
Merge pull request #318 from vangel76/fix/theme-toggle
...
UI: title-bar light/dark switch, File › Display theme, system appearance on first run (#194 , #239 )
# Conflicts:
# docs/ui-parity.md
2026-10-11 12:04:50 -04:00
Brandon Thomas
2f032392f3
Merge pull request #323 from vangel76/fix/macos-title-bar
...
macOS: centre the window buttons in the title bar (#170 )
# Conflicts:
# crates/ui-egui/src/ribbon.rs
2026-10-11 12:04:49 -04:00
Brandon Thomas
2dbf6d43cf
Merge pull request #352 from Fly-Style/fix/memory-alloc-on-agg
...
Get rid of double range copy for aggregation operations over ranges
# Conflicts:
# crates/calc/src/tests.rs
2026-10-11 12:04:16 -04:00
Brandon Thomas
f8903c9e98
Merge pull request #353 from LloydNicholson/fix/copy-multiple-ranges
...
Issue #348 : copying multiple selections works when the areas line up, and explains when it can't
# Conflicts:
# crates/engine/src/tests.rs
# crates/ui-egui/tests/clipboard.rs
2026-10-11 12:04:15 -04:00