neilcawse
828efab385
Engine: command-sequence fuzz harness (undo/redo, XLSX round-trip, full-recalc invariants) and the bugs it found
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 16:39:31 -04:00
neilcawse
13afa8c773
XLSX: read cell formulas via file→model conversion (_xlpm), keep line breaks in table columns, allow leading backslash in table names
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 16:39:31 -04:00
Brandon Thomas
b2101947ca
Merge branch 'land' into fix-388
...
# Conflicts:
# docs/ui-parity.md
2026-10-11 16:01:53 -04:00
Brandon Thomas
12b46e6bbe
Merge pull request #395 from vangel76/fix/space-selection-shortcuts
...
Keyboard: Shift+Space and Ctrl+Space select without starting an edit (#338 )
# Conflicts:
# ROADMAP.md
# crates/ui-egui/src/grid.rs
2026-10-11 15:43:44 -04:00
Brandon Thomas
39c3b04d0d
Merge pull request #382 from vangel76/fix/dx12-dxc-startup
...
Windows: compile DirectX 12 shaders with FXC, no DXC runtime needed (#339 , #354 )
2026-10-11 15:43:30 -04:00
vangel76
6290bf123a
Keyboard: Shift+Space and Ctrl+Space select without starting an edit ( #338 )
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-11 21:32:57 +02:00
Fabio Lussi
535c502fe7
Draw the outline band for grouped rows and columns
...
Grouped rows and columns now get Excel's outline band beside the headers:
a bracket per group, a -/+ button on the summary line and level buttons
in the corner. The buttons run data.hideDetail / data.showDetail and the
new data.showLevels, so they undo. Hide Detail marks the summary line
collapsed, Show Detail keeps inner groups that were collapsed on their
own, and Group / Ungroup take by: rows|cols. Show Detail and Hide Detail
are on the Data tab and in the Data menu, the group shortcuts are listed
as Alt+Shift+Right / Left, and shortcut lookup reads navigation keys by
their logical key so the numpad arrows work.
Fixes #373
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 21:29:03 +02:00
vangel76
806a39a514
Windows: compile DirectX 12 shaders with FXC, never a stray dxcompiler.dll ( #339 , #354 )
...
wgpu's default DX12 compiler (Auto) loads the first dxcompiler.dll on the
DLL search path. GridCraft ships none, so another program's copy is used;
without a matching dxil.dll its 'DXIL signing library not found' warning
fails wgpu's internal compute pipelines, the device is lost and the app
exits before the first frame. Pin FXC (part of Windows) unless
WGPU_DX12_COMPILER asks for another compiler.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 21:02:20 +02:00
Brandon Thomas
347d2a5bc2
Docs: catalog 274 / 290 after #211 and #193
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 14:59:45 -04:00
Brandon Thomas
506320b548
Merge branch 'land' into fix-211
...
# Conflicts:
# crates/engine/src/tests.rs
# docs/ui-parity.md
2026-10-11 14:39:47 -04:00
Brandon Thomas
fb8e8ac8f1
Docs: catalog 272 / 290 after #325
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 14:22:39 -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
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
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
a0cb8f2ca2
Docs: catalog 271 / 290 after #286 and #288
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 13:13:01 -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
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
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
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
Brandon Thomas
117be4feb1
Merge pull request #335 from Losminek (author's merge with main)
2026-10-11 12:36:55 -04:00
Brandon Thomas
cd9662f1d4
Docs: headline counts after wave 3 (513 / 523 functions, 504 working; catalog 266 / 290)
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 12:31:17 -04:00
Losminek
819dc49c44
Merge origin/main into cs-pr
...
Upstream added German (de) in the meantime, in the same places where the
Czech language is registered (module list, Language enum and ALL, name,
code, tag parsing, translate, tests, theme font loop, control protocol
list). Both languages kept, German first. contributors/people.toml, the
ROADMAP and docs/localization-parity.md counters: all entries kept.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-11 18:16:03 +02: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
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
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
17c6e46dcd
Merge pull request #315 from vangel76/fix/windows-default-renderer
...
Windows: never load Vulkan by default; OpenGL fallback when DirectX 12 can't start (#120 )
2026-10-11 12:04:19 -04:00
Brandon Thomas
ea3e0ce0c5
Merge pull request #355 from LloydNicholson/fix/journal-redact-passwords
...
Journal: sheet protection passwords aren't recorded in plain text
# Conflicts:
# crates/engine/src/tests.rs
2026-10-11 12:04:12 -04:00
Brandon Thomas
5f3e60b48a
Docs: headline counts after the community merges (509 / 523 functions, 500 working; catalog 260 / 290)
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 12:02:26 -04:00
Brandon Thomas
4f7144d753
Merge pull request #295 from vangel76/feat/view-formula-bar-zoom100
...
View: Formula Bar and Zoom 100% as engine commands (#289 )
# Conflicts:
# ROADMAP.md
# crates/ui-egui/src/control.rs
# crates/ui-egui/src/lib.rs
# docs/target-app-parity.md
2026-10-11 11:45:32 -04:00
Brandon Thomas
8f3d13a115
Merge pull request #294 from vangel76/fix/interface-scale
...
View: Interface size preference scales the whole window (#230 )
# Conflicts:
# ROADMAP.md
2026-10-11 11:45:01 -04:00
Brandon Thomas
fb9266f479
Merge pull request #271 from arekown/german-translation
...
Add German (de) interface language
# Conflicts:
# ROADMAP.md
# crates/ui-egui/src/i18n.rs
2026-10-11 11:44:58 -04:00
Brandon Thomas
ea0e971e27
Merge pull request #228 from webdevtodayjason/fix/200-formula-helpers
...
Keep formula helpers inside the worksheet when scrolling (#200 )
# Conflicts:
# contributors/people.toml
# docs/ui-parity.md
2026-10-11 11:44:56 -04:00
Brandon Thomas
a1f97c2f06
Merge pull request #218 from MarekSpodBiedry/issue-190
...
Resize charts from the corner handle and the Size fields, keep typed chart and table names (#190 )
2026-10-11 11:44:55 -04:00
Brandon Thomas
0a65ffc31a
Merge pull request #219 from Zarvinx/fix-keyboard-chart-delete
...
Delete selected charts with the keyboard
# Conflicts:
# ROADMAP.md
2026-10-11 11:44:53 -04:00
Brandon Thomas
90dcc2b329
Merge pull request #297 from vangel76/feat/trimrange
...
Functions: TRIMRANGE (#296 )
# Conflicts:
# README.md
# ROADMAP.md
# crates/xlsx/src/tables.rs
# docs/function-parity.md
# docs/gaps.md
# docs/target-app-parity.md
2026-10-11 11:44:50 -04:00
Brandon Thomas
c2c381d55d
Merge pull request #292 from vangel76/feat/bahttext
...
Functions: BAHTTEXT (#291 )
# Conflicts:
# README.md
# ROADMAP.md
# docs/function-parity.md
# docs/gaps.md
# docs/target-app-parity.md
2026-10-11 11:44:48 -04:00