chore: sync upstream (44 Commits) #7
No reviewers
Labels
No labels
herkunft/alpha-feedback
status
blockiert
status
zu-testen
typ
bug
typ
docs
typ
enhancement
typ
feature
typ
idea
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
iris/gridcraft!7
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "chore/sync-upstream-20261023"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Upstream-Sync von
upstream/main(44 Commits). Fast-Forward.530a8cc8CI: the gate builds with the release craft-fonts pin (#2381)08820cb4CI: run the gate through craft-common-actions' shared gate.yml; FreeBSD nightly and on release (#2338)aa8399beGrid: #### is sized by the width of #, so it fits its cell in every font (#2378)33a45130Packaging: pin the signing client and appimagetool, and check their hashes (#2073)a7608adaCI: one test binary per crate, nextest, line tables only (#2372)bdf8b8ccUse chrono instead of hand-rolled UTC conversion (#2121)168acc58packaging: shell, PowerShell and web page fixes (SonarCloud S7688, S7679, S7682, S8677, S7926) (#2323)f1e29fa8Review fixes for #2267 and #2292fe2f9a75Merge PR #2357a09454e2Merge PR #2315bcf55f0fMerge PR #22744b8725b2Merge PR #2314e92d8b4eMerge PR #2295817cf804Merge PR #22922d0fe1f0Merge PR #2289A script line whose parameters sat under a key the runner does not read ran the command with no parameters at all, and the run still exited 0: {"command":"home.insertSheet","args":{"name":"Report"}} {"command":"home.insertSheet","name":"Report2"} made Sheet2 and Sheet3 instead of Report and Report2, and said nothing. A typo in a script produced a valid, wrong workbook. A line is read for `command` (or `id`) and `params`; any other key is a usage error now, naming the keys and the line, and the run stops before the workbook is written: gridcraft-cli: s.jsonl:2: unknown key `args`: a line is {"command": "id", "params": {…}} The usage text says what a line looks like, which is the other half of the report — the format was not written down anywhere, so the reporter found it by trying `args`, a flat object and `id` in turn. Tested at both levels: `parse_command` for the keys, their sorted list when there are several, and the forms that are read (`id`, `params`, `id={json}`, comments); and a run of a four-line script that stops at line 2 without writing the file, then the same script corrected, whose sheets come out named. Without the check the mistaken line parses again. An unknown key *inside* `params` is still ignored — the rest of #2256 — and needs the command's parameter list, which the engine does not expose yet. Noted on the issue.parse: falsestores a string as the text it is (#2255) 99f92f4a28Every string in `values` went through typed input, which reads it with en-US rules, and nothing said so: "05.04.2026" (dd.mm.yyyy) → the date 4 May 2026 "02/11/2026" (dd/mm/yyyy) → the date 11 February 2026 "2.500" (thousands) → the number 2.5 "4.25 %" (text) → 0.0425, formatted 0.00% A workbook built from Turkish-format exports therefore held different values than the script put in it, and the only way to notice was to read the saved file back cell by cell. `parse: false` stores every string as the text it is. A formula is still a formula — `=` means a formula in a cell, and the ticket asks for that — and numbers, booleans and null are unaffected either way. A leading apostrophe is part of the text rather than the marker that makes it text, since nothing is being marked. The default is unchanged: `parse` is absent in every existing call, and those calls behave exactly as before. A `parse` that is neither true nor false is a usage error rather than a quiet default. The test pins both sides — the swapped date, the decimal point and the percentage under today's default; each of the six strings stored verbatim with `parse: false`, with `=1+1` still calculating 2; numbers and booleans either way; and the refused `parse` values. Without the change the first string comes back as a date.A sheet can hide its outline's level buttons and brackets while keeping the outline (Excel's Ctrl+8, saved as showOutlineSymbols="0"). It wasn't modelled, so such sheets showed a wide outline band Excel doesn't. - model: Sheet::show_outline_symbols (default on, also for older JSON). - xlsx: read and written on the sheet view. - engine: view.showOutlineSymbols {on?} (Ctrl+8), undoable. - ui: no outline bands while it's off. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>