What's Changed
- Romanian: translate Options|Editing and 22 newer strings by @vioreltus in #2233
- Keep '!' in structured-reference columns intact on XLSX save by @Silvertree2010 in #2244
- ui: a too-wide number in a repeat-fill format shows #### by @pick2510 in #2260
- run --script: a line's unknown key stops the run (#2256) by @Hamza0101 in #2266
- Snapshot: catalog installed fonts before rendering by @pick2510 in #2275
- Print numbers near f64::MAX in a form that parses back by @Silvertree2010 in #2289
- Add extra Japanese translations for UI elements by @coolvitto in #2292
- Tables: Format as Table inside a table restyles it by @dfendr in #2295
- Hyperlinks: Ctrl+click on a link follows it instead of extending the selection (#1198) by @xc4pr in #2314
- Page Up into frozen rows scrolls the rows below back to the top by @RedBearAK in #2357
- Treat empty instance_num in TEXTBEFORE/TEXTAFTER as 1 by @Silvertree2010 in #2245
- range.setValues: parse: false stores a string as the text it is (#2255) by @Hamza0101 in #2267
- view: Show Outline Symbols (Ctrl+8), read and written by @pick2510 in #2274
- Hardening: overlong digits, NaN lookup indexes, bounded REGEXREPLACE (#2163, #2162) by @tyrel in #2279
- Fill handle: Auto Fill Options button after a drag offers Copy Cells, Fill Series and the formatting modes (#1403) by @xc4pr in #2315
- packaging: shell, PowerShell and web page fixes (SonarCloud S7688, S7679, S7682, S8677, S7926) by @dylanmtaylor in #2323
- Use chrono instead of hand-rolled UTC conversion by @dylanmtaylor in #2121
- CI: one test binary per crate, nextest, line tables only by @aiongg in #2372
- Packaging: pin the signing client and appimagetool, and check their hashes by @aiongg in #2073
- Grid: #### fits its cell in every font by @aiongg in #2378
- CI: shared gate workflow; FreeBSD nightly and on release by @aiongg in #2338
- CI: the gate builds with the release craft-fonts pin by @aiongg in #2381
- i18n: missing translations are reported, never a failure by @aiongg in #2383
- Keep the in-cell editor wide enough for the next character at high zoom (#2336) by @MarekSpodBiedry in #2366
- AutoFilter: grow the range when a value is entered in the row below it (#2342) by @MarekSpodBiedry in #2367
- Ribbon: fall back to Home when the active contextual tab is gone by @marcoarnulfo in #2369
- Ctrl+Alt+click on a link extends the selection; Auto Fill Options button checked in screen space on right-to-left sheets (#2368) by @xc4pr in #2375
- PivotTables: Show Details, double-click a value cell to list its source records on a new sheet (#2364) by @marcoarnulfo in #2386
- Fix MOD returning wrong sign and magnitude for tiny divisors by @Silvertree2010 in #2387
- ci(sonar): stop cancelling main-branch runs so coverage is published by @dylanmtaylor in #2390
- Engine: building blocks for multi-command actions (undo groups, recording buffer, document trust, chunked hidden names) by @prxnvt in #462
- Conditional formatting: New Rule's formula box takes references clicked or dragged on the grid (#2348) by @marcoarnulfo in #2388
- Calc: INDEX with one index on a 2-D reference is #REF!, as in Excel by @Harrison-Booth in #2392
- Accuracy: PMT to Excel's last bits via ln_1p/exp_m1 by @Harrison-Booth in #2393
- Keytips: Alt, H, B border letters apply their own preset by @Harrison-Booth in #2394
- Analysis ToolPak: value arguments reject multi-cell references, as Excel 365 does by @Harrison-Booth in #2396
- Read accounting negatives like $(1,234) in number text by @Harrison-Booth in #2397
- Lookups compare numbers exactly, like Excel by @Harrison-Booth in #2399
- Reject unmatched '.' and ',' in NUMBERVALUE text by @Silvertree2010 in #2400
- XLSX: write accounting formats 42 and 44 with their code by @helenkwok in #2402
- M2.9: budget lambda work and bound wildcard substring search by @dylanmtaylor in #2415
- M2.9: cap xlsx import work and gate hostile datetime fields by @dylanmtaylor in #2413
- M2.9: bound print/export/autofit work in the engine by @dylanmtaylor in #2416
- M2.9: harden native file open/save by @dylanmtaylor in #2418
- M2.9: close protection gaps a trusted script or other sheet would slip through by @dylanmtaylor in #2420
- M6: misc hardening sweep (findings 0, 5, 7, 11, 12, 23, 26) by @dylanmtaylor in #2422
- M7: enforce Agile encryption dataIntegrity (finding 1) by @dylanmtaylor in #2425
- UI: theme tokens with a contrast test, ribbon overflow arrows and split button, multi-line formula bar, code editor widget by @prxnvt in #456
- Merge 18 open PRs (tested batch) by @aiongg in #2538
- docs: Different First Page and Different Odd & Even Pages are no longer listed as missing by @dotCooCoo in #2486
- Error Checking: its arrow opens a Circular References submenu listing a cell on each loop by @dotCooCoo in #2501
- Charts: 100% Stacked Area draws each value as a share of its category's total by @dotCooCoo in #2522
- Ribbon: Insert › Column or Bar offers 100% Stacked Bar by @dotCooCoo in #2525
- Calc: a LAMBDA that calls itself without end answers #NUM! instead of overflowing the stack by @dotCooCoo in #1809
- Formulas: F3 opens Paste Name, which inserts a defined name or pastes the list of names by @dotCooCoo in #2410
- Go To: lists the named ranges of every sheet and the references entered, and goes to several at once by @dotCooCoo in #2414
- Status bar: a right-click opens a statistics menu, with Numerical Count, Minimum and Maximum added by @dotCooCoo in #2421
- Keyboard: Ctrl+Shift+U expands and collapses the formula bar instead of underlining by @dotCooCoo in #2427
- Tests: the engine's file-system tests each use their own temporary folder by @dotCooCoo in #2434
- Fill handle: Fill Days, Fill Weekdays, Fill Months and Fill Years for a date by @dotCooCoo in #2456
- PivotTables: Enable show details turns Show Details off for a PivotTable by @dotCooCoo in #2461
- PivotTables: right-clicking a value cell offers Show Details in the cell menu by @dotCooCoo in #2467
- Sheet tabs: drag the handle at the scrollbar's left edge to give the tabs more or less room by @dotCooCoo in #2477
- Outline: Settings puts summary rows above and summary columns left of their detail by @dotCooCoo in #2482
- Headers and footers: printing follows the Scale with Document and Align with Page Margins check boxes by @dotCooCoo in #2488
- Circular references: Error Checking and the status bar quote sheet names that need quotes by @dotCooCoo in #2504
- Status bar: Circular References names a cell only when a loop is on the active sheet by @dotCooCoo in #2510
- Paste Name and Go To: follow-ups from the batch review by @aiongg in #2540
New Contributors
- @pick2510 made their first contribution in #2260
- @coolvitto made their first contribution in #2292
- @dfendr made their first contribution in #2295
- @xc4pr made their first contribution in #2314
- @tyrel made their first contribution in #2279
- @helenkwok made their first contribution in #2402
- @dotCooCoo made their first contribution in #2486
Full Changelog: v0.11.1...v0.12.1