chore: sync upstream (4 Commits) #18

Merged
alf merged 4 commits from chore/sync-upstream-20261107 into main 2026-11-07 09:04:37 +00:00
Owner

Upstream-Sync von upstream/main (4 Commits). Fast-Forward.

  • 6a8eb4ff Merge pull request #3487 from storytold/house-rules
  • 543497ac docs: preserve local guidance in house-rules rollout
  • 620a9190 Copy the shared house rules into AGENTS.md.
  • ff35c6b8 xlsx: stop memory amplification from declared sizes (#2173) (#2197)
Upstream-Sync von `upstream/main` (4 Commits). Fast-Forward. - 6a8eb4ff Merge pull request #3487 from storytold/house-rules - 543497ac docs: preserve local guidance in house-rules rollout - 620a9190 Copy the shared house rules into AGENTS.md. - ff35c6b8 xlsx: stop memory amplification from declared sizes (#2173) (#2197)
* xlsx: stop memory amplification from declared sizes (#2173)

Hyperlinks: drop targets over 8,192 bytes before copying them into each cell, cut ScreenTips to 255 characters, and count the 10,000-cell cap across all <hyperlinks> blocks of a sheet. Conditional formats: cap the sqref copies made by extra rules at 1M ranges per sheet. Styles: build each custom number format once and share its Arc; cut font names to 255 characters. Shared formulas: keep cached values for dependents of over-long masters, and charge each expansion against a 2 GiB per-workbook budget.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Import the hyperlink caps in sheet_read/parts after the merge

Upstream switched parts.rs to an explicit super:: import list.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* xlsx: charge conditional-format ranges per sheet; cap number format codes (#2173)

- read_cf keeps a cumulative per-sheet count of the range cells retained
  rules hold, instead of multiplying the current block by the rule count,
  and charges only rules that are kept.
- Custom and inline number format codes longer than 255 characters (Excel's
  limit) are dropped with a warning; their cells show General.
- The shared NumFmt map is built only for ids a cell or differential
  format refers to.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* xlsx: keep over-long number format codes as stored (#2173)

an_overlong_number_format_code_does_not_stop_the_open requires a code
past 255 characters to round-trip; sharing one NumFmt per referenced id
already removes the amplification. Keep the referenced-id sharing.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* xlsx: bound only what a shared formula costs beyond an ordinary cell; count characters for the length warning

Review follow-up for #2197 (@skylartaylor):
- Each dependent of a shared formula now pays only its cost beyond an ordinary formula cell
  (SHARED_FORMULA_FREE_COST, 4 KiB by shared_cost), and the per-workbook budget for that excess
  drops from 2 GiB to 256 MiB. Many ordinary shared formulas still all expand; a long master
  copied into thousands of cells stops at the budget and keeps the cached values.
- The over-long-master warning now uses the parser's own test (bytes, then characters), so an
  unparseable multibyte master no longer gets a false length warning.

Refs #2173

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: FredApps <FredApps@users.noreply.github.com>
The blocks come from craft-contrib at dde09ea31e2e457f5b4653a6e76f7cdf55944bdf. CLAUDE.md imports AGENTS.md. The house-rules workflow checks the copy.
Merge pull request #3487 from storytold/house-rules
Some checks failed
ci.yml / Merge pull request #3487 from storytold/house-rules (pull_request) Failing after 0s
house-rules.yml / Merge pull request #3487 from storytold/house-rules (pull_request) Failing after 0s
packaging-lint.yml / Merge pull request #3487 from storytold/house-rules (pull_request) Failing after 0s
sonarcloud.yml / Merge pull request #3487 from storytold/house-rules (pull_request) Failing after 0s
ci.yml / Merge pull request #3487 from storytold/house-rules (push) Failing after 0s
house-rules.yml / Merge pull request #3487 from storytold/house-rules (push) Failing after 0s
packaging-lint.yml / Merge pull request #3487 from storytold/house-rules (push) Failing after 0s
sonarcloud.yml / Merge pull request #3487 from storytold/house-rules (push) Failing after 0s
6a8eb4ff42
Copy the shared house rules into AGENTS.md
alf merged commit 6a8eb4ff42 into main 2026-11-07 09:04:37 +00:00
alf deleted branch chore/sync-upstream-20261107 2026-11-07 09:04:37 +00:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
iris/gridcraft!18
No description provided.